Make WordPress Core


Ignore:
Timestamp:
09/30/2025 05:06:42 PM (9 months ago)
Author:
desrosj
Message:

Grouped backports for the 4.7 branch.

  • REST API: Increase the specificity of capability checks for collections when the edit context is in use.
  • Menus: Prevent HTML in menu item titles from being rendered unexpectedly.

Merges [60814], [60815], [60816] to the 4.7 branch.

Props andraganescu, desrosj, ehti, hurayraiit, iandunn, joehoyle, johnbillion, jorbin, mnelson4, noisysocks, peterwilsoncc, phillsav, rmccue, timothyblynjacobs, vortfu, westonruter , whyisjake, zieladam.

Location:
branches/4.7
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/4.7

  • branches/4.7/tests/phpunit/tests/customize/nav-menu-item-setting.php

    r39395 r60839  
     1
    12<?php
    23/**
     
    9091            'xfn' => '',
    9192            'status' => 'publish',
    92             'original_title' => '',
    9393            'nav_menu_term_id' => 0,
    9494            '_invalid' => false,
     
    154154        $menu_id = wp_create_nav_menu( 'Menu' );
    155155        $item_title = 'Greetings';
    156         $item_id = wp_update_nav_menu_item( $menu_id, 0, array(
    157             'menu-item-type' => 'post_type',
    158             'menu-item-object' => 'post',
    159             'menu-item-object-id' => $post_id,
    160             'menu-item-title' => $item_title,
    161             'menu-item-status' => 'publish',
    162         ) );
     156        $item_id = wp_update_nav_menu_item(
     157            $menu_id,
     158            0,
     159            array(
     160                'menu-item-type'      => 'post_type',
     161                'menu-item-object'    => 'post',
     162                'menu-item-object-id' => $post_id,
     163                'menu-item-title'     => $item_title,
     164                'menu-item-status'    => 'publish',
     165            )
     166        );
    163167
    164168        $post = get_post( $item_id );
     
    170174
    171175        $value = $setting->value();
    172         $this->assertEquals( $menu_item->title, $value['title'] );
    173         $this->assertEquals( $menu_item->type, $value['type'] );
     176        $this->assertSame( $menu_item->title, $value['title'] );
     177        $this->assertSame( $menu_item->type, $value['type'] );
    174178        $this->assertEquals( $menu_item->object_id, $value['object_id'] );
    175         $this->assertEquals( $menu_id, $value['nav_menu_term_id'] );
    176         $this->assertEquals( 'Hello World', $value['original_title'] );
     179        $this->assertSame( $menu_id, $value['nav_menu_term_id'] );
     180        $this->assertSame( 'Hello World', $value['original_title'] );
    177181
    178182        $other_menu_id = wp_create_nav_menu( 'Menu2' );
    179         wp_update_nav_menu_item( $other_menu_id, $item_id, array(
    180             'menu-item-title' => 'Hola',
    181         ) );
     183        wp_update_nav_menu_item(
     184            $other_menu_id,
     185            $item_id,
     186            array(
     187                'menu-item-title' => 'Hola',
     188            )
     189        );
    182190        $value = $setting->value();
    183         $this->assertEquals( 'Hola', $value['title'] );
    184         $this->assertEquals( $other_menu_id, $value['nav_menu_term_id'] );
     191        $this->assertSame( 'Hola', $value['title'] );
     192        $this->assertSame( $other_menu_id, $value['nav_menu_term_id'] );
    185193    }
    186194
     
    209217
    210218        $value = $setting->value();
    211         $this->assertEquals( '', $value['title'] );
    212         $this->assertEquals( $original_title, $value['original_title'] );
     219        $this->assertSame( '', $value['title'] );
     220        $this->assertSame( $original_title, $value['original_title'] );
    213221    }
    214222
     
    225233        $menu_id = wp_create_nav_menu( 'Menu' );
    226234        $item_title = 'Greetings';
    227         $item_id = wp_update_nav_menu_item( $menu_id, 0, array(
    228             'menu-item-type' => 'taxonomy',
    229             'menu-item-object' => 'category',
    230             'menu-item-object-id' => $tax_id,
    231             'menu-item-title' => $item_title,
    232             'menu-item-status' => 'publish',
    233         ) );
     235        $item_id = wp_update_nav_menu_item(
     236            $menu_id,
     237            0,
     238            array(
     239                'menu-item-type'      => 'taxonomy',
     240                'menu-item-object'    => 'category',
     241                'menu-item-object-id' => $tax_id,
     242                'menu-item-title'     => $item_title,
     243                'menu-item-status'    => 'publish',
     244            )
     245        );
    234246
    235247        $post = get_post( $item_id );
     
    241253
    242254        $value = $setting->value();
    243         $this->assertEquals( $menu_item->title, $value['title'] );
    244         $this->assertEquals( $menu_item->type, $value['type'] );
     255        $this->assertSame( $menu_item->title, $value['title'] );
     256        $this->assertSame( $menu_item->type, $value['type'] );
    245257        $this->assertEquals( $menu_item->object_id, $value['object_id'] );
    246         $this->assertEquals( $menu_id, $value['nav_menu_term_id'] );
    247         $this->assertEquals( 'Salutations', $value['original_title'] );
     258        $this->assertSame( $menu_id, $value['nav_menu_term_id'] );
     259        $this->assertSame( 'Salutations', $value['original_title'] );
    248260    }
    249261
     
    272284
    273285        $value = $setting->value();
    274         $this->assertEquals( $menu_item->type_label, 'Custom Label' );
    275         $this->assertEquals( $menu_item->type_label, $value['type_label'] );
     286        $this->assertSame( $menu_item->type_label, 'Custom Label' );
     287        $this->assertSame( $menu_item->type_label, $value['type_label'] );
    276288    }
    277289
     
    487499            'xfn' => 'hello " inject="',
    488500            'status' => 'forbidden',
    489             'original_title' => 'Hi<script>unfilteredHtml()</script>',
     501            'original_title'   => 'Hi<script>unfilteredHtml()</script>',
    490502            'nav_menu_term_id' => 'heilo',
    491503            '_invalid' => false,
     
    506518            'xfn' => 'hello  inject',
    507519            'status' => 'draft',
    508             'original_title' => 'Hi',
     520            'original_title'   => 'Hi<script>unfilteredHtml()</script>',
    509521            'nav_menu_term_id' => 0,
    510522        );
Note: See TracChangeset for help on using the changeset viewer.