WordPress.org

Make WordPress Core

Ticket #35272: 35272.5.diff

File 35272.5.diff, 2.9 KB (added by welcher, 3 years ago)

adding a no class applied unit test.

  • src/wp-includes/nav-menu-template.php

     
    334334        $possible_object_parents = array_filter( $possible_object_parents );
    335335
    336336        $front_page_url = home_url();
     337        $front_page_id  = (int) get_option( 'page_on_front' );
    337338
    338339        foreach ( (array) $menu_items as $key => $menu_item ) {
    339340
     
    344345                $classes[] = 'menu-item-type-' . $menu_item->type;
    345346                $classes[] = 'menu-item-object-' . $menu_item->object;
    346347
     348                // This menu item is set as the 'Front Page'.
     349                if ( $front_page_id === (int) $menu_item->object_id ) {
     350                        $classes[] = 'menu-item-home';
     351                }
     352
    347353                // if the menu item corresponds to a taxonomy term for the currently-queried non-hierarchical post object
    348354                if ( $wp_query->is_singular && 'taxonomy' == $menu_item->type && in_array( $menu_item->object_id, $possible_object_parents ) ) {
    349355                        $active_parent_object_ids[] = (int) $menu_item->object_id;
     
    377383                                $classes[] = 'current_page_item';
    378384                        }
    379385
    380                         if ( 'page_on_front' ) {
    381                                 $classes[] = 'menu-item-home';
    382                         }
    383 
    384386                        $active_parent_item_ids[] = (int) $menu_item->menu_item_parent;
    385387                        $active_parent_object_ids[] = (int) $menu_item->post_parent;
    386388                        $active_object = $menu_item->object;
  • tests/phpunit/tests/post/nav-menu.php

     
    444444                $this->assertTrue( is_object( $args ) );
    445445                return $ignored_1;
    446446        }
     447
     448
     449        /**
     450         * @ticket 35272
     451         */
     452        function test_no_front_page_class_applied() {
     453                $page_id = self::factory()->post->create( array( 'post_type' => 'page', 'post_title' => 'Home Page' ) );
     454
     455                wp_update_nav_menu_item( $this->menu_id, 0, array(
     456                        'menu-item-type' => 'post_type',
     457                        'menu-item-object' => 'page',
     458                        'menu-item-object-id' => $page_id,
     459                        'menu-item-status' => 'publish',
     460                ));
     461
     462                $menu_items = wp_get_nav_menu_items( $this->menu_id );
     463                _wp_menu_item_classes_by_context( $menu_items );
     464
     465                $classes = $menu_items[0]->classes;
     466
     467                $this->assertNotContains( 'menu-item-home', $classes );
     468        }
     469
     470
     471        /**
     472         * @ticket 35272
     473         */
     474        function test_class_applied_to_front_page_item() {
     475
     476                $page_id = self::factory()->post->create( array( 'post_type' => 'page', 'post_title' => 'Home Page' ) );
     477                update_option( 'page_on_front', $page_id );
     478
     479                wp_update_nav_menu_item( $this->menu_id, 0, array(
     480                        'menu-item-type' => 'post_type',
     481                        'menu-item-object' => 'page',
     482                        'menu-item-object-id' => $page_id,
     483                        'menu-item-status' => 'publish',
     484                ));
     485
     486                $menu_items = wp_get_nav_menu_items( $this->menu_id );
     487                _wp_menu_item_classes_by_context( $menu_items );
     488
     489                $classes = $menu_items[0]->classes;
     490
     491                $this->assertContains( 'menu-item-home', $classes );
     492        }
    447493}