Changeset 56819 for trunk/tests/phpunit/tests/post/wpPostType.php
- Timestamp:
- 10/10/2023 02:03:03 PM (21 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/tests/post/wpPostType.php
r53126 r56819 230 230 $this->assertSame( 3, $action->get_call_count() ); 231 231 } 232 233 /** 234 * @ticket 56922 235 * 236 * @dataProvider data_should_have_correct_custom_revisions_and_autosaves_controllers_properties 237 * 238 * @covers WP_Post_Type::set_props 239 * 240 * @param string $property_name Property name. 241 * @param string $property_value Property value. 242 * @param string|bool $expected_property_value Expected property value. 243 */ 244 public function test_should_have_correct_custom_revisions_and_autosaves_controllers_properties( $property_name, $property_value, $expected_property_value ) { 245 $properties = null === $property_value ? array() : array( $property_name => $property_value ); 246 247 $post_type = new WP_Post_Type( 'test_post_type', $properties ); 248 249 $this->assertObjectHasProperty( $property_name, $post_type, "The WP_Post_Type object does not have the expected {$property_name} property." ); 250 $this->assertSame( 251 $expected_property_value, 252 $post_type->$property_name, 253 sprintf( 'Expected the property "%s" to have the %s value.', $property_name, var_export( $expected_property_value, true ) ) 254 ); 255 } 256 257 /** 258 * Data provider for test_should_allow_to_set_custom_revisions_and_autosaves_controllers_properties. 259 * 260 * @return array[] Arguments { 261 * @type string $property_name Property name. 262 * @type string $property_value Property value. 263 * @type string|bool $expected_property_value Expected property value. 264 * } 265 */ 266 public function data_should_have_correct_custom_revisions_and_autosaves_controllers_properties() { 267 return array( 268 'autosave_rest_controller_class property' => array( 269 'autosave_rest_controller_class', 270 'My_Custom_Template_Autosaves_Controller', 271 'My_Custom_Template_Autosaves_Controller', 272 ), 273 'autosave_rest_controller_class property (null value)' => array( 274 'autosave_rest_controller_class', 275 null, 276 false, 277 ), 278 'revisions_rest_controller_class property' => array( 279 'revisions_rest_controller_class', 280 'My_Custom_Template_Revisions_Controller', 281 'My_Custom_Template_Revisions_Controller', 282 ), 283 'revisions_rest_controller_class property (null value)' => array( 284 'revisions_rest_controller_class', 285 null, 286 false, 287 ), 288 ); 289 } 290 291 /** 292 * @ticket 56922 293 * 294 * @covers WP_Post_Type::get_revisions_rest_controller 295 * 296 * @dataProvider data_get_revisions_rest_controller_should_return_correct_values 297 * 298 * @param bool $show_in_rest Enables "show_in_rest" support. 299 * @param bool $supports_revisions Enables revisions support. 300 * @param string|bool $revisions_rest_controller_class Custom revisions REST controller class. 301 * @param string|null $expected_value Expected value. 302 */ 303 public function test_get_revisions_rest_controller_should_return_correct_values( $show_in_rest, $supports_revisions, $revisions_rest_controller_class, $expected_value ) { 304 $post_type = 'test_post_type'; 305 $properties = array( 306 'show_in_rest' => $show_in_rest, 307 'supports' => $supports_revisions ? array( 'revisions' ) : array(), 308 'revisions_rest_controller_class' => $revisions_rest_controller_class, 309 ); 310 register_post_type( $post_type, $properties ); 311 $post_type = get_post_type_object( $post_type ); 312 313 $controller = $post_type->get_revisions_rest_controller(); 314 if ( $expected_value ) { 315 $this->assertInstanceOf( $expected_value, $controller ); 316 317 return; 318 } 319 320 $this->assertSame( $expected_value, $controller ); 321 } 322 323 /** 324 * Data provider for test_get_revisions_rest_controller_should_return_correct_values. 325 * 326 * @return array[] Arguments { 327 * @type bool $show_in_rest Enables "show_in_rest" support. 328 * @type bool $supports_revisions Enables revisions support. 329 * @type string|bool $revisions_rest_controller_class Custom revisions REST controller class. 330 * @type string|null $expected_value Expected value. 331 * } 332 */ 333 public function data_get_revisions_rest_controller_should_return_correct_values() { 334 return array( 335 'disable show_in_rest' => array( 336 false, 337 false, 338 false, 339 null, 340 ), 341 'disable revisions support' => array( 342 true, 343 false, 344 false, 345 null, 346 ), 347 'default rest revisions controller' => array( 348 true, 349 true, 350 false, 351 WP_REST_Revisions_Controller::class, 352 ), 353 'incorrect rest revisions controller' => array( 354 true, 355 true, 356 stdClass::class, 357 null, 358 ), 359 'correct rest revisions controller' => array( 360 true, 361 true, 362 WP_REST_Template_Revisions_Controller::class, 363 WP_REST_Template_Revisions_Controller::class, 364 ), 365 ); 366 } 367 368 /** 369 * @ticket 56922 370 * 371 * @covers WP_Post_Type::get_autosave_rest_controller 372 * 373 * @dataProvider data_get_autosave_rest_controller_should_return_correct_values 374 * 375 * @param bool $show_in_rest Enables "show_in_rest" support. 376 * @param string $post_type Post type. 377 * @param string|bool $autosave_rest_controller_class Custom autosave REST controller class. 378 * @param string|null $expected_value Expected value. 379 */ 380 public function test_get_autosave_rest_controller_should_return_correct_values( $show_in_rest, $post_type, $autosave_rest_controller_class, $expected_value ) { 381 $properties = array( 382 'show_in_rest' => $show_in_rest, 383 'autosave_rest_controller_class' => $autosave_rest_controller_class, 384 ); 385 register_post_type( $post_type, $properties ); 386 $post_type = get_post_type_object( $post_type ); 387 388 $controller = $post_type->get_autosave_rest_controller(); 389 if ( $expected_value ) { 390 $this->assertInstanceOf( $expected_value, $controller ); 391 392 return; 393 } 394 395 $this->assertSame( $expected_value, $controller ); 396 } 397 398 /** 399 * Data provider for test_get_autosave_rest_controller_should_return_correct_values. 400 * 401 * @return array[] Arguments { 402 * @type bool $show_in_rest Enables "show_in_rest" support. 403 * @type string $post_type Post type. 404 * @type string|bool $autosave_rest_controller_class Custom autosave REST controller class. 405 * @type string|null $expected_value Expected value. 406 * } 407 */ 408 public function data_get_autosave_rest_controller_should_return_correct_values() { 409 return array( 410 'disable show_in_rest' => array( 411 false, 412 'attachment', 413 false, 414 null, 415 ), 416 'invalid post type' => array( 417 true, 418 'attachment', 419 false, 420 null, 421 ), 422 'default rest autosave controller' => array( 423 true, 424 'test_post_type', 425 false, 426 WP_REST_Autosaves_Controller::class, 427 ), 428 'incorrect rest autosave controller' => array( 429 true, 430 'test_post_type', 431 stdClass::class, 432 null, 433 ), 434 'correct rest autosave controller' => array( 435 true, 436 'test_post_type', 437 WP_REST_Template_Autosaves_Controller::class, 438 WP_REST_Template_Autosaves_Controller::class, 439 ), 440 ); 441 } 232 442 }
Note: See TracChangeset
for help on using the changeset viewer.