diff --git a/functions.inc b/functions.inc index 962f37e..56be18d 100644 --- a/functions.inc +++ b/functions.inc @@ -19,6 +19,7 @@ foreach (array( // Global template functions for ComicPress +// @codeCoverageIgnoreStart function F($name, $path, $override_post = null) { global $post; @@ -27,6 +28,7 @@ function F($name, $path, $override_post = null) { $comicpress = ComicPress::get_instance(); return $comicpress->find_file($name, $path, $comic_post->find_parents()); } +// @codeCoverageIgnoreEnd /** * Protect global $post and $wp_query. @@ -139,6 +141,8 @@ function RT($which, $restrictions = null, $override_post = null) { return $post; } +// @codeCoverageIgnoreEnd + function RL($restrictions = null, $override_post = null) { global $post; $post_to_use = !is_null($override_post) ? $override_post : $post; @@ -150,17 +154,17 @@ function RL($restrictions = null, $override_post = null) { return $storyline->build_from_restrictions($restrictions); } -// @codeCoverageIgnoreEnd - function In_R($restrictions = null, $override_post = null) { global $post; $post_to_use = !is_null($override_post) ? $override_post : $post; $post_categories = wp_get_post_categories($post_to_use->ID); if (is_array($post_categories)) { - $category_id = reset($post_categories); - if (is_numeric($category_id)) { - return in_array($category_id, RL($restrictions, $post_to_use)); + if (count($post_categories) == 1) { + $category_id = reset($post_categories); + if (is_numeric($category_id)) { + return in_array($category_id, RL($restrictions, $post_to_use)); + } } } @@ -226,10 +230,13 @@ function SC($which = 'current', $relative_to = null) { } if ($result !== false) { $category = get_category($result); + // sanity check + // @codeCoverageIgnoreStart if (!empty($category)) { return $category; } } + // @codeCoverageIgnoreEnd } return false; diff --git a/test/ComicPressAdminTest.php b/test/ComicPressAdminTest.php index 2322af1..279d8f3 100644 --- a/test/ComicPressAdminTest.php +++ b/test/ComicPressAdminTest.php @@ -231,6 +231,40 @@ class ComicPressAdminTest extends PHPUnit_Framework_TestCase { } } + function testHandleUpdateCallAttachments() { + $admin = $this->getMock('ComicPressAdmin', array('handle_update_attachments', 'handle_update_test')); + + $admin->expects($this->once())->method('handle_update_attachments'); + $admin->expects($this->never())->method('handle_update_test'); + + $_REQUEST = array( + 'cp' => array( + '_nonce' => wp_create_nonce('comicpress') + ) + ); + + $_POST = array('attachments' => 'test'); + + $admin->handle_update(); + } + + function testHandleUpdateCallMethod() { + $admin = $this->getMock('ComicPressAdmin', array('handle_update_attachments', 'handle_update_test_method')); + + $admin->expects($this->never())->method('handle_update_attachments'); + $admin->expects($this->once())->method('handle_update_test_method'); + + $_REQUEST = array( + 'cp' => array( + '_nonce' => wp_create_nonce('comicpress'), + 'action' => 'test-method', + '_action_nonce' => wp_create_nonce('comicpress-test-method') + ) + ); + + $admin->handle_update(); + } + function providerTestUpdateZoomSliderMeta() { return array( array(false), diff --git a/test/ComicPressBackendTest.php b/test/ComicPressBackendTest.php index e79fc4d..fc504fc 100644 --- a/test/ComicPressBackendTest.php +++ b/test/ComicPressBackendTest.php @@ -5,6 +5,10 @@ require_once('MockPress/mockpress.php'); require_once('ComicPressBackend.inc'); class ComicPressBackendTest extends PHPUnit_Framework_TestCase { + function setUp() { + _reset_wp(); + } + function providerTestEmbedImage() { return array( array( diff --git a/test/FunctionsTest.php b/test/FunctionsTest.php index ff7afea..c3d07ef 100644 --- a/test/FunctionsTest.php +++ b/test/FunctionsTest.php @@ -48,7 +48,17 @@ class FunctionsTest extends PHPUnit_Framework_TestCase { ), get_post_meta($post_to_test->ID, 'image-ordering', true)); } - function testProtect() { + function providerTestProtect() { + return array( + array(null, 'test'), + array('test3', 'test3') + ); + } + + /** + * @dataProvider providerTestProtect + */ + function testProtect($post_to_use, $expected_post) { global $post, $wp_query, $__post, $__wp_query; $__post = null; @@ -57,9 +67,10 @@ class FunctionsTest extends PHPUnit_Framework_TestCase { $post = "test"; $wp_query = "test2"; - Protect(); + Protect($post_to_use); - $this->assertEquals($post, $__post); + $this->assertEquals($__post, 'test'); + $this->assertEquals($expected_post, $post); $this->assertEquals($wp_query, $__wp_query); } @@ -224,7 +235,27 @@ class FunctionsTest extends PHPUnit_Framework_TestCase { } } - function testIs_R() { - $this->markTestIncomplete(); + function providerTestIn_R() { + return array( + array(array(1), true), + array(array(5), false), + array(array(1,5), false), + array(array('test'), false) + ); + } + + /** + * @dataProvider providerTestIn_R + */ + function testIn_R($categories, $expected_result) { + global $post; + + $post = (object)array('ID' => 1); + wp_set_post_categories(1, $categories); + + $s = new ComicPressStoryline(); + $s->set_flattened_storyline('0/1,0/2,0/2/3,0/2/4'); + + $this->assertEquals($expected_result, In_R()); } } diff --git a/test/backends/ComicPressBackendAttachmentTest.php b/test/backends/ComicPressBackendAttachmentTest.php index ad3a806..aa11485 100644 --- a/test/backends/ComicPressBackendAttachmentTest.php +++ b/test/backends/ComicPressBackendAttachmentTest.php @@ -45,17 +45,18 @@ class ComicPressBackendAttachmentTest extends PHPUnit_Framework_TestCase { function providerTestDims() { return array( - array(false, array()), - array(true, array()), - array(array(), array()), - array(array('dimensions' => '300x200'), array('width' => 300, 'height' => 200)) - ); + array('comic', false, array()), + array('comic', true, array()), + array('comic', array(), array()), + array('comic', array('dimensions' => '300x200'), array('width' => 300, 'height' => 200)), + array('default', array('dimensions' => '300x200', 'default' => true), array('width' => 300, 'height' => 200)) + ); } /** * @dataProvider providerTestDims */ - function testDims($image_options, $expected_result) { + function testDims($which, $image_options, $expected_result) { $comicpress = ComicPress::get_instance(); $comicpress->comicpress_options = array( 'image_types' => array( @@ -63,7 +64,7 @@ class ComicPressBackendAttachmentTest extends PHPUnit_Framework_TestCase { ) ); - $this->assertEquals($expected_result, $this->ba->dims('comic')); + $this->assertEquals($expected_result, $this->ba->dims($which)); } function providerTestUrl() { @@ -85,22 +86,23 @@ class ComicPressBackendAttachmentTest extends PHPUnit_Framework_TestCase { function providerTestGenerateFromID() { return array( - array(null, false), - array(1, false), - array('attachment-1', true), - array('attachment-2', false), - array('attachment-3', false), + array(null, false, false), + array(1, false, false), + array('attachment-1', true, true), + array('attachment-1', false, false), + array('attachment-2', false, false), + array('attachment-3', false, false), ); } /** * @dataProvider providerTestGenerateFromID */ - function testGenerateFromID($id, $is_successful) { + function testGenerateFromID($id, $is_managed, $is_successful) { wp_insert_post(array('ID' => 1)); wp_insert_post(array('ID' => 3)); - update_post_meta(1, 'comicpress', array('managed' => true)); + update_post_meta(1, 'comicpress', array('managed' => $is_managed)); if ($is_successful) { $return = new ComicPressBackendAttachment((object)array('ID' => 1));