You appear to be a bot. Output may be restricted
Description
Test protected update() method via the save() method, for updated menu.
Usage
Test_WP_Customize_Nav_Menu_Setting::test_save_updated();
Parameters
Returns
void
Source
File name: wordpress-develop-tests/phpunit/tests/customize/nav-menu-setting.php
Lines:
1 to 60 of 60
public function test_save_updated() { do_action( 'customize_register', $this->wp_customize ); $menu_id = wp_update_nav_menu_object( 0, wp_slash( array( 'menu-name' => 'Name 1 \\o/', 'description' => 'Description 1 \\o/', 'parent' => 0, ) ) ); $nav_menu_options = $this->get_nav_menu_items_option(); $nav_menu_options['auto_add'][] = $menu_id; update_option( 'nav_menu_options', $nav_menu_options ); $setting_id = "nav_menu[$menu_id]"; $setting = new WP_Customize_Nav_Menu_Setting( $this->wp_customize, $setting_id ); $auto_add = false; $new_value = array( 'name' => 'Name 2 \\o/', 'description' => 'Description 2 \\o/', 'parent' => 1, 'auto_add' => $auto_add, ); $this->wp_customize->set_post_value( $setting_id, $new_value ); $setting->save(); $menu_object = wp_get_nav_menu_object( $menu_id ); foreach ( array( 'name', 'description', 'parent' ) as $key ) { $this->assertSame( $new_value[ $key ], $menu_object->$key ); } $this->assertSameSets( wp_array_slice_assoc( $new_value, array( 'name', 'description', 'parent' ) ), wp_array_slice_assoc( (array) $menu_object, array( 'name', 'description', 'parent' ) ) ); $this->assertSame( $new_value, $setting->value() ); $save_response = apply_filters( 'customize_save_response', array() ); $this->assertArrayHasKey( 'nav_menu_updates', $save_response ); $update_result = array_shift( $save_response['nav_menu_updates'] ); $this->assertArrayHasKey( 'term_id', $update_result ); $this->assertArrayHasKey( 'previous_term_id', $update_result ); $this->assertArrayHasKey( 'error', $update_result ); $this->assertArrayHasKey( 'status', $update_result ); $this->assertArrayHasKey( 'saved_value', $update_result ); $this->assertSame( $new_value, $update_result['saved_value'] ); $this->assertSame( $menu_id, $update_result['term_id'] ); $this->assertNull( $update_result['previous_term_id'] ); $this->assertNull( $update_result['error'] ); $this->assertSame( 'updated', $update_result['status'] ); $nav_menu_options = $this->get_nav_menu_items_option(); $this->assertNotContains( $menu_id, $nav_menu_options['auto_add'] ); }