/** * Test protected update() method via the save() method, for deleted menu. * * @see WP_Customize_Nav_Menu_Setting::update() */ function test_save_deleted() { do_action('customize_register', $this->wp_customize); $menu_name = 'Lorem Ipsum'; $menu_id = wp_create_nav_menu($menu_name); $setting_id = "nav_menu[{$menu_id}]"; $setting = new WP_Customize_Nav_Menu_Setting($this->wp_customize, $setting_id); $nav_menu_options = $this->get_nav_menu_items_option(); $nav_menu_options['auto_add'][] = $menu_id; update_option('nav_menu_options', $nav_menu_options); $menu = wp_get_nav_menu_object($menu_id); $this->assertEquals($menu_name, $menu->name); $this->wp_customize->set_post_value($setting_id, false); $setting->save(); $this->assertFalse(wp_get_nav_menu_object($menu_id)); $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->assertNull($update_result['saved_value']); $this->assertEquals($menu_id, $update_result['term_id']); $this->assertNull($update_result['previous_term_id']); $this->assertNull($update_result['error']); $this->assertEquals('deleted', $update_result['status']); $nav_menu_options = $this->get_nav_menu_items_option(); $this->assertNotContains($menu_id, $nav_menu_options['auto_add']); }