| | 312 | /** |
| | 313 | * @ticket 58824 |
| | 314 | * |
| | 315 | * @covers WP_Posts_List_Table::get_table_classes |
| | 316 | */ |
| | 317 | public function test_get_table_classes_returns_default_classes() { |
| | 318 | $method = new ReflectionMethod( $this->table, 'get_table_classes' ); |
| | 319 | $method->setAccessible( true ); |
| | 320 | |
| | 321 | $classes = $method->invoke( $this->table ); |
| | 322 | |
| | 323 | $this->assertContains( 'widefat', $classes ); |
| | 324 | $this->assertContains( 'fixed', $classes ); |
| | 325 | $this->assertContains( 'striped', $classes ); |
| | 326 | $this->assertContains( 'pages', $classes ); |
| | 327 | } |
| | 328 | |
| | 329 | /** |
| | 330 | * @ticket 58824 |
| | 331 | * |
| | 332 | * @covers WP_Posts_List_Table::get_table_classes |
| | 333 | */ |
| | 334 | public function test_get_table_classes_filter_modifies_classes() { |
| | 335 | add_filter( |
| | 336 | 'post_list_table_classes', |
| | 337 | static function ( $classes ) { |
| | 338 | $classes[] = 'my-custom-class'; |
| | 339 | return $classes; |
| | 340 | } |
| | 341 | ); |
| | 342 | |
| | 343 | $method = new ReflectionMethod( $this->table, 'get_table_classes' ); |
| | 344 | $method->setAccessible( true ); |
| | 345 | |
| | 346 | $classes = $method->invoke( $this->table ); |
| | 347 | |
| | 348 | remove_all_filters( 'post_list_table_classes' ); |
| | 349 | |
| | 350 | $this->assertContains( 'my-custom-class', $classes ); |
| | 351 | } |
| | 352 | |
| | 353 | /** |
| | 354 | * @ticket 58824 |
| | 355 | * |
| | 356 | * @covers WP_Posts_List_Table::get_table_classes |
| | 357 | */ |
| | 358 | public function test_get_table_classes_filter_receives_post_type() { |
| | 359 | $received_post_type = null; |
| | 360 | |
| | 361 | add_filter( |
| | 362 | 'post_list_table_classes', |
| | 363 | static function ( $classes, $post_type ) use ( &$received_post_type ) { |
| | 364 | $received_post_type = $post_type; |
| | 365 | return $classes; |
| | 366 | }, |
| | 367 | 10, |
| | 368 | 2 |
| | 369 | ); |
| | 370 | |
| | 371 | $method = new ReflectionMethod( $this->table, 'get_table_classes' ); |
| | 372 | $method->setAccessible( true ); |
| | 373 | $method->invoke( $this->table ); |
| | 374 | |
| | 375 | remove_all_filters( 'post_list_table_classes' ); |
| | 376 | |
| | 377 | $this->assertSame( 'page', $received_post_type ); |
| | 378 | } |
| | 379 | |