2009-06-16 00:52:57 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
require_once('PHPUnit/Framework.php');
|
|
|
|
require_once(realpath(dirname(__FILE__) . '/../classes/ComicPressView.php'));
|
|
|
|
require_once(realpath(dirname(__FILE__) . '/../classes/views/ComicPressSidebarStandard.php'));
|
|
|
|
require_once(realpath(dirname(__FILE__) . '/../../mockpress/mockpress.php'));
|
|
|
|
|
|
|
|
class ComicPressSidebarStandardTest extends PHPUnit_Framework_TestCase {
|
2009-06-17 01:20:56 +00:00
|
|
|
function testAllComicDatesOK() {
|
2009-06-16 00:52:57 +00:00
|
|
|
global $comicpress_manager;
|
2009-06-16 00:55:04 +00:00
|
|
|
|
2009-06-17 01:20:56 +00:00
|
|
|
// no comics
|
|
|
|
$comicpress_manager = $this->getMock('ComicPressManager');
|
|
|
|
$comicpress_manager->comic_files = array();
|
|
|
|
|
|
|
|
$v = new ComicPressSidebarStandard();
|
|
|
|
$v->_all_comic_dates_ok();
|
2009-06-17 11:07:57 +00:00
|
|
|
$this->assertTrue(empty($v->too_many_comics_message));
|
2009-06-17 01:20:56 +00:00
|
|
|
|
|
|
|
// one comic
|
|
|
|
$comicpress_manager = $this->getMock('ComicPressManager', array('breakdown_comic_filename'));
|
|
|
|
$comicpress_manager->comic_files = array("test");
|
|
|
|
$comicpress_manager->expects($this->once())->method('breakdown_comic_filename')->will($this->returnValue(array('date' => "test")));
|
|
|
|
|
|
|
|
$v = new ComicPressSidebarStandard();
|
|
|
|
$v->_all_comic_dates_ok();
|
2009-06-17 11:07:57 +00:00
|
|
|
$this->assertTrue(empty($v->too_many_comics_message));
|
2009-06-17 01:20:56 +00:00
|
|
|
|
|
|
|
// two comics
|
|
|
|
|
|
|
|
$comicpress_manager = $this->getMock('ComicPressManager', array('breakdown_comic_filename'));
|
|
|
|
$comicpress_manager->comic_files = array("test", "test2");
|
|
|
|
$comicpress_manager->expects($this->exactly(2))->method('breakdown_comic_filename')->will($this->returnValue(array('date' => "test")));
|
|
|
|
|
|
|
|
$v = new ComicPressSidebarStandard();
|
|
|
|
$v->_all_comic_dates_ok();
|
2009-06-17 11:07:57 +00:00
|
|
|
$this->assertTrue(!empty($v->too_many_comics_message));
|
2009-06-16 00:52:57 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
function providerTestThumbnailGenerationInfo() {
|
|
|
|
return array(
|
|
|
|
array(
|
2009-06-17 10:58:55 +00:00
|
|
|
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)
|
|
|
|
),
|
|
|
|
),
|
2009-06-16 00:52:57 +00:00
|
|
|
array(
|
2009-06-17 10:58:55 +00:00
|
|
|
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"))
|
|
|
|
),
|
|
|
|
),
|
2009-06-16 00:52:57 +00:00
|
|
|
array(
|
2009-06-17 10:58:55 +00:00
|
|
|
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"))
|
|
|
|
),
|
2009-06-16 00:52:57 +00:00
|
|
|
),
|
|
|
|
array(
|
2009-06-17 10:58:55 +00:00
|
|
|
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)
|
|
|
|
),
|
2009-06-16 00:52:57 +00:00
|
|
|
),
|
|
|
|
array(
|
2009-06-17 10:58:55 +00:00
|
|
|
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"))
|
|
|
|
),
|
|
|
|
)
|
2009-06-16 00:52:57 +00:00
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @dataProvider providerTestThumbnailGenerationInfo
|
|
|
|
*/
|
|
|
|
function testThumbnailGenerationInfo($info) {
|
|
|
|
global $comicpress_manager;
|
|
|
|
|
|
|
|
$comicpress_manager = $this->getMock('ComicPressManager', array('breakdown_comic_filename', 'get_subcomic_directory', 'get_cpm_option'));
|
|
|
|
|
2009-06-17 10:58:55 +00:00
|
|
|
$comicpress_manager->expects($this->at(0))
|
2009-06-16 00:52:57 +00:00
|
|
|
->method('get_cpm_option')
|
|
|
|
->with('cpm-archive-generate-thumbnails')
|
|
|
|
->will($this->returnValue($info['option-archive']));
|
2009-06-17 10:58:55 +00:00
|
|
|
$comicpress_manager->expects($this->at(1))
|
2009-06-16 00:52:57 +00:00
|
|
|
->method('get_cpm_option')
|
|
|
|
->with('cpm-rss-generate-thumbnails')
|
2009-06-17 10:58:55 +00:00
|
|
|
->will($this->returnValue($info['option-rss']));
|
2009-06-16 00:52:57 +00:00
|
|
|
foreach (array('scale_method', 'separate_thumbs_folder_defined', 'thumbs_folder_writable') as $field) {
|
2009-06-17 10:58:55 +00:00
|
|
|
$comicpress_manager->{$field} = $info[$field];
|
2009-06-16 00:52:57 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
$s = new ComicPressSidebarStandard();
|
2009-06-17 10:58:55 +00:00
|
|
|
$result = $s->_get_thumbnail_generation_info();
|
|
|
|
$this->assertTrue(!empty($result));
|
|
|
|
$this->assertEquals($info['result'], $result);
|
2009-06-16 00:52:57 +00:00
|
|
|
}
|
2009-06-17 11:07:57 +00:00
|
|
|
|
2009-06-18 11:26:27 +00:00
|
|
|
function testRenderCategoryIssues() {
|
|
|
|
global $comicpress_manager, $comicpress_manager_admin;
|
|
|
|
|
|
|
|
$s = new ComicPressSidebarStandard();
|
|
|
|
$s->thumbnail_generation = array('rss' => true, 'archive' => array("test"));
|
|
|
|
|
|
|
|
$comicpress_manager_admin = $this->getMock('ComicPressManagerAdmin', array('show_debug_info'));
|
|
|
|
|
|
|
|
ob_start();
|
|
|
|
$s->render();
|
|
|
|
$source = ob_get_clean();
|
|
|
|
|
|
|
|
$this->assertTrue(($xml = _to_xml($source, true)) !== false);
|
|
|
|
$this->assertFalse($s->comic_category);
|
|
|
|
$this->assertFalse($s->blog_category);
|
|
|
|
|
|
|
|
foreach (array(
|
|
|
|
'//em[text()="Not defined!"]/../strong[text()="Comic categories:"]' => true,
|
|
|
|
'//em[text()="Not defined!"]/../strong[text()="Blog categories:"]' => true,
|
|
|
|
) as $xpath => $value) {
|
|
|
|
$this->assertTrue(_xpath_test($xml, $xpath, $value), $xpath);
|
|
|
|
}
|
|
|
|
}
|
2009-06-17 11:07:57 +00:00
|
|
|
|
2009-06-18 11:26:27 +00:00
|
|
|
function testRenderGenerationStates() {
|
|
|
|
global $comicpress_manager, $comicpress_manager_admin;
|
|
|
|
|
|
|
|
add_category(1, (object)array('name' => 'Comics'));
|
|
|
|
add_category(2, (object)array('name' => 'Blog'));
|
|
|
|
|
|
|
|
$s = new ComicPressSidebarStandard();
|
|
|
|
$s->thumbnail_generation = array('rss' => true, 'archive' => array("test"));
|
|
|
|
|
|
|
|
$comicpress_manager_admin = $this->getMock('ComicPressManagerAdmin', array('show_debug_info'));
|
|
|
|
|
|
|
|
ob_start();
|
|
|
|
$s->render();
|
|
|
|
$source = ob_get_clean();
|
|
|
|
|
|
|
|
$this->assertTrue(($xml = _to_xml($source, true)) !== false);
|
|
|
|
foreach (array(
|
|
|
|
) as $xpath => $value) {
|
|
|
|
$this->assertTrue(_xpath_test($xml, $xpath, $value), $xpath);
|
|
|
|
}
|
|
|
|
|
|
|
|
$this->markTestIncomplete();
|
2009-06-17 11:07:57 +00:00
|
|
|
}
|
2009-06-16 00:52:57 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
?>
|