Changeset 38400
- Timestamp:
- 08/27/2016 11:27:17 AM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/tests/post/nav-menu.php
r36888 r38400 276 276 $this->assertEmpty( $post_type_archive_item->description ); 277 277 } 278 279 /** 280 * Confirm `wp_nav_menu()` and `Walker_Nav_Menu` passes an $args object to filters. 281 * 282 * `wp_nav_menu()` is unique in that it uses an $args object rather than an array. 283 * This has been the case for some time and should be maintained for reasons of 284 * backward compatibility. 285 * 286 * @ticket 24587 287 */ 288 function test_wp_nav_menu_filters_are_passed_args_object() { 289 $tag_id = self::factory()->tag->create(); 290 291 $tag_insert = wp_update_nav_menu_item( $this->menu_id, 0, array( 292 'menu-item-type' => 'taxonomy', 293 'menu-item-object' => 'post_tag', 294 'menu-item-object-id' => $tag_id, 295 'menu-item-status' => 'publish', 296 ) ); 297 298 /* 299 * The tests take place in a range of filters to ensure the passed 300 * arguments are an object. 301 */ 302 // In function. 303 add_filter( 'pre_wp_nav_menu', array( $this, '_confirm_second_param_args_object' ), 10, 2 ); 304 add_filter( 'wp_nav_menu_objects', array( $this, '_confirm_second_param_args_object' ), 10, 2 ); 305 add_filter( 'wp_nav_menu_items', array( $this, '_confirm_second_param_args_object' ), 10, 2 ); 306 307 // In walker. 308 add_filter( 'nav_menu_item_args', array( $this, '_confirm_nav_menu_item_args_object' ) ); 309 310 add_filter( 'nav_menu_css_class', array( $this, '_confirm_third_param_args_object' ), 10, 3 ); 311 add_filter( 'nav_menu_item_id', array( $this, '_confirm_third_param_args_object' ), 10, 3 ); 312 add_filter( 'nav_menu_link_attributes', array( $this, '_confirm_third_param_args_object' ), 10, 3 ); 313 add_filter( 'nav_menu_item_title', array( $this, '_confirm_third_param_args_object' ), 10, 3 ); 314 315 add_filter( 'walker_nav_menu_start_el', array( $this, '_confirm_forth_param_args_object' ), 10, 4 ); 316 317 wp_nav_menu( array( 318 'echo' => false, 319 'menu' => $this->menu_id, 320 ) ); 321 wp_delete_term( $tag_id, 'post_tag' ); 322 323 /* 324 * Remove test filters. 325 */ 326 // In function. 327 remove_filter( 'pre_wp_nav_menu', array( $this, '_confirm_second_param_args_object' ), 10, 2 ); 328 remove_filter( 'wp_nav_menu_objects', array( $this, '_confirm_second_param_args_object' ), 10, 2 ); 329 remove_filter( 'wp_nav_menu_items', array( $this, '_confirm_second_param_args_object' ), 10, 2 ); 330 331 // In walker. 332 remove_filter( 'nav_menu_item_args', array( $this, '_confirm_nav_menu_item_args_object' ) ); 333 334 remove_filter( 'nav_menu_css_class', array( $this, '_confirm_third_param_args_object' ), 10, 3 ); 335 remove_filter( 'nav_menu_item_id', array( $this, '_confirm_third_param_args_object' ), 10, 3 ); 336 remove_filter( 'nav_menu_link_attributes', array( $this, '_confirm_third_param_args_object' ), 10, 3 ); 337 remove_filter( 'nav_menu_item_title', array( $this, '_confirm_third_param_args_object' ), 10, 3 ); 338 339 remove_filter( 'walker_nav_menu_start_el', array( $this, '_confirm_forth_param_args_object' ), 10, 4 ); 340 341 } 342 343 /** 344 * Run tests required to confrim Walker_Nav_Menu receives an $args object. 345 */ 346 function _confirm_nav_menu_item_args_object( $args ) { 347 $this->assertTrue( is_object( $args ) ); 348 return $args; 349 } 350 351 function _confirm_second_param_args_object( $ignored_1, $args ) { 352 $this->assertTrue( is_object( $args ) ); 353 return $ignored_1; 354 } 355 356 function _confirm_third_param_args_object( $ignored_1, $ignored_2, $args ) { 357 $this->assertTrue( is_object( $args ) ); 358 return $ignored_1; 359 } 360 361 function _confirm_forth_param_args_object( $ignored_1, $ignored_2, $ignored_3, $args ) { 362 $this->assertTrue( is_object( $args ) ); 363 return $ignored_1; 364 } 278 365 }
Note: See TracChangeset
for help on using the changeset viewer.