diff --git a/classes/views/ComicPressSidebarStandard.php b/classes/views/ComicPressSidebarStandard.php index 1cdc2ee..c234b3e 100644 --- a/classes/views/ComicPressSidebarStandard.php +++ b/classes/views/ComicPressSidebarStandard.php @@ -47,9 +47,10 @@ class ComicPressSidebarStandard extends ComicPressView { $this->thumbnail_generation = array(); foreach (array('archive', 'rss') as $type) { + $option = $comicpress_manager->get_cpm_option("cpm-${type}-generate-thumbnails"); if ( ($comicpress_manager->scale_method !== false) && - ($comicpress_manager->get_cpm_option("cpm-${type}-generate-thumbnails") == 1) && + ($option == 1) && ($comicpress_manager->separate_thumbs_folder_defined[$type]) && ($comicpress_manager->thumbs_folder_writable[$type]) ) { @@ -58,15 +59,16 @@ class ComicPressSidebarStandard extends ComicPressView { $reasons = array(); if ($comicpress_manager->scale_method == false) { $reasons[] = __("No scaling software", 'comicpress-manager'); } - if ($comicpress_manager->get_cpm_option("cpm-${type}-generate-thumbnails") == 0) { + if ($option == 0) { $reasons[] = __("Generation disabled", 'comicpress-manager'); } else { if (!$comicpress_manager->separate_thumbs_folder_defined[$type]) { $reasons[] = __("Same as comics folder", 'comicpress-manager'); } if (!$comicpress_manager->thumbs_folder_writable[$type]) { $reasons[] = __("Not writable", 'comicpress-manager'); } } - $this->thumbnail_generation = $reasons; + $this->thumbnail_generation[$type] = $reasons; } } + return $this->thumbnail_generation; } } diff --git a/test/ComicPressSidebarStandardTest.php b/test/ComicPressSidebarStandardTest.php index 5fa8e3c..ba76230 100644 --- a/test/ComicPressSidebarStandardTest.php +++ b/test/ComicPressSidebarStandardTest.php @@ -40,40 +40,50 @@ class ComicPressSidebarStandardTest extends PHPUnit_Framework_TestCase { function providerTestThumbnailGenerationInfo() { return array( array( - 'option-archive' => 1, 'option-rss' => 1, - 'scale_method' => true, - 'separate_thumbs_folder_defined' => array('rss' => true, 'archive' => true), - 'thumbs_folder_writable' => array('rss' => true, 'archive' => true), - 'result' => array('rss' => true, 'archive' => true) + array( + 'option-archive' => 1, 'option-rss' => 1, + 'scale_method' => true, + 'separate_thumbs_folder_defined' => array('rss' => true, 'archive' => true), + 'thumbs_folder_writable' => array('rss' => true, 'archive' => true), + 'result' => array('rss' => true, 'archive' => true) + ), + ), + array( + array( + 'option-archive' => 1, 'option-rss' => 1, + 'scale_method' => false, + 'separate_thumbs_folder_defined' => array('rss' => true, 'archive' => true), + 'thumbs_folder_writable' => array('rss' => true, 'archive' => true), + 'result' => array('rss' => array("No scaling software"), 'archive' => array("No scaling software")) + ), + ), + array( + array( + 'option-archive' => 0, 'option-rss' => 1, + 'scale_method' => true, + 'separate_thumbs_folder_defined' => array('rss' => true, 'archive' => true), + 'thumbs_folder_writable' => array('rss' => true, 'archive' => true), + 'result' => array('rss' => true, 'archive' => array("Generation disabled")) + ), ), array( - 'option-archive' => 1, 'option-rss' => 1, - 'scale_method' => false, - 'separate_thumbs_folder_defined' => array('rss' => true, 'archive' => true), - 'thumbs_folder_writable' => array('rss' => true, 'archive' => true), - 'result' => array('rss' => array("No scaling software"), 'archive' => array("No scaling software")) + array( + 'option-archive' => 1, 'option-rss' => 1, + 'scale_method' => true, + 'separate_thumbs_folder_defined' => array('rss' => false, 'archive' => true), + 'thumbs_folder_writable' => array('rss' => true, 'archive' => true), + 'result' => array('rss' => array("Same as comics folder"), 'archive' => true) + ), ), array( - 'option-archive' => 0, 'option-rss' => 1, - 'scale_method' => true, - 'separate_thumbs_folder_defined' => array('rss' => true, 'archive' => true), - 'thumbs_folder_writable' => array('rss' => true, 'archive' => true), - 'result' => array('rss' => true, 'archive' => array("Generation disabled")) - ), - array( - 'option-archive' => 1, 'option-rss' => 1, - 'scale_method' => true, - 'separate_thumbs_folder_defined' => array('rss' => false, 'archive' => true), - 'thumbs_folder_writable' => array('rss' => true, 'archive' => true), - 'result' => array('rss' => array("Same as comics folder"), 'archive' => true) - ), - array( - 'option-archive' => 1, 'option-rss' => 1, - 'scale_method' => true, - 'separate_thumbs_folder_defined' => array('rss' => true, 'archive' => true), - 'thumbs_folder_writable' => array('rss' => true, 'archive' => false), - 'result' => array('rss' => true, 'archive' => array("Not writable")) - ), + array( + 'option-archive' => 1, 'option-rss' => 1, + 'scale_method' => true, + 'separate_thumbs_folder_defined' => array('rss' => true, 'archive' => true), + 'thumbs_folder_writable' => array('rss' => true, 'archive' => false), + 'result' => array('rss' => true, 'archive' => array("Not writable")) + ), + ) ); } @@ -85,21 +95,22 @@ class ComicPressSidebarStandardTest extends PHPUnit_Framework_TestCase { $comicpress_manager = $this->getMock('ComicPressManager', array('breakdown_comic_filename', 'get_subcomic_directory', 'get_cpm_option')); - $comicpress_manager->expects($this->at(1)) + $comicpress_manager->expects($this->at(0)) ->method('get_cpm_option') ->with('cpm-archive-generate-thumbnails') ->will($this->returnValue($info['option-archive'])); - $comicpress_manager->expects($this->at(2)) + $comicpress_manager->expects($this->at(1)) ->method('get_cpm_option') ->with('cpm-rss-generate-thumbnails') - ->will($this->returnValue($info['option-archive'])); + ->will($this->returnValue($info['option-rss'])); foreach (array('scale_method', 'separate_thumbs_folder_defined', 'thumbs_folder_writable') as $field) { - $comicpress_manager->{$field} = $info['field']; + $comicpress_manager->{$field} = $info[$field]; } - $comicpress_manager->comic_files = array(); $s = new ComicPressSidebarStandard(); - $this->assertEquals($info['result'], $s->_get_thumbnail_generation_info()); + $result = $s->_get_thumbnail_generation_info(); + $this->assertTrue(!empty($result)); + $this->assertEquals($info['result'], $result); } }