function testGetPostNav() { global $wp_query; $dbi = $this->getMock('ComicPressDBInterface', array('get_previous_post', 'get_next_post', 'get_first_post', 'get_last_post')); $storyline = new ComicPressStoryline(); $storyline->set_flattened_storyline('0/1,0/1/2,0/3'); wp_insert_post(array('ID' => 1)); $post = get_post(1); wp_set_post_categories(1, array(2)); $dbi->expects($this->at(0))->method('get_previous_post')->with(array(1, 2, 3), $post); $dbi->expects($this->at(1))->method('get_next_post')->with(array(1, 2, 3), $post); $dbi->expects($this->at(2))->method('get_first_post')->with(array(1, 2, 3)); $dbi->expects($this->at(3))->method('get_last_post')->with(array(1, 2, 3)); $dbi->expects($this->at(4))->method('get_previous_post')->with(2, $post); $dbi->expects($this->at(5))->method('get_next_post')->with(2, $post); // level $dbi->expects($this->at(6))->method('get_first_post')->with(2)->will($this->returnValue((object) array('ID' => 1))); // parent $dbi->expects($this->at(7))->method('get_first_post')->with(1)->will($this->returnValue((object) array('ID' => 1))); // previous $dbi->expects($this->at(8))->method('get_first_post')->with(1)->will($this->returnValue((object) array('ID' => 1))); // next $dbi->expects($this->at(9))->method('get_first_post')->with(3)->will($this->returnValue((object) array('ID' => 1))); $this->nav->_dbi = $dbi; $this->nav->_storyline = $storyline; $this->assertFalse(wp_cache_get('navigation-1', 'comicpress')); $wp_query = (object) array('is_single' => true, 'in_the_loop' => true); $this->nav->get_post_nav($post); $this->assertTrue(wp_cache_get('navigation-1', 'comicpress') !== false); }
/** * @dataProvider providerTestCategoryTraversal */ function testCategoryTraversal($methods, $expected_result, $compare_ids = false) { global $post; $storyline = new ComicPressStoryline(); $storyline->set_flattened_storyline('0/1,0/2,0/2/3,0/2/4,0/5'); foreach (array(1 => array('cat_name' => 'Test 1', 'category_nicename' => 'category-1', 'category_parent' => 0), 2 => array('cat_name' => 'Test 2', 'category_nicename' => 'category-2', 'category_parent' => 0), 3 => array('cat_name' => 'Test 3', 'category_nicename' => 'category-3', 'category_parent' => 2), 4 => array('cat_name' => 'Test 4', 'category_nicename' => 'category-4', 'category_parent' => 2), 5 => array('cat_name' => 'Test 5', 'category_nicename' => 'category-5', 'category_parent' => 0)) as $id => $category) { add_category($id, (object) $category); } $post = (object) array('ID' => 1); $dbi = $this->getMock('ComicPressDBInterface'); $core = new ComicPressTagBuilderFactory($dbi); wp_insert_post($post); wp_insert_post((object) array('ID' => 2)); wp_set_post_categories(1, array(2)); wp_set_post_categories(2, array(3)); foreach ($methods as $method_info) { $method = array_shift($method_info); $core = call_user_func_array(array($core, $method), $method_info); } if (is_object($core)) { $this->assertEquals($expected_result, $core->cat_ID); } else { if (is_array($core) && $compare_ids) { foreach ($expected_result as $id) { $cat = array_shift($core); $this->assertEquals($id, $cat->cat_ID); } } else { $this->assertEquals($expected_result, $core); } } }