1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/cops_ynh.git synced 2024-09-03 18:25:57 +02:00
cops_ynh/sources/test/customColumnsTest.php
2016-12-21 17:48:44 +00:00

1102 lines
No EOL
48 KiB
PHP

<?php
/**
* COPS (Calibre OPDS PHP Server) test file
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Sébastien Lucas <sebastien@slucas.fr>
*/
require_once(dirname(__FILE__) . "/config_test.php");
class CustomColumnTest extends PHPUnit_Framework_TestCase
{
public function testColumnType01()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_01");
Base::clearDb();
$coltype = CustomColumnType::createByCustomID(8);
$this->assertEquals($coltype, CustomColumnType::createByLookup("custom_01"));
$this->assertEquals(8, $coltype->customId);
$this->assertEquals("custom_01", $coltype->columnTitle);
$this->assertEquals("text", $coltype->datatype);
$this->assertEquals("CustomColumnTypeText", get_class($coltype));
$this->assertCount(3, $coltype->getAllCustomValues());
$this->assertEquals("?page=14&custom=8", $coltype->getUriAllCustoms());
$this->assertEquals("cops:custom:8", $coltype->getAllCustomsId());
$this->assertEquals("custom_01", $coltype->getTitle());
$this->assertEquals("Custom column example 01 (text)", $coltype->getDatabaseDescription());
$this->assertEquals("Custom column example 01 (text)", $coltype->getDescription());
$this->assertEquals(true, $coltype->isSearchable());
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testColumnType01b()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_01b");
Base::clearDb();
$coltype = CustomColumnType::createByCustomID(16);
$this->assertEquals($coltype, CustomColumnType::createByLookup("custom_01b"));
$this->assertEquals(16, $coltype->customId);
$this->assertEquals("custom_01b", $coltype->columnTitle);
$this->assertEquals("text", $coltype->datatype);
$this->assertEquals("CustomColumnTypeText", get_class($coltype));
$this->assertCount(3, $coltype->getAllCustomValues());
$this->assertEquals("?page=14&custom=16", $coltype->getUriAllCustoms());
$this->assertEquals("cops:custom:16", $coltype->getAllCustomsId());
$this->assertEquals("custom_01b", $coltype->getTitle());
$this->assertEquals(NULL, $coltype->getDatabaseDescription());
$this->assertEquals("Custom column 'custom_01b'", $coltype->getDescription());
$this->assertEquals(true, $coltype->isSearchable());
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testColumnType02()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_02");
Base::clearDb();
$coltype = CustomColumnType::createByCustomID(6);
$this->assertEquals($coltype, CustomColumnType::createByLookup("custom_02"));
$this->assertEquals(6, $coltype->customId);
$this->assertEquals("custom_02", $coltype->columnTitle);
$this->assertEquals("text", $coltype->datatype);
$this->assertEquals("CustomColumnTypeText", get_class($coltype));
$this->assertCount(3, $coltype->getAllCustomValues());
$this->assertEquals("?page=14&custom=6", $coltype->getUriAllCustoms());
$this->assertEquals("cops:custom:6", $coltype->getAllCustomsId());
$this->assertEquals("custom_02", $coltype->getTitle());
$this->assertEquals("Custom column example 02 (csv)", $coltype->getDatabaseDescription());
$this->assertEquals("Custom column example 02 (csv)", $coltype->getDescription());
$this->assertEquals(true, $coltype->isSearchable());
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testColumnType03()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_03");
Base::clearDb();
$coltype = CustomColumnType::createByCustomID(7);
$this->assertEquals($coltype, CustomColumnType::createByLookup("custom_03"));
$this->assertEquals(7, $coltype->customId);
$this->assertEquals("custom_03", $coltype->columnTitle);
$this->assertEquals("comments", $coltype->datatype);
$this->assertEquals("CustomColumnTypeComment", get_class($coltype));
$this->assertEquals("?page=14&custom=7", $coltype->getUriAllCustoms());
$this->assertEquals("cops:custom:7", $coltype->getAllCustomsId());
$this->assertEquals("custom_03", $coltype->getTitle());
$this->assertEquals("Custom column example 03 (long_text)", $coltype->getDatabaseDescription());
$this->assertEquals("Custom column example 03 (long_text)", $coltype->getDescription());
$this->assertEquals(false, $coltype->isSearchable());
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testColumnType04()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_04");
Base::clearDb();
$coltype = CustomColumnType::createByCustomID(4);
$this->assertEquals($coltype, CustomColumnType::createByLookup("custom_04"));
$this->assertEquals(4, $coltype->customId);
$this->assertEquals("custom_04", $coltype->columnTitle);
$this->assertEquals("series", $coltype->datatype);
$this->assertEquals("CustomColumnTypeSeries", get_class($coltype));
$this->assertCount(3, $coltype->getAllCustomValues());
$this->assertEquals("?page=14&custom=4", $coltype->getUriAllCustoms());
$this->assertEquals("cops:custom:4", $coltype->getAllCustomsId());
$this->assertEquals("custom_04", $coltype->getTitle());
$this->assertEquals("Custom column example 04 (series_text)", $coltype->getDatabaseDescription());
$this->assertEquals("Alphabetical index of the 3 series", $coltype->getDescription());
$this->assertEquals(true, $coltype->isSearchable());
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testColumnType05()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_05");
Base::clearDb();
$coltype = CustomColumnType::createByCustomID(5);
$this->assertEquals($coltype, CustomColumnType::createByLookup("custom_05"));
$this->assertEquals(5, $coltype->customId);
$this->assertEquals("custom_05", $coltype->columnTitle);
$this->assertEquals("enumeration", $coltype->datatype);
$this->assertEquals("CustomColumnTypeEnumeration", get_class($coltype));
$this->assertCount(4, $coltype->getAllCustomValues());
$this->assertEquals("?page=14&custom=5", $coltype->getUriAllCustoms());
$this->assertEquals("cops:custom:5", $coltype->getAllCustomsId());
$this->assertEquals("custom_05", $coltype->getTitle());
$this->assertEquals("Custom column example 05 (enum)", $coltype->getDatabaseDescription());
$this->assertEquals("Alphabetical index of the 4 values", $coltype->getDescription());
$this->assertEquals(true, $coltype->isSearchable());
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testColumnType06()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_06");
Base::clearDb();
$coltype = CustomColumnType::createByCustomID(12);
$this->assertEquals($coltype, CustomColumnType::createByLookup("custom_06"));
$this->assertEquals(12, $coltype->customId);
$this->assertEquals("custom_06", $coltype->columnTitle);
$this->assertEquals("datetime", $coltype->datatype);
$this->assertEquals("CustomColumnTypeDate", get_class($coltype));
$this->assertCount(5, $coltype->getAllCustomValues());
$this->assertEquals("?page=14&custom=12", $coltype->getUriAllCustoms());
$this->assertEquals("cops:custom:12", $coltype->getAllCustomsId());
$this->assertEquals("custom_06", $coltype->getTitle());
$this->assertEquals("Custom column example 06 (date)", $coltype->getDatabaseDescription());
$this->assertEquals("Custom column example 06 (date)", $coltype->getDescription());
$this->assertEquals(true, $coltype->isSearchable());
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testColumnType07()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_07");
Base::clearDb();
$coltype = CustomColumnType::createByCustomID(14);
$this->assertEquals($coltype, CustomColumnType::createByLookup("custom_07"));
$this->assertEquals(14, $coltype->customId);
$this->assertEquals("custom_07", $coltype->columnTitle);
$this->assertEquals("float", $coltype->datatype);
$this->assertEquals("CustomColumnTypeFloat", get_class($coltype));
$this->assertCount(6, $coltype->getAllCustomValues());
$this->assertEquals("?page=14&custom=14", $coltype->getUriAllCustoms());
$this->assertEquals("cops:custom:14", $coltype->getAllCustomsId());
$this->assertEquals("custom_07", $coltype->getTitle());
$this->assertEquals("Custom column example 07 (float)", $coltype->getDatabaseDescription());
$this->assertEquals("Custom column example 07 (float)", $coltype->getDescription());
$this->assertEquals(true, $coltype->isSearchable());
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testColumnType08()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_08");
Base::clearDb();
$coltype = CustomColumnType::createByCustomID(10);
$this->assertEquals($coltype, CustomColumnType::createByLookup("custom_08"));
$this->assertEquals(10, $coltype->customId);
$this->assertEquals("custom_08", $coltype->columnTitle);
$this->assertEquals("int", $coltype->datatype);
$this->assertEquals("CustomColumnTypeInteger", get_class($coltype));
$this->assertCount(4, $coltype->getAllCustomValues());
$this->assertEquals("?page=14&custom=10", $coltype->getUriAllCustoms());
$this->assertEquals("cops:custom:10", $coltype->getAllCustomsId());
$this->assertEquals("custom_08", $coltype->getTitle());
$this->assertEquals("Custom column example 08 (int)", $coltype->getDatabaseDescription());
$this->assertEquals("Custom column example 08 (int)", $coltype->getDescription());
$this->assertEquals(true, $coltype->isSearchable());
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testColumnType09()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_09");
Base::clearDb();
$coltype = CustomColumnType::createByCustomID(9);
$this->assertEquals($coltype, CustomColumnType::createByLookup("custom_09"));
$this->assertEquals(9, $coltype->customId);
$this->assertEquals("custom_09", $coltype->columnTitle);
$this->assertEquals("rating", $coltype->datatype);
$this->assertEquals("CustomColumnTypeRating", get_class($coltype));
$this->assertCount(6, $coltype->getAllCustomValues());
$this->assertEquals("?page=14&custom=9", $coltype->getUriAllCustoms());
$this->assertEquals("cops:custom:9", $coltype->getAllCustomsId());
$this->assertEquals("custom_09", $coltype->getTitle());
$this->assertEquals("Custom column example 09 (rating)", $coltype->getDatabaseDescription());
$this->assertEquals("Index of ratings", $coltype->getDescription());
$this->assertEquals(true, $coltype->isSearchable());
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testColumnType10()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_10");
Base::clearDb();
$coltype = CustomColumnType::createByCustomID(11);
$this->assertEquals($coltype, CustomColumnType::createByLookup("custom_10"));
$this->assertEquals(11, $coltype->customId);
$this->assertEquals("custom_10", $coltype->columnTitle);
$this->assertEquals("bool", $coltype->datatype);
$this->assertEquals("CustomColumnTypeBool", get_class($coltype));
$this->assertCount(3, $coltype->getAllCustomValues());
$this->assertEquals("?page=14&custom=11", $coltype->getUriAllCustoms());
$this->assertEquals("cops:custom:11", $coltype->getAllCustomsId());
$this->assertEquals("custom_10", $coltype->getTitle());
$this->assertEquals("Custom column example 10 (bool)", $coltype->getDatabaseDescription());
$this->assertEquals("Index of a boolean value", $coltype->getDescription());
$this->assertEquals(true, $coltype->isSearchable());
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testColumnType11()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_11");
Base::clearDb();
$coltype = CustomColumnType::createByCustomID(15);
$this->assertEquals($coltype, CustomColumnType::createByLookup("custom_11"));
$this->assertEquals(NULL, $coltype);
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testColumnType12()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_12");
Base::clearDb();
$coltype = CustomColumnType::createByCustomID(13);
$this->assertEquals($coltype, CustomColumnType::createByLookup("custom_12"));
$this->assertEquals(NULL, $coltype);
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testInvalidColumn1()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_12");
Base::clearDb();
$catch = false;
try {
CustomColumnType::createByCustomID(999);
} catch (Exception $e) {
$catch = true;
}
$this->assertTrue($catch);
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testInvalidColumn2()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_12");
Base::clearDb();
$coltype = CustomColumnType::createByLookup("__ERR__");
$this->assertEquals(NULL, $coltype);
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testIndexTypeAll()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_01", "custom_02", "custom_03", "custom_04", "custom_05", "custom_06", "custom_07", "custom_08", "custom_09", "custom_10");
Base::clearDb();
$currentPage = Page::getPage(Base::PAGE_INDEX, NULL, NULL, "1");
$currentPage->InitializeContent();
$this->assertCount(15, $currentPage->entryArray); // Authors, Series, Publishers, Languages, custom, All, Recent
$this->assertEquals("custom_01", $currentPage->entryArray[ 4]->title);
$this->assertEquals("custom_02", $currentPage->entryArray[ 5]->title);
$this->assertEquals("custom_04", $currentPage->entryArray[ 6]->title);
$this->assertEquals("custom_05", $currentPage->entryArray[ 7]->title);
$this->assertEquals("custom_06", $currentPage->entryArray[ 8]->title);
$this->assertEquals("custom_07", $currentPage->entryArray[ 9]->title);
$this->assertEquals("custom_08", $currentPage->entryArray[10]->title);
$this->assertEquals("custom_09", $currentPage->entryArray[11]->title);
$this->assertEquals("custom_10", $currentPage->entryArray[12]->title);
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testIndexType01()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_01");
Base::clearDb();
$currentPage = Page::getPage(Base::PAGE_INDEX, NULL, NULL, "1");
$currentPage->InitializeContent();
$this->assertCount(7, $currentPage->entryArray); // Authors, Series, Publishers, Languages, custom, All, Recent
$this->assertEquals("custom_01", $currentPage->entryArray[4]->title);
$this->assertEquals("cops:custom:8", $currentPage->entryArray[4]->id);
$this->assertEquals("Custom column example 01 (text)", $currentPage->entryArray[4]->content);
$this->assertEquals(3, $currentPage->entryArray[4]->numberOfElement);
$this->assertEquals("text", $currentPage->entryArray[4]->contentType);
$this->assertEquals($currentPage->entryArray[4], CustomColumnType::createByCustomID(8)->getCount());
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testIndexType02()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_02");
Base::clearDb();
$currentPage = Page::getPage(Base::PAGE_INDEX, NULL, NULL, "1");
$currentPage->InitializeContent();
$this->assertCount(7, $currentPage->entryArray); // Authors, Series, Publishers, Languages, custom, All, Recent
$this->assertEquals("custom_02", $currentPage->entryArray[4]->title);
$this->assertEquals("cops:custom:6", $currentPage->entryArray[4]->id);
$this->assertEquals("Custom column example 02 (csv)", $currentPage->entryArray[4]->content);
$this->assertEquals(3, $currentPage->entryArray[4]->numberOfElement);
$this->assertEquals("text", $currentPage->entryArray[4]->contentType);
$this->assertEquals($currentPage->entryArray[4], CustomColumnType::createByCustomID(6)->getCount());
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testIndexType03()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_03");
Base::clearDb();
$currentPage = Page::getPage(Base::PAGE_INDEX, NULL, NULL, "1");
$currentPage->InitializeContent();
$this->assertCount(6, $currentPage->entryArray); // Authors, Series, Publishers, Languages, All, Recent
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testIndexType04()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_04");
Base::clearDb();
$currentPage = Page::getPage(Base::PAGE_INDEX, NULL, NULL, "1");
$currentPage->InitializeContent();
$this->assertCount(7, $currentPage->entryArray); // Authors, Series, Publishers, Languages, custom, All, Recent
$this->assertEquals("custom_04", $currentPage->entryArray[4]->title);
$this->assertEquals("cops:custom:4", $currentPage->entryArray[4]->id);
$this->assertEquals("Alphabetical index of the 3 series", $currentPage->entryArray[4]->content);
$this->assertEquals(3, $currentPage->entryArray[4]->numberOfElement);
$this->assertEquals("series", $currentPage->entryArray[4]->contentType);
$this->assertEquals($currentPage->entryArray[4], CustomColumnType::createByCustomID(4)->getCount());
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testIndexType05()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_05");
Base::clearDb();
$currentPage = Page::getPage(Base::PAGE_INDEX, NULL, NULL, "1");
$currentPage->InitializeContent();
$this->assertCount(7, $currentPage->entryArray); // Authors, Series, Publishers, Languages, custom, All, Recent
$this->assertEquals("custom_05", $currentPage->entryArray[4]->title);
$this->assertEquals("cops:custom:5", $currentPage->entryArray[4]->id);
$this->assertEquals("Alphabetical index of the 4 values", $currentPage->entryArray[4]->content);
$this->assertEquals(4, $currentPage->entryArray[4]->numberOfElement);
$this->assertEquals("enumeration", $currentPage->entryArray[4]->contentType);
$this->assertEquals($currentPage->entryArray[4], CustomColumnType::createByCustomID(5)->getCount());
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testIndexType06()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_06");
Base::clearDb();
$currentPage = Page::getPage(Base::PAGE_INDEX, NULL, NULL, "1");
$currentPage->InitializeContent();
$this->assertCount(7, $currentPage->entryArray); // Authors, Series, Publishers, Languages, custom, All, Recent
$this->assertEquals("custom_06", $currentPage->entryArray[4]->title);
$this->assertEquals("cops:custom:12", $currentPage->entryArray[4]->id);
$this->assertEquals("Custom column example 06 (date)", $currentPage->entryArray[4]->content);
$this->assertEquals(5, $currentPage->entryArray[4]->numberOfElement);
$this->assertEquals("datetime", $currentPage->entryArray[4]->contentType);
$this->assertEquals($currentPage->entryArray[4], CustomColumnType::createByCustomID(12)->getCount());
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testIndexType07()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_07");
Base::clearDb();
$currentPage = Page::getPage(Base::PAGE_INDEX, NULL, NULL, "1");
$currentPage->InitializeContent();
$this->assertCount(7, $currentPage->entryArray); // Authors, Series, Publishers, Languages, custom, All, Recent
$this->assertEquals("custom_07", $currentPage->entryArray[4]->title);
$this->assertEquals("cops:custom:14", $currentPage->entryArray[4]->id);
$this->assertEquals("Custom column example 07 (float)", $currentPage->entryArray[4]->content);
$this->assertEquals(6, $currentPage->entryArray[4]->numberOfElement);
$this->assertEquals("float", $currentPage->entryArray[4]->contentType);
$this->assertEquals($currentPage->entryArray[4], CustomColumnType::createByCustomID(14)->getCount());
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testIndexType08()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_08");
Base::clearDb();
$currentPage = Page::getPage(Base::PAGE_INDEX, NULL, NULL, "1");
$currentPage->InitializeContent();
$this->assertCount(7, $currentPage->entryArray); // Authors, Series, Publishers, Languages, custom, All, Recent
$this->assertEquals("custom_08", $currentPage->entryArray[4]->title);
$this->assertEquals("cops:custom:10", $currentPage->entryArray[4]->id);
$this->assertEquals("Custom column example 08 (int)", $currentPage->entryArray[4]->content);
$this->assertEquals(4, $currentPage->entryArray[4]->numberOfElement);
$this->assertEquals("int", $currentPage->entryArray[4]->contentType);
$this->assertEquals($currentPage->entryArray[4], CustomColumnType::createByCustomID(10)->getCount());
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testIndexType09()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_09");
Base::clearDb();
$currentPage = Page::getPage(Base::PAGE_INDEX, NULL, NULL, "1");
$currentPage->InitializeContent();
$this->assertCount(7, $currentPage->entryArray); // Authors, Series, Publishers, Languages, custom, All, Recent
$this->assertEquals("custom_09", $currentPage->entryArray[4]->title);
$this->assertEquals("cops:custom:9", $currentPage->entryArray[4]->id);
$this->assertEquals("Index of ratings", $currentPage->entryArray[4]->content);
$this->assertEquals(6, $currentPage->entryArray[4]->numberOfElement);
$this->assertEquals("rating", $currentPage->entryArray[4]->contentType);
$this->assertEquals($currentPage->entryArray[4], CustomColumnType::createByCustomID(9)->getCount());
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testIndexType10()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$config['cops_calibre_custom_column'] = array("custom_10");
Base::clearDb();
$currentPage = Page::getPage(Base::PAGE_INDEX, NULL, NULL, "1");
$currentPage->InitializeContent();
$this->assertCount(7, $currentPage->entryArray); // Authors, Series, Publishers, Languages, custom, All, Recent
$this->assertEquals("custom_10", $currentPage->entryArray[4]->title);
$this->assertEquals("cops:custom:11", $currentPage->entryArray[4]->id);
$this->assertEquals("Index of a boolean value", $currentPage->entryArray[4]->content);
$this->assertEquals(3, $currentPage->entryArray[4]->numberOfElement);
$this->assertEquals("bool", $currentPage->entryArray[4]->contentType);
$this->assertEquals($currentPage->entryArray[4], CustomColumnType::createByCustomID(11)->getCount());
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
$config['cops_calibre_custom_column'] = array();
Base::clearDb();
}
public function testAllCustomsType01()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$_GET["custom"] = "8";
Base::clearDb();
$currentPage = Page::getPage(Base::PAGE_ALL_CUSTOMS, NULL, NULL, "1");
$currentPage->InitializeContent();
$this->assertEquals("custom_01", $currentPage->title);
$this->assertCount(3, $currentPage->entryArray);
$this->assertEquals("cops:custom:8:3", $currentPage->entryArray[0]->id);
$this->assertEquals("cops:custom:8:1", $currentPage->entryArray[1]->id);
$this->assertEquals("cops:custom:8:2", $currentPage->entryArray[2]->id);
$_GET["custom"] = NULL;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
Base::clearDb();
}
public function testAllCustomsType02()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$_GET["custom"] = "6";
Base::clearDb();
$currentPage = Page::getPage(Base::PAGE_ALL_CUSTOMS, NULL, NULL, "1");
$currentPage->InitializeContent();
$this->assertEquals("custom_02", $currentPage->title);
$this->assertCount(3, $currentPage->entryArray);
$this->assertEquals("cops:custom:6:1", $currentPage->entryArray[0]->id);
$this->assertEquals("cops:custom:6:2", $currentPage->entryArray[1]->id);
$this->assertEquals("cops:custom:6:3", $currentPage->entryArray[2]->id);
$_GET["custom"] = NULL;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
Base::clearDb();
}
public function testAllCustomsType04()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$_GET["custom"] = "4";
Base::clearDb();
$currentPage = Page::getPage(Base::PAGE_ALL_CUSTOMS, NULL, NULL, "1");
$currentPage->InitializeContent();
$this->assertEquals("custom_04", $currentPage->title);
$this->assertCount(3, $currentPage->entryArray);
$this->assertEquals("cops:custom:4:4", $currentPage->entryArray[0]->id);
$this->assertEquals("cops:custom:4:5", $currentPage->entryArray[1]->id);
$this->assertEquals("cops:custom:4:6", $currentPage->entryArray[2]->id);
$_GET["custom"] = NULL;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
Base::clearDb();
}
public function testAllCustomsType05()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$_GET["custom"] = "5";
Base::clearDb();
$currentPage = Page::getPage(Base::PAGE_ALL_CUSTOMS, NULL, NULL, "1");
$currentPage->InitializeContent();
$this->assertEquals("custom_05", $currentPage->title);
$this->assertCount(4, $currentPage->entryArray);
$this->assertEquals("cops:custom:5:3", $currentPage->entryArray[0]->id);
$this->assertEquals("cops:custom:5:4", $currentPage->entryArray[1]->id);
$this->assertEquals("cops:custom:5:5", $currentPage->entryArray[2]->id);
$this->assertEquals("cops:custom:5:6", $currentPage->entryArray[3]->id);
$_GET["custom"] = NULL;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
Base::clearDb();
}
public function testAllCustomsType06()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$_GET["custom"] = "12";
Base::clearDb();
$currentPage = Page::getPage(Base::PAGE_ALL_CUSTOMS, NULL, NULL, "1");
$currentPage->InitializeContent();
$this->assertEquals("custom_06", $currentPage->title);
$this->assertCount(5, $currentPage->entryArray);
$this->assertEquals("cops:custom:12:2000-01-01", $currentPage->entryArray[0]->id);
$this->assertEquals("cops:custom:12:2000-01-02", $currentPage->entryArray[1]->id);
$this->assertEquals("cops:custom:12:2000-01-03", $currentPage->entryArray[2]->id);
$this->assertEquals("cops:custom:12:2016-04-20", $currentPage->entryArray[3]->id);
$this->assertEquals("cops:custom:12:2016-04-24", $currentPage->entryArray[4]->id);
$_GET["custom"] = NULL;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
Base::clearDb();
}
public function testAllCustomsType07()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$_GET["custom"] = "14";
Base::clearDb();
$currentPage = Page::getPage(Base::PAGE_ALL_CUSTOMS, NULL, NULL, "1");
$currentPage->InitializeContent();
$this->assertEquals("custom_07", $currentPage->title);
$this->assertCount(6, $currentPage->entryArray);
$this->assertEquals("cops:custom:14:-99.0", $currentPage->entryArray[0]->id);
$this->assertEquals("cops:custom:14:0.0", $currentPage->entryArray[1]->id);
$this->assertEquals("cops:custom:14:0.1", $currentPage->entryArray[2]->id);
$this->assertEquals("cops:custom:14:0.2", $currentPage->entryArray[3]->id);
$this->assertEquals("cops:custom:14:11.0", $currentPage->entryArray[4]->id);
$this->assertEquals("cops:custom:14:100000.0", $currentPage->entryArray[5]->id);
$_GET["custom"] = NULL;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
Base::clearDb();
}
public function testAllCustomsType08()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$_GET["custom"] = "10";
Base::clearDb();
$currentPage = Page::getPage(Base::PAGE_ALL_CUSTOMS, NULL, NULL, "1");
$currentPage->InitializeContent();
$this->assertEquals("custom_08", $currentPage->title);
$this->assertCount(4, $currentPage->entryArray);
$this->assertEquals("cops:custom:10:-2", $currentPage->entryArray[0]->id);
$this->assertEquals("cops:custom:10:-1", $currentPage->entryArray[1]->id);
$this->assertEquals("cops:custom:10:1", $currentPage->entryArray[2]->id);
$this->assertEquals("cops:custom:10:2", $currentPage->entryArray[3]->id);
$_GET["custom"] = NULL;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
Base::clearDb();
}
public function testAllCustomsType09()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$_GET["custom"] = "9";
Base::clearDb();
$currentPage = Page::getPage(Base::PAGE_ALL_CUSTOMS, NULL, NULL, "1");
$currentPage->InitializeContent();
$this->assertEquals("custom_09", $currentPage->title);
$this->assertCount(6, $currentPage->entryArray);
$this->assertEquals("cops:custom:9:0", $currentPage->entryArray[0]->id);
$this->assertEquals("cops:custom:9:2", $currentPage->entryArray[1]->id);
$this->assertEquals("cops:custom:9:4", $currentPage->entryArray[2]->id);
$this->assertEquals("cops:custom:9:6", $currentPage->entryArray[3]->id);
$this->assertEquals("cops:custom:9:8", $currentPage->entryArray[4]->id);
$this->assertEquals("cops:custom:9:10", $currentPage->entryArray[5]->id);
$_GET["custom"] = NULL;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
Base::clearDb();
}
public function testAllCustomsType10()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$_GET["custom"] = "11";
Base::clearDb();
$currentPage = Page::getPage(Base::PAGE_ALL_CUSTOMS, NULL, NULL, "1");
$currentPage->InitializeContent();
$this->assertEquals("custom_10", $currentPage->title);
$this->assertCount(3, $currentPage->entryArray);
$this->assertEquals("cops:custom:11:-1", $currentPage->entryArray[0]->id);
$this->assertEquals("cops:custom:11:0", $currentPage->entryArray[1]->id);
$this->assertEquals("cops:custom:11:1", $currentPage->entryArray[2]->id);
$_GET["custom"] = NULL;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
Base::clearDb();
}
public function testDetailTypeAllEntryIDs()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$_GET["custom"] = "11";
$config['cops_calibre_custom_column'] = array("custom_01", "custom_02", "custom_03", "custom_04", "custom_05", "custom_06", "custom_07", "custom_08", "custom_09", "custom_10", "custom_11");
Base::clearDb();
$currentPage = Page::getPage(Base::PAGE_CUSTOM_DETAIL, "0", NULL, "1");
$currentPage->InitializeContent();
/* @var EntryBook[] $entries */
$entries = $currentPage->entryArray;
$this->assertCount(6, $entries);
$customcolumnValues = $entries[0]->book->getCustomColumnValues($config['cops_calibre_custom_column']);
$this->assertCount(10, $customcolumnValues);
$this->assertEquals("cops:custom:8:1", $customcolumnValues[0]->getEntryId());
$this->assertEquals("cops:custom:6:3", $customcolumnValues[1]->getEntryId());
$this->assertEquals("cops:custom:7:3", $customcolumnValues[2]->getEntryId());
$this->assertEquals("cops:custom:4:4", $customcolumnValues[3]->getEntryId());
$this->assertEquals("cops:custom:5:6", $customcolumnValues[4]->getEntryId());
$this->assertEquals("cops:custom:12:2016-04-24", $customcolumnValues[5]->getEntryId());
$this->assertEquals("cops:custom:14:11.0", $customcolumnValues[6]->getEntryId());
$this->assertEquals("cops:custom:10:-2", $customcolumnValues[7]->getEntryId());
$this->assertEquals("cops:custom:9:2", $customcolumnValues[8]->getEntryId());
$this->assertEquals("cops:custom:11:0", $customcolumnValues[9]->getEntryId());
$_GET["custom"] = NULL;
$config['cops_calibre_custom_column'] = array();
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
Base::clearDb();
}
public function testRenderCustomColumns()
{
global $config;
$_SERVER["HTTP_USER_AGENT"] = "Firefox";
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$_GET["custom"] = "11";
$config['cops_calibre_custom_column'] = array("custom_01", "custom_02", "custom_03", "custom_04", "custom_05", "custom_06", "custom_07", "custom_08", "custom_09", "custom_10", "custom_11");
$config['cops_calibre_custom_column_list'] = array("custom_01", "custom_02", "custom_03", "custom_04", "custom_05", "custom_06", "custom_07", "custom_08", "custom_09", "custom_10", "custom_11");
$config['cops_calibre_custom_column_preview'] = array("custom_01", "custom_02", "custom_03", "custom_04", "custom_05", "custom_06", "custom_07", "custom_08", "custom_09", "custom_10", "custom_11");
Base::clearDb();
$book = Book::getBookById(223);
$json = JSONRenderer::getBookContentArray($book);
/* @var CustomColumn[] $custom */
$custom = $json["customcolumns_list"];
$this->assertEquals("custom_01", $custom[0]['customColumnType']['columnTitle']);
$this->assertEquals("text_2", $custom[0]['htmlvalue']);
$this->assertEquals("custom_02", $custom[1]['customColumnType']['columnTitle']);
$this->assertEquals("a", $custom[1]['htmlvalue']);
$this->assertEquals("custom_03", $custom[2]['customColumnType']['columnTitle']);
$this->assertEquals("<div>Not Set</div>", $custom[2]['htmlvalue']);
$this->assertEquals("custom_04", $custom[3]['customColumnType']['columnTitle']);
$this->assertEquals("", $custom[3]['htmlvalue']);
$this->assertEquals("custom_05", $custom[4]['customColumnType']['columnTitle']);
$this->assertEquals("val05", $custom[4]['htmlvalue']);
$this->assertEquals("custom_06", $custom[5]['customColumnType']['columnTitle']);
$this->assertEquals("Not Set", $custom[5]['htmlvalue']);
$this->assertEquals("custom_07", $custom[6]['customColumnType']['columnTitle']);
$this->assertEquals("100000.0", $custom[6]['htmlvalue']);
$this->assertEquals("custom_08", $custom[7]['customColumnType']['columnTitle']);
$this->assertEquals("Not Set", $custom[7]['htmlvalue']);
$this->assertEquals("custom_09", $custom[8]['customColumnType']['columnTitle']);
$this->assertEquals("Not Set", $custom[8]['htmlvalue']);
$this->assertEquals("custom_10", $custom[9]['customColumnType']['columnTitle']);
$this->assertEquals("No", $custom[9]['htmlvalue']);
$_SERVER["HTTP_USER_AGENT"] = "";
$_GET["custom"] = NULL;
$config['cops_calibre_custom_column'] = array();
$config['cops_calibre_custom_column_list'] = array();
$config['cops_calibre_custom_column_preview'] = array();
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
Base::clearDb();
}
public function testQueries()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$_GET["custom"] = "11";
$config['cops_calibre_custom_column'] = array("custom_01", "custom_02", "custom_03", "custom_04", "custom_05", "custom_06", "custom_07", "custom_08", "custom_09", "custom_10", "custom_11");
Base::clearDb();
list($query, $params) = CustomColumnType::createByLookup("custom_01")->getCustom("1")->getQuery();
Book::getEntryArray($query, $params, 1);
list($query, $params) = CustomColumnType::createByLookup("custom_02")->getCustom("3")->getQuery();
Book::getEntryArray($query, $params, 1);
list($query, $params) = CustomColumnType::createByLookup("custom_03")->getCustom("3")->getQuery();
Book::getEntryArray($query, $params, 1);
list($query, $params) = CustomColumnType::createByLookup("custom_04")->getCustom("4")->getQuery();
Book::getEntryArray($query, $params, 1);
list($query, $params) = CustomColumnType::createByLookup("custom_05")->getCustom("6")->getQuery();
Book::getEntryArray($query, $params, 1);
list($query, $params) = CustomColumnType::createByLookup("custom_06")->getCustom("2016-04-24")->getQuery();
Book::getEntryArray($query, $params, 1);
list($query, $params) = CustomColumnType::createByLookup("custom_07")->getCustom("11.0")->getQuery();
Book::getEntryArray($query, $params, 1);
list($query, $params) = CustomColumnType::createByLookup("custom_08")->getCustom("-2")->getQuery();
Book::getEntryArray($query, $params, 1);
list($query, $params) = CustomColumnType::createByLookup("custom_09")->getCustom("0")->getQuery();
Book::getEntryArray($query, $params, 1);
list($query, $params) = CustomColumnType::createByLookup("custom_09")->getCustom("1")->getQuery();
Book::getEntryArray($query, $params, 1);
list($query, $params) = CustomColumnType::createByLookup("custom_10")->getCustom("-1")->getQuery();
Book::getEntryArray($query, $params, 1);
list($query, $params) = CustomColumnType::createByLookup("custom_10")->getCustom("0")->getQuery();
Book::getEntryArray($query, $params, 1);
list($query, $params) = CustomColumnType::createByLookup("custom_10")->getCustom("1")->getQuery();
Book::getEntryArray($query, $params, 1);
$_GET["custom"] = NULL;
$config['cops_calibre_custom_column'] = array();
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
Base::clearDb();
}
public function testGetURI()
{
global $config;
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
$_GET["custom"] = "11";
$config['cops_calibre_custom_column'] = array("custom_01", "custom_02", "custom_03", "custom_04", "custom_05", "custom_06", "custom_07", "custom_08", "custom_09", "custom_10", "custom_11");
Base::clearDb();
$custom = CustomColumnType::createByLookup("custom_01")->getCustom("1");
$this->assertEquals($custom->customColumnType->getQuery("1"), $custom->getQuery());
$custom = CustomColumnType::createByLookup("custom_02")->getCustom("3");
$this->assertEquals($custom->customColumnType->getQuery("3"), $custom->getQuery());
$custom = CustomColumnType::createByLookup("custom_03")->getCustom("3");
$this->assertEquals($custom->customColumnType->getQuery("3"), $custom->getQuery());
$custom = CustomColumnType::createByLookup("custom_04")->getCustom("4");
$this->assertEquals($custom->customColumnType->getQuery("4"), $custom->getQuery());
$custom = CustomColumnType::createByLookup("custom_05")->getCustom("6");
$this->assertEquals($custom->customColumnType->getQuery("6"), $custom->getQuery());
$custom = CustomColumnType::createByLookup("custom_06")->getCustom("2016-04-24");
$this->assertEquals($custom->customColumnType->getQuery("2016-04-24"), $custom->getQuery());
$custom = CustomColumnType::createByLookup("custom_07")->getCustom("11.0");
$this->assertEquals($custom->customColumnType->getQuery("11.0"), $custom->getQuery());
$custom = CustomColumnType::createByLookup("custom_08")->getCustom("-2");
$this->assertEquals($custom->customColumnType->getQuery("-2"), $custom->getQuery());
$custom = CustomColumnType::createByLookup("custom_09")->getCustom("0");
$this->assertEquals($custom->customColumnType->getQuery("0"), $custom->getQuery());
$custom = CustomColumnType::createByLookup("custom_09")->getCustom("1");
$this->assertEquals($custom->customColumnType->getQuery("1"), $custom->getQuery());
$custom = CustomColumnType::createByLookup("custom_10")->getCustom("-1");
$this->assertEquals($custom->customColumnType->getQuery("-1"), $custom->getQuery());
$custom = CustomColumnType::createByLookup("custom_10")->getCustom("0");
$this->assertEquals($custom->customColumnType->getQuery("0"), $custom->getQuery());
$custom = CustomColumnType::createByLookup("custom_10")->getCustom("1");
$this->assertEquals($custom->customColumnType->getQuery("1"), $custom->getQuery());
$_GET["custom"] = NULL;
$config['cops_calibre_custom_column'] = array();
$config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
Base::clearDb();
}
}