/** * Test WP_Customize_Nav_Menu_Item_Setting::value_as_wp_post_nav_menu_item() where title is empty. * * @ticket 38015 * @see WP_Customize_Nav_Menu_Item_Setting::value_as_wp_post_nav_menu_item() */ function test_value_as_wp_post_nav_menu_item_with_empty_title() { $original_title = 'The Original Title'; $post_id = self::factory()->post->create(array('post_title' => $original_title)); $setting = new WP_Customize_Nav_Menu_Item_Setting($this->wp_customize, 'nav_menu_item[123]'); $post_value = array_merge($setting->default, array('object_id' => $post_id, 'object' => 'post', 'type' => 'post_type', 'status' => 'publish', 'nav_menu_term_id' => 0)); $this->wp_customize->set_post_value($setting->id, $post_value); $setting->preview(); $nav_menu_item = $setting->value_as_wp_post_nav_menu_item(); $this->assertEquals($original_title, $nav_menu_item->title); }
/** * Test WP_Customize_Nav_Menu_Item_Setting::value_as_wp_post_nav_menu_item(). * * @see WP_Customize_Nav_Menu_Item_Setting::value_as_wp_post_nav_menu_item() */ function test_value_as_wp_post_nav_menu_item() { $post_id = self::factory()->post->create(); $setting = new WP_Customize_Nav_Menu_Item_Setting($this->wp_customize, 'nav_menu_item[123]'); $post_value = array('object_id' => $post_id, 'object' => 'post', 'menu_item_parent' => 0, 'position' => 2, 'type' => 'custom_type', 'title' => 'Hello \\o/ o\'o World', 'url' => '', 'target' => '', 'attr_title' => '">att \\o/ o\'o empted <b>baddie</b>', 'description' => 'Attempted \\o/ o\'o <b>markup</b>', 'classes' => '', 'xfn' => '', 'status' => 'publish', 'original_title' => '', 'nav_menu_term_id' => 0, '_invalid' => false); $this->wp_customize->set_post_value($setting->id, $post_value); $setting->preview(); $nav_menu_item = $setting->value_as_wp_post_nav_menu_item(); $this->assertEquals('Custom Link', $nav_menu_item->type_label); add_filter('wp_setup_nav_menu_item', array($this, 'filter_type_label')); $nav_menu_item = $setting->value_as_wp_post_nav_menu_item(); $this->assertEquals('Custom Label', $nav_menu_item->type_label); $this->assertObjectNotHasAttribute('nav_menu_term_id', $nav_menu_item); $this->assertObjectNotHasAttribute('status', $nav_menu_item); $this->assertEquals('publish', $nav_menu_item->post_status); $this->assertEquals('nav_menu_item', $nav_menu_item->post_type); $this->assertObjectNotHasAttribute('position', $nav_menu_item); $this->assertEquals($post_value['position'], $nav_menu_item->menu_order); $this->assertEquals($post_value['title'], $nav_menu_item->post_title); $this->assertEquals(123, $nav_menu_item->ID); $this->assertEquals(123, $nav_menu_item->db_id); $this->assertEquals(wp_get_current_user()->ID, $nav_menu_item->post_author); $this->assertObjectHasAttribute('type_label', $nav_menu_item); $expected = apply_filters('nav_menu_attr_title', wp_unslash(apply_filters('excerpt_save_pre', wp_slash($post_value['attr_title'])))); $this->assertEquals($expected, $nav_menu_item->attr_title); $this->assertEquals('Attempted \\o/ o’o markup', $nav_menu_item->description); }