diff --git a/classes/ComicPressBackend.inc b/classes/ComicPressBackend.inc
index 7ddd7ff..e494dc6 100644
--- a/classes/ComicPressBackend.inc
+++ b/classes/ComicPressBackend.inc
@@ -3,15 +3,19 @@
class ComicPressBackend {
function _embed_image($size) {
$extras = array();
- if (($dims = $this->dims($size)) !== false) {
- $extras = array_merge($extras, $dims);
+ $dims = $this->dims($size);
+ if (!empty($dims)) {
+ if (is_array($dims)) {
+ $extras = array_merge($extras, $dims);
+ }
}
+
foreach ($extras as $field => $value) {
- $extras[] = "${field}=\"${value}\"";
+ $extras[] = "${field}=\"${value}\" ";
unset($extras[$field]);
}
- $output = sprintf('', $this->url(), $this->alt(), $this->title(), implode(" ", $extras));
+ $output = sprintf('', $this->url(), $this->alt(), $this->title(), implode("", $extras));
return apply_filters('comicpress_embed_image', $output, $this);
}
}
\ No newline at end of file
diff --git a/classes/ComicPressNavigation.inc b/classes/ComicPressNavigation.inc
index 31288a9..a025259 100644
--- a/classes/ComicPressNavigation.inc
+++ b/classes/ComicPressNavigation.inc
@@ -4,10 +4,12 @@ require_once('ComicPressStoryline.inc');
require_once('ComicPressDBInterface.inc');
class ComicPressNavigation {
+ // @codeCoverageIgnoreStart
function init($storyline) {
$this->_storyline = $storyline;
$this->_dbi = ComicPressDBInterface::get_instance();
}
+ // @codeCoverageIgnoreEnd
function get_post_nav($post) {
$nav = array();
@@ -61,6 +63,7 @@ class ComicPressNavigation {
return $nav;
}
}
+ return false;
}
}
diff --git a/test/ComicPressBackendTest.php b/test/ComicPressBackendTest.php
new file mode 100644
index 0000000..b9f341e
--- /dev/null
+++ b/test/ComicPressBackendTest.php
@@ -0,0 +1,45 @@
+$#'
+ )
+ ),
+ array(
+ array(), array(
+ '#^$#'
+ )
+ ),
+ array(
+ array('width' => 320, 'height' => 240), array(
+ '#^$#'
+ )
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider providerTestEmbedImage
+ */
+ function testEmbedImage($dims_result, $expected_result_patterns) {
+ $backend = $this->getMock('ComicPressBackend', array('dims', 'url', 'alt', 'title'));
+
+ $backend->expects($this->once())->method('dims')->with('comic')->will($this->returnValue($dims_result));
+ $backend->expects($this->once())->method('url')->will($this->returnValue('http://comic'));
+ $backend->expects($this->once())->method('alt')->will($this->returnValue('alt'));
+ $backend->expects($this->once())->method('title')->will($this->returnValue('title'));
+
+ $result = $backend->_embed_image('comic');
+
+ foreach ($expected_result_patterns as $pattern) {
+ $this->assertTrue(preg_match($pattern, $result) > 0);
+ }
+ }
+}
\ No newline at end of file
diff --git a/test/ComicPressNavigationTest.php b/test/ComicPressNavigationTest.php
index 7579fe1..24da147 100644
--- a/test/ComicPressNavigationTest.php
+++ b/test/ComicPressNavigationTest.php
@@ -13,6 +13,14 @@ class ComicPressNavigationTest extends PHPUnit_Framework_TestCase {
$this->nav = new ComicPressNavigation();
}
+ function testGetPostNavNotAPost() {
+ $this->assertTrue($this->nav->get_post_nav(false) === false);
+ }
+
+ function testGetPostNavFromCache() {
+ $this->markTestIncomplete();
+ }
+
function testGetPostNav() {
$dbi = $this->getMock('ComicPressDBInterface', array('get_previous_comic', 'get_next_comic', 'get_first_comic', 'get_last_comic'));
$storyline = new ComicPressStoryline();