- Timestamp:
- 09/30/2025 05:05:21 PM (11 months ago)
- Location:
- branches/5.2
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
tests/phpunit/tests/customize/nav-menu-item-setting.php (modified) (15 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/5.2
- Property svn:mergeinfo changed
/trunk merged: 60814-60816
- Property svn:mergeinfo changed
-
branches/5.2/tests/phpunit/tests/customize/nav-menu-item-setting.php
r43571 r60834 90 90 'xfn' => '', 91 91 'status' => 'publish', 92 'original_title' => '',93 92 'nav_menu_term_id' => 0, 94 93 '_invalid' => false, … … 146 145 * 147 146 * @see WP_Customize_Nav_Menu_Item_Setting::value() 147 * @see WP_Customize_Nav_Menu_Item_Setting::js_value() 148 148 */ 149 149 function test_value_type_post_type() { 150 150 do_action( 'customize_register', $this->wp_customize ); 151 151 152 $post_id = self::factory()->post->create( array( 'post_title' => 'Hello World' ) );152 $post_id = self::factory()->post->create( array( 'post_title' => 'Hello <em>World</em>' ) ); 153 153 154 154 $menu_id = wp_create_nav_menu( 'Menu' ); 155 155 $item_title = 'Greetings'; 156 $item_props = 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 163 $item_id = wp_update_nav_menu_item( 157 164 $menu_id, 158 165 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 $item_props 166 167 ); 167 168 … … 173 174 $setting = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id ); 174 175 175 $value = $setting->value(); 176 $this->assertEquals( $menu_item->title, $value['title'] ); 177 $this->assertEquals( $menu_item->type, $value['type'] ); 176 $value = $setting->value(); 177 $js_value = $setting->js_value(); 178 $this->assertSame( $menu_item->title, $value['title'] ); 179 $this->assertSame( $menu_item->type, $value['type'] ); 178 180 $this->assertEquals( $menu_item->object_id, $value['object_id'] ); 179 $this->assertEquals( $menu_id, $value['nav_menu_term_id'] ); 180 $this->assertEquals( 'Hello World', $value['original_title'] ); 181 $this->assertSame( $menu_id, $value['nav_menu_term_id'] ); 182 $this->assertSame( 'Hello <em>World</em>', $value['original_title'] ); 183 $this->assertSame( 'Hello <em>World</em>', $js_value['original_title'] ); 184 $this->assertSame( $value, array_merge( $js_value, array( 'original_title' => $value['original_title'] ) ) ); 181 185 182 186 $other_menu_id = wp_create_nav_menu( 'Menu2' ); … … 184 188 $other_menu_id, 185 189 $item_id, 186 array( 187 'menu-item-title' => 'Hola', 188 ) 189 ); 190 $value = $setting->value(); 191 $this->assertEquals( 'Hola', $value['title'] ); 192 $this->assertEquals( $other_menu_id, $value['nav_menu_term_id'] ); 190 array_merge( 191 $item_props, 192 array( 193 'menu-item-title' => 'Hola <em>Mundo</em>', 194 ) 195 ) 196 ); 197 $value = $setting->value(); 198 $js_value = $setting->js_value(); 199 $this->assertSame( $menu_item->type, $value['type'] ); 200 $this->assertSame( 'Hola <em>Mundo</em>', $value['title'] ); 201 $this->assertSame( 'Hello <em>World</em>', $value['original_title'] ); 202 $this->assertSame( 'Hello <em>World</em>', $js_value['original_title'] ); 203 $this->assertSame( $other_menu_id, $value['nav_menu_term_id'] ); 204 $this->assertSame( $value, array_merge( $js_value, array( 'original_title' => $value['original_title'] ) ) ); 193 205 } 194 206 … … 197 209 * 198 210 * @see WP_Customize_Nav_Menu_Item_Setting::value() 211 * @see WP_Customize_Nav_Menu_Item_Setting::js_value() 199 212 */ 200 213 function test_value_type_post_type_without_label() { 201 214 do_action( 'customize_register', $this->wp_customize ); 202 215 203 $original_title = 'Hello World';216 $original_title = 'Hello <i>World</i>'; 204 217 $post_id = self::factory()->post->create( array( 'post_title' => $original_title ) ); 205 218 … … 220 233 $setting = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id ); 221 234 222 $value = $setting->value(); 223 $this->assertEquals( '', $value['title'] ); 224 $this->assertEquals( $original_title, $value['original_title'] ); 235 $value = $setting->value(); 236 $js_value = $setting->js_value(); 237 $this->assertSame( '', $value['title'] ); 238 $this->assertSame( $original_title, $value['original_title'] ); 239 $this->assertSame( 'Hello <i>World</i>', $js_value['original_title'] ); 225 240 } 226 241 … … 233 248 do_action( 'customize_register', $this->wp_customize ); 234 249 235 $tax_id = self::factory()->category->create( array( 'name' => ' Salutations' ) );250 $tax_id = self::factory()->category->create( array( 'name' => '¡Salutations!' ) ); 236 251 237 252 $menu_id = wp_create_nav_menu( 'Menu' ); 238 $item_title = ' Greetings';253 $item_title = '¡Greetings!'; 239 254 $item_id = wp_update_nav_menu_item( 240 255 $menu_id, … … 256 271 $setting = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id ); 257 272 258 $value = $setting->value(); 259 $this->assertEquals( $menu_item->title, $value['title'] ); 260 $this->assertEquals( $menu_item->type, $value['type'] ); 273 $value = $setting->value(); 274 $js_value = $setting->js_value(); 275 $this->assertSame( $menu_item->title, $value['title'] ); 276 $this->assertSame( $menu_item->type, $value['type'] ); 261 277 $this->assertEquals( $menu_item->object_id, $value['object_id'] ); 262 $this->assertEquals( $menu_id, $value['nav_menu_term_id'] ); 263 $this->assertEquals( 'Salutations', $value['original_title'] ); 278 $this->assertSame( $menu_id, $value['nav_menu_term_id'] ); 279 $this->assertSame( '¡Salutations!', $value['original_title'] ); 280 $this->assertSame( '¡Salutations!', $js_value['original_title'] ); 264 281 } 265 282 … … 268 285 * 269 286 * @see WP_Customize_Nav_Menu_Item_Setting::value() 287 * @see WP_Customize_Nav_Menu_Item_Setting::js_value() 270 288 */ 271 289 function test_custom_type_label() { … … 291 309 $setting = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id ); 292 310 293 $value = $setting->value(); 294 $this->assertEquals( $menu_item->type_label, 'Custom Label' ); 295 $this->assertEquals( $menu_item->type_label, $value['type_label'] ); 311 $value = $setting->value(); 312 $js_value = $setting->js_value(); 313 $this->assertSame( 'Custom Label', $value['type_label'] ); 314 $this->assertSame( 'custom_type', $value['type'] ); 315 $this->assertSame( '', $value['original_title'] ); 316 $this->assertSame( '', $js_value['original_title'] ); 296 317 } 297 318 … … 394 415 $this->assertEquals( $value, $updated_item->$key, "Key $key mismatch" ); 395 416 } 417 } 418 419 /** 420 * Test preview method for updated menu with readonly properties. 421 * 422 * @see WP_Customize_Nav_Menu_Item_Setting::preview() 423 */ 424 public function test_preview_readonly_properties() { 425 do_action( 'customize_register', $this->wp_customize ); 426 427 $post_id = self::factory()->post->create( array( 'post_title' => '¡Hello World!' ) ); 428 $menu_id = wp_create_nav_menu( 'Primary' ); 429 $item_title = 'Greetings'; 430 $item_id = wp_update_nav_menu_item( 431 $menu_id, 432 0, 433 array( 434 'menu-item-type' => 'post_type', 435 'menu-item-object' => 'post', 436 'menu-item-object-id' => $post_id, 437 'menu-item-title' => $item_title, 438 'menu-item-status' => 'publish', 439 ) 440 ); 441 442 $post_value = array( 443 'type' => 'post_type', 444 'object' => 'post', 445 'object_id' => $post_id, 446 'title' => 'Saludos', 447 'status' => 'publish', 448 'nav_menu_term_id' => $menu_id, 449 'type_label' => 'Override Label', 450 'original_title' => 'Not Original!', 451 ); 452 $setting_id = "nav_menu_item[$item_id]"; 453 $setting = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id ); 454 $this->wp_customize->set_post_value( $setting_id, $post_value ); 455 $setting->preview(); 456 457 $value = $setting->value(); 458 $js_value = $setting->js_value(); 459 $this->assertSame( 'Saludos', $value['title'] ); 460 $this->assertSame( 'Saludos', $js_value['title'] ); 461 $this->assertSame( 'Post', $value['type_label'] ); 462 $this->assertSame( 'Post', $js_value['type_label'] ); 463 $this->assertSame( '¡Hello World!', $value['original_title'] ); 464 $this->assertSame( '¡Hello World!', $js_value['original_title'] ); 396 465 } 397 466 … … 459 528 * 460 529 * @see WP_Customize_Nav_Menu_Item_Setting::preview() 530 * @see WP_Customize_Nav_Menu_Item_Setting::value() 531 * @see WP_Customize_Nav_Menu_Item_Setting::js_value() 461 532 */ 462 533 function test_preview_deleted() { … … 493 564 $this->assertNotEquals( count( $current_items ), count( $preview_items ) ); 494 565 $this->assertContains( $delete_item_id, wp_list_pluck( $current_items, 'db_id' ) ); 566 567 $this->assertFalse( $setting->value() ); 568 $this->assertFalse( $setting->js_value() ); 495 569 } 496 570 … … 561 635 'xfn' => 'hello " inject="', 562 636 'status' => 'forbidden', 563 'original_title' => ' Hi<script>unfilteredHtml()</script>',637 'original_title' => 'Possibly authored by an admin: <script>unfilteredHtml()</script>', 564 638 'nav_menu_term_id' => 'heilo', 565 639 '_invalid' => false, … … 580 654 'xfn' => 'hello inject', 581 655 'status' => 'draft', 582 'original_title' => ' Hi',656 'original_title' => 'Possibly authored by an admin: <script>unfilteredHtml()</script>', 583 657 'nav_menu_term_id' => 0, 584 658 );
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)