Merge
This commit is contained in:
commit
bbdf4a432e
5
base.php
5
base.php
|
@ -140,7 +140,7 @@ function str_format($format) {
|
||||||
* This method is based on this page
|
* This method is based on this page
|
||||||
* http://www.mind-it.info/2010/02/22/a-simple-approach-to-localization-in-php/
|
* http://www.mind-it.info/2010/02/22/a-simple-approach-to-localization-in-php/
|
||||||
*/
|
*/
|
||||||
function localize($phrase, $count=-1) {
|
function localize($phrase, $count=-1, $reset=false) {
|
||||||
if ($count == 0)
|
if ($count == 0)
|
||||||
$phrase .= ".none";
|
$phrase .= ".none";
|
||||||
if ($count == 1)
|
if ($count == 1)
|
||||||
|
@ -150,6 +150,9 @@ function localize($phrase, $count=-1) {
|
||||||
|
|
||||||
/* Static keyword is used to ensure the file is loaded only once */
|
/* Static keyword is used to ensure the file is loaded only once */
|
||||||
static $translations = NULL;
|
static $translations = NULL;
|
||||||
|
if ($reset) {
|
||||||
|
$translations = NULL;
|
||||||
|
}
|
||||||
/* If no instance of $translations has occured load the language file */
|
/* If no instance of $translations has occured load the language file */
|
||||||
if (is_null($translations)) {
|
if (is_null($translations)) {
|
||||||
$lang = "en";
|
$lang = "en";
|
||||||
|
|
|
@ -11,4 +11,27 @@ class BaseTest extends PHPUnit_Framework_TestCase
|
||||||
$this->assertEquals ("?key=value&db=0", addURLParameter ("?key=value", "db", "0"));
|
$this->assertEquals ("?key=value&db=0", addURLParameter ("?key=value", "db", "0"));
|
||||||
$this->assertEquals ("?key=value&otherKey=&db=0", addURLParameter ("?key=value&otherKey", "db", "0"));
|
$this->assertEquals ("?key=value&otherKey=&db=0", addURLParameter ("?key=value&otherKey", "db", "0"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testLocalize ()
|
||||||
|
{
|
||||||
|
$this->assertEquals ("Authors", localize ("authors.title"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testLocalizeFr ()
|
||||||
|
{
|
||||||
|
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = "fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3";
|
||||||
|
$this->assertEquals ("Auteurs", localize ("authors.title", -1, true));
|
||||||
|
|
||||||
|
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = "en";
|
||||||
|
localize ("authors.title", -1, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testLocalizeUnknown ()
|
||||||
|
{
|
||||||
|
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = "aa";
|
||||||
|
$this->assertEquals ("Authors", localize ("authors.title", -1, true));
|
||||||
|
|
||||||
|
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = "en";
|
||||||
|
localize ("authors.title", -1, true);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -3,7 +3,7 @@
|
||||||
require_once (dirname(__FILE__) . "/config_test.php");
|
require_once (dirname(__FILE__) . "/config_test.php");
|
||||||
require_once (dirname(__FILE__) . "/../book.php");
|
require_once (dirname(__FILE__) . "/../book.php");
|
||||||
|
|
||||||
class StackTest extends PHPUnit_Framework_TestCase
|
class BookTest extends PHPUnit_Framework_TestCase
|
||||||
{
|
{
|
||||||
public function testGetBookCount ()
|
public function testGetBookCount ()
|
||||||
{
|
{
|
||||||
|
@ -84,6 +84,36 @@ class StackTest extends PHPUnit_Framework_TestCase
|
||||||
$this->assertEquals (-1, $totalNumber);
|
$this->assertEquals (-1, $totalNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testGetAllBooks ()
|
||||||
|
{
|
||||||
|
// All books by first letter
|
||||||
|
$entryArray = Book::getAllBooks ();
|
||||||
|
$this->assertCount (9, $entryArray);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testGetBooksByStartingLetter ()
|
||||||
|
{
|
||||||
|
// All books by first letter
|
||||||
|
list ($entryArray, $totalNumber) = Book::getBooksByStartingLetter ("T", -1);
|
||||||
|
$this->assertCount (3, $entryArray);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testGetAllRecentBooks ()
|
||||||
|
{
|
||||||
|
// All recent books
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
$config['cops_recentbooks_limit'] = 2;
|
||||||
|
|
||||||
|
$entryArray = Book::getAllRecentBooks ();
|
||||||
|
$this->assertCount (2, $entryArray);
|
||||||
|
|
||||||
|
$config['cops_recentbooks_limit'] = 50;
|
||||||
|
|
||||||
|
$entryArray = Book::getAllRecentBooks ();
|
||||||
|
$this->assertCount (14, $entryArray);
|
||||||
|
}
|
||||||
|
|
||||||
public function testGetBookById ()
|
public function testGetBookById ()
|
||||||
{
|
{
|
||||||
// also check most of book's class methods
|
// also check most of book's class methods
|
||||||
|
@ -94,7 +124,8 @@ class StackTest extends PHPUnit_Framework_TestCase
|
||||||
$this->assertEquals ("Doyle, Arthur Conan", $book->getAuthorsName ());
|
$this->assertEquals ("Doyle, Arthur Conan", $book->getAuthorsName ());
|
||||||
$this->assertEquals ("Fiction, Mystery & Detective, Short Stories", $book->getTagsName ());
|
$this->assertEquals ("Fiction, Mystery & Detective, Short Stories", $book->getTagsName ());
|
||||||
$this->assertEquals ('<p class="description">The Return of Sherlock Holmes is a collection of 13 Sherlock Holmes stories, originally published in 1903-1904, by Arthur Conan Doyle.<br />The book was first published on March 7, 1905 by Georges Newnes, Ltd and in a Colonial edition by Longmans. 30,000 copies were made of the initial print run. The US edition by McClure, Phillips & Co. added another 28,000 to the run.<br />This was the first Holmes collection since 1893, when Holmes had "died" in "The Adventure of the Final Problem". Having published The Hound of the Baskervilles in 1901–1902 (although setting it before Holmes\' death) Doyle came under intense pressure to revive his famous character.</p>', $book->getComment (false));
|
$this->assertEquals ('<p class="description">The Return of Sherlock Holmes is a collection of 13 Sherlock Holmes stories, originally published in 1903-1904, by Arthur Conan Doyle.<br />The book was first published on March 7, 1905 by Georges Newnes, Ltd and in a Colonial edition by Longmans. 30,000 copies were made of the initial print run. The US edition by McClure, Phillips & Co. added another 28,000 to the run.<br />This was the first Holmes collection since 1893, when Holmes had "died" in "The Adventure of the Final Problem". Having published The Hound of the Baskervilles in 1901–1902 (although setting it before Holmes\' death) Doyle came under intense pressure to revive his famous character.</p>', $book->getComment (false));
|
||||||
|
$this->assertEquals ("English", $book->getLanguages ());
|
||||||
|
$this->assertEquals ("", $book->getRating ());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
216
test/pageTest.php
Normal file
216
test/pageTest.php
Normal file
|
@ -0,0 +1,216 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
require_once (dirname(__FILE__) . "/config_test.php");
|
||||||
|
require_once (dirname(__FILE__) . "/../book.php");
|
||||||
|
|
||||||
|
class PageTest extends PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
public function testPageIndex ()
|
||||||
|
{
|
||||||
|
global $config;
|
||||||
|
$page = Base::PAGE_INDEX;
|
||||||
|
$query = NULL;
|
||||||
|
$search = NULL;
|
||||||
|
$qid = NULL;
|
||||||
|
$n = "1";
|
||||||
|
$database = NULL;
|
||||||
|
|
||||||
|
$currentPage = Page::getPage ($page, $qid, $query, $n);
|
||||||
|
$currentPage->InitializeContent ();
|
||||||
|
|
||||||
|
$this->assertEquals ($config['cops_title_default'], $currentPage->title);
|
||||||
|
$this->assertCount (6, $currentPage->entryArray);
|
||||||
|
$this->assertEquals ("Authors", $currentPage->entryArray [0]->title);
|
||||||
|
$this->assertEquals ("Alphabetical index of the 5 authors", $currentPage->entryArray [0]->content);
|
||||||
|
$this->assertEquals ("Series", $currentPage->entryArray [1]->title);
|
||||||
|
$this->assertEquals ("Alphabetical index of the 3 series", $currentPage->entryArray [1]->content);
|
||||||
|
$this->assertEquals ("Tags", $currentPage->entryArray [2]->title);
|
||||||
|
$this->assertEquals ("Alphabetical index of the 10 tags", $currentPage->entryArray [2]->content);
|
||||||
|
$this->assertEquals ("Languages", $currentPage->entryArray [3]->title);
|
||||||
|
$this->assertEquals ("Alphabetical index of the single language", $currentPage->entryArray [3]->content);
|
||||||
|
$this->assertEquals ("All books", $currentPage->entryArray [4]->title);
|
||||||
|
$this->assertEquals ("Alphabetical index of the 14 books", $currentPage->entryArray [4]->content);
|
||||||
|
$this->assertEquals ("Recent additions", $currentPage->entryArray [5]->title);
|
||||||
|
$this->assertEquals ("50 most recent books", $currentPage->entryArray [5]->content);
|
||||||
|
$this->assertFalse ($currentPage->ContainsBook ());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPageAllAuthors ()
|
||||||
|
{
|
||||||
|
global $config;
|
||||||
|
$page = Base::PAGE_ALL_AUTHORS;
|
||||||
|
$query = NULL;
|
||||||
|
$search = NULL;
|
||||||
|
$qid = NULL;
|
||||||
|
$n = "1";
|
||||||
|
$database = NULL;
|
||||||
|
|
||||||
|
$config['cops_author_split_first_letter'] = "0";
|
||||||
|
|
||||||
|
$currentPage = Page::getPage ($page, $qid, $query, $n);
|
||||||
|
$currentPage->InitializeContent ();
|
||||||
|
|
||||||
|
$this->assertEquals ("Authors", $currentPage->title);
|
||||||
|
$this->assertCount (5, $currentPage->entryArray);
|
||||||
|
$this->assertEquals ("Carroll, Lewis", $currentPage->entryArray [0]->title);
|
||||||
|
$this->assertFalse ($currentPage->ContainsBook ());
|
||||||
|
|
||||||
|
$config['cops_author_split_first_letter'] = 1;
|
||||||
|
|
||||||
|
$currentPage = Page::getPage ($page, $qid, $query, $n);
|
||||||
|
$currentPage->InitializeContent ();
|
||||||
|
|
||||||
|
$this->assertEquals ("Authors", $currentPage->title);
|
||||||
|
$this->assertCount (4, $currentPage->entryArray);
|
||||||
|
$this->assertEquals ("C", $currentPage->entryArray [0]->title);
|
||||||
|
$this->assertFalse ($currentPage->ContainsBook ());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPageAuthorsFirstLetter ()
|
||||||
|
{
|
||||||
|
global $config;
|
||||||
|
$page = Base::PAGE_AUTHORS_FIRST_LETTER;
|
||||||
|
$query = NULL;
|
||||||
|
$search = NULL;
|
||||||
|
$qid = "C";
|
||||||
|
$n = "1";
|
||||||
|
$database = NULL;
|
||||||
|
|
||||||
|
// Author Lewis Carroll
|
||||||
|
$currentPage = Page::getPage ($page, $qid, $query, $n);
|
||||||
|
$currentPage->InitializeContent ();
|
||||||
|
|
||||||
|
$this->assertEquals ("1 author starting with C", $currentPage->title);
|
||||||
|
$this->assertCount (1, $currentPage->entryArray);
|
||||||
|
$this->assertFalse ($currentPage->ContainsBook ());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPageAuthorsDetail ()
|
||||||
|
{
|
||||||
|
global $config;
|
||||||
|
$page = Base::PAGE_AUTHOR_DETAIL;
|
||||||
|
$query = NULL;
|
||||||
|
$search = NULL;
|
||||||
|
$qid = "1";
|
||||||
|
$n = "1";
|
||||||
|
$database = NULL;
|
||||||
|
$_SERVER['QUERY_STRING'] = "page=" . Base::PAGE_AUTHOR_DETAIL . "&id=1&n=1";
|
||||||
|
|
||||||
|
$config['cops_max_item_per_page'] = 2;
|
||||||
|
|
||||||
|
// First page
|
||||||
|
|
||||||
|
$currentPage = Page::getPage ($page, $qid, $query, $n);
|
||||||
|
$currentPage->InitializeContent ();
|
||||||
|
|
||||||
|
$this->assertEquals ("Doyle, Arthur Conan", $currentPage->title);
|
||||||
|
$this->assertEquals (4, $currentPage->getMaxPage ());
|
||||||
|
$this->assertCount (2, $currentPage->entryArray);
|
||||||
|
$this->assertTrue ($currentPage->ContainsBook ());
|
||||||
|
$this->assertTrue ($currentPage->IsPaginated ());
|
||||||
|
$this->assertNull ($currentPage->getPrevLink ());
|
||||||
|
|
||||||
|
// Last page
|
||||||
|
$config['cops_max_item_per_page'] = 5;
|
||||||
|
$n = "2";
|
||||||
|
|
||||||
|
$currentPage = Page::getPage ($page, $qid, $query, $n);
|
||||||
|
$currentPage->InitializeContent ();
|
||||||
|
|
||||||
|
$this->assertEquals ("Doyle, Arthur Conan", $currentPage->title);
|
||||||
|
$this->assertEquals (2, $currentPage->getMaxPage ());
|
||||||
|
$this->assertCount (3, $currentPage->entryArray);
|
||||||
|
$this->assertTrue ($currentPage->ContainsBook ());
|
||||||
|
$this->assertTrue ($currentPage->IsPaginated ());
|
||||||
|
$this->assertNull ($currentPage->getNextLink ());
|
||||||
|
|
||||||
|
// No pagination
|
||||||
|
$config['cops_max_item_per_page'] = -1;
|
||||||
|
|
||||||
|
$currentPage = Page::getPage ($page, $qid, $query, $n);
|
||||||
|
$currentPage->InitializeContent ();
|
||||||
|
|
||||||
|
$this->assertEquals ("Doyle, Arthur Conan", $currentPage->title);
|
||||||
|
$this->assertCount (8, $currentPage->entryArray);
|
||||||
|
$this->assertTrue ($currentPage->ContainsBook ());
|
||||||
|
$this->assertFalse ($currentPage->IsPaginated ());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPageAllBooks ()
|
||||||
|
{
|
||||||
|
global $config;
|
||||||
|
$page = Base::PAGE_ALL_BOOKS;
|
||||||
|
$query = NULL;
|
||||||
|
$search = NULL;
|
||||||
|
$qid = NULL;
|
||||||
|
$n = "1";
|
||||||
|
$database = NULL;
|
||||||
|
|
||||||
|
$currentPage = Page::getPage ($page, $qid, $query, $n);
|
||||||
|
$currentPage->InitializeContent ();
|
||||||
|
|
||||||
|
$this->assertEquals ("All books", $currentPage->title);
|
||||||
|
$this->assertCount (9, $currentPage->entryArray);
|
||||||
|
$this->assertEquals ("A", $currentPage->entryArray [0]->title);
|
||||||
|
$this->assertEquals ("C", $currentPage->entryArray [1]->title);
|
||||||
|
$this->assertFalse ($currentPage->ContainsBook ());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPageAllBooksByLetter ()
|
||||||
|
{
|
||||||
|
global $config;
|
||||||
|
$page = Base::PAGE_ALL_BOOKS_LETTER;
|
||||||
|
$query = NULL;
|
||||||
|
$search = NULL;
|
||||||
|
$qid = "C";
|
||||||
|
$n = "1";
|
||||||
|
$database = NULL;
|
||||||
|
|
||||||
|
$currentPage = Page::getPage ($page, $qid, $query, $n);
|
||||||
|
$currentPage->InitializeContent ();
|
||||||
|
|
||||||
|
$this->assertEquals ("2 books starting with C", $currentPage->title);
|
||||||
|
$this->assertCount (2, $currentPage->entryArray);
|
||||||
|
$this->assertEquals ("The Call of the Wild", $currentPage->entryArray [0]->title);
|
||||||
|
$this->assertTrue ($currentPage->ContainsBook ());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPageAllSeries ()
|
||||||
|
{
|
||||||
|
global $config;
|
||||||
|
$page = Base::PAGE_ALL_SERIES;
|
||||||
|
$query = NULL;
|
||||||
|
$search = NULL;
|
||||||
|
$qid = NULL;
|
||||||
|
$n = "1";
|
||||||
|
$database = NULL;
|
||||||
|
|
||||||
|
$currentPage = Page::getPage ($page, $qid, $query, $n);
|
||||||
|
$currentPage->InitializeContent ();
|
||||||
|
|
||||||
|
$this->assertEquals ("Series", $currentPage->title);
|
||||||
|
$this->assertCount (3, $currentPage->entryArray);
|
||||||
|
$this->assertEquals ("D'Artagnan Romances", $currentPage->entryArray [0]->title);
|
||||||
|
$this->assertFalse ($currentPage->ContainsBook ());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPageSeriesDetail ()
|
||||||
|
{
|
||||||
|
global $config;
|
||||||
|
$page = Base::PAGE_SERIE_DETAIL;
|
||||||
|
$query = NULL;
|
||||||
|
$search = NULL;
|
||||||
|
$qid = "1";
|
||||||
|
$n = "1";
|
||||||
|
$database = NULL;
|
||||||
|
|
||||||
|
$currentPage = Page::getPage ($page, $qid, $query, $n);
|
||||||
|
$currentPage->InitializeContent ();
|
||||||
|
|
||||||
|
$this->assertEquals ("Sherlock Holmes", $currentPage->title);
|
||||||
|
$this->assertCount (7, $currentPage->entryArray);
|
||||||
|
$this->assertEquals ("A Study in Scarlet", $currentPage->entryArray [0]->title);
|
||||||
|
$this->assertTrue ($currentPage->ContainsBook ());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in a new issue