From abcfc8ca2d488ec3d906c8b3610ac0ec9ec5defe Mon Sep 17 00:00:00 2001 From: John Bintz Date: Sat, 25 Jul 2009 16:27:12 -0400 Subject: [PATCH] working on unit tests for previous/next categories --- classes/ComicPress.inc | 26 +++++++++++--- test/ComicPressTest.php | 80 +++++++++++++---------------------------- 2 files changed, 46 insertions(+), 60 deletions(-) diff --git a/classes/ComicPress.inc b/classes/ComicPress.inc index 06700da..a94e42e 100644 --- a/classes/ComicPress.inc +++ b/classes/ComicPress.inc @@ -196,7 +196,8 @@ class ComicPress { /** * Find the terminal post in a specific category. */ - function get_terminal_post_in_category($category_id, $first = true) { + function get_terminal_post_in_category($category_id = null, $first = true) { + $category_id = is_null($category_id) ? $this->comicpress_options['comic_category_id'] : $category_id; $sort_order = $first ? "asc" : "desc"; $terminal_comic_query =$this->_new_wp_query(); $terminal_comic_query->query("showposts=1&order=${sort_order}&cat=${category_id}&status=publish"); @@ -209,15 +210,15 @@ class ComicPress { /** * Get the first comic in a category. */ - function get_first_comic() { - return $this->get_terminal_post_in_category($category); + function get_first_comic($category_id = null) { + return $this->get_terminal_post_in_category($category_id); } /** * Get the last comic in a category. */ - function get_last_comic($category) { - return $this->get_terminal_post_in_category($category, false); + function get_last_comic($category_id = null) { + return $this->get_terminal_post_in_category($category_id, false); } /** @@ -375,6 +376,21 @@ class ComicPress { } return $this->layouts; } + + function get_previous_next_categories($category_id) { + $prev_next_categories = array(); + + for ($i = 0, $il < count($this->category_tree); $i < $il; ++$i) { + $parts = explode("/", $this->category_tree); + if (count($parts) > 2) { + if (end($parts) == $category_id) { + + } + } + } + + return $prev_next_categories; + } } ?> \ No newline at end of file diff --git a/test/ComicPressTest.php b/test/ComicPressTest.php index c4bef1d..da187a5 100644 --- a/test/ComicPressTest.php +++ b/test/ComicPressTest.php @@ -172,75 +172,45 @@ class ComicPressTest extends PHPUnit_Framework_TestCase { } } - function providerTestGetStorylineNavComics() { + function providerTestGetPreviousNextCategories() { return array( array( array( - '1' => array( - 'first' => 8, - 'previous' => 9, - 'next' => 11, - 'last' => 12 - ), - '2' => array( - 'first' => 10, - 'previous' => false, - 'next' => 15, - 'last' => 15 - ), - '3' => array( - 'first' => 20, - 'previous' => 20, - 'next' => false, - 'last' => 21 - ) - ) + '0/1' + ), + 1, + array() ), array( - '1' => array( - 'first' => true, - 'previous' => true, - 'next' => true, - 'last' => true + array( + '0/1', + '0/1/2' ), - '2' => array( - 'first' => true, - 'previous' => false, - 'next' => false, - 'last' => true + 2, + array() + ), + array( + array( + '0/1', + '0/1/2', + '0/1/3', ), - '3' => array( - 'first' => true, - 'previous' => false, - 'next' => false, - 'last' => true + 2, + array( + '1' => array('next' => 3) ) - ) - ); + ), + ); } /** - * @dataProvider providerTestGetStorylineNavComics + * @dataProvider providerTestGetPreviousNextCategories */ - function testGetStorylineNavComics($category_info, $expected_category_results) { - $cp = $this->getMock('ComicPress', array('get_first_comic', 'get_last_comic', 'get_previous_comic', 'get_next_comic')); - foreach ($category_info as $category => $nav_comics) { - foreach ($nav_comics as $key => $result) { - $return = (is_numeric($result)) ? (object)array('ID' => $result) : false; - $cp->expects($this->once())->method("get_${key}_comic")->with($category)->will($this->returnValue($return)); - } - } - - $post = (is_numeric($given_post)) ? (object)array('ID' => $given_post) : false; - - $comic_posts = $cp->get_nav_comics(); - - foreach ($expected_shows as $show => $expected) { - $this->assertEquals($expected, $comic_posts["show_${show}"], $show); - } + function testGetPreviousNextCategories($category_tree, $current_category, $expected_prev_nexts) { + $this->cp->category_tree = $category_tree; + $this->assertEquals($expected_prev_nexts, $this->cp->get_previous_next_categories($current_category)); } - function providerTestGetLayoutChoices() { return array(