/** * Test value method returns zero for nav_menu_term_id when previewing a new menu. * * @see WP_Customize_Nav_Menu_Item_Setting::value() */ function test_value_nav_menu_term_id_returns_zero() { do_action('customize_register', $this->wp_customize); $menu_id = -123; $post_value = array('name' => 'Secondary', 'description' => '', 'parent' => 0, 'auto_add' => false); $setting_id = "nav_menu[{$menu_id}]"; $menu = new WP_Customize_Nav_Menu_Setting($this->wp_customize, $setting_id); $this->wp_customize->set_post_value($menu->id, $post_value); $menu->preview(); $value = $menu->value(); $this->assertEquals($post_value, $value); $post_id = self::factory()->post->create(array('post_title' => 'Hello World')); $item_id = wp_update_nav_menu_item($menu_id, 0, array('menu-item-type' => 'post_type', 'menu-item-object' => 'post', 'menu-item-object-id' => $post_id, 'menu-item-title' => 'Hello World', 'menu-item-status' => 'publish')); $post = get_post($item_id); $menu_item = wp_setup_nav_menu_item($post); $setting_id = "nav_menu_item[{$item_id}]"; $setting = new WP_Customize_Nav_Menu_Item_Setting($this->wp_customize, $setting_id); $value = $setting->value(); $this->assertEquals(0, $value['nav_menu_term_id']); }
/** * Test preview method for deleted menu. * * @see WP_Customize_Nav_Menu_Setting::preview() */ function test_preview_deleted() { do_action('customize_register', $this->wp_customize); $menu_id = wp_update_nav_menu_object(0, array('menu-name' => 'Name 1', 'description' => 'Description 1', 'parent' => 0)); $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); $nav_menu_options = $this->get_nav_menu_items_option(); $this->assertContains($menu_id, $nav_menu_options['auto_add']); $this->wp_customize->set_post_value($setting_id, false); $this->assertInternalType('array', $setting->value()); $this->assertInternalType('object', wp_get_nav_menu_object($menu_id)); $setting->preview(); $this->assertFalse($setting->value()); $this->assertFalse(wp_get_nav_menu_object($menu_id)); $nav_menu_options = $this->get_nav_menu_items_option(); $this->assertNotContains($menu_id, $nav_menu_options['auto_add']); }