This commit is contained in:
parent
3661be17d1
commit
789fc5468e
|
@ -76,13 +76,13 @@ order by publishers.name');
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getAllPublishersByQuery($query) {
|
public static function getAllPublishersByQuery($query) {
|
||||||
$result = parent::getDb ()->prepare('select publishers.id as id, publishers.name as name, count(*) as count
|
$columns = "publishers.id as id, publishers.name as name, count(*) as count";
|
||||||
from publishers, books_publishers_link
|
$sql = 'select {0} from publishers, books_publishers_link
|
||||||
where publishers.id = publisher and publishers.name like ?
|
where publishers.id = publisher and upper (publishers.name) like ?
|
||||||
group by publishers.id, publishers.name
|
group by publishers.id, publishers.name
|
||||||
order by publishers.name');
|
order by publishers.name';
|
||||||
|
list ($totalNumber, $result) = parent::executeQuery ($sql, $columns, "", array ('%' . $query . '%'), -1);
|
||||||
$entryArray = array();
|
$entryArray = array();
|
||||||
$result->execute (array ('%' . $query . '%'));
|
|
||||||
|
|
||||||
while ($post = $result->fetchObject ())
|
while ($post = $result->fetchObject ())
|
||||||
{
|
{
|
||||||
|
|
2
tag.php
2
tag.php
|
@ -64,7 +64,7 @@ order by tags.name');
|
||||||
|
|
||||||
public static function getAllTagsByQuery($query, $n, $database = NULL, $numberPerPage = NULL) {
|
public static function getAllTagsByQuery($query, $n, $database = NULL, $numberPerPage = NULL) {
|
||||||
$columns = "tags.id as id, tags.name as name, (select count(*) from books_tags_link where tags.id = tag) as count";
|
$columns = "tags.id as id, tags.name as name, (select count(*) from books_tags_link where tags.id = tag) as count";
|
||||||
$sql = 'select {0} from tags where tags.name like ? {1} order by tags.name';
|
$sql = 'select {0} from tags where upper (tags.name) like ? {1} order by tags.name';
|
||||||
list ($totalNumber, $result) = parent::executeQuery ($sql, $columns, "", array ('%' . $query . '%'), $n, $database, $numberPerPage);
|
list ($totalNumber, $result) = parent::executeQuery ($sql, $columns, "", array ('%' . $query . '%'), $n, $database, $numberPerPage);
|
||||||
$entryArray = array();
|
$entryArray = array();
|
||||||
while ($post = $result->fetchObject ())
|
while ($post = $result->fetchObject ())
|
||||||
|
|
Binary file not shown.
|
@ -644,29 +644,46 @@ class PageTest extends PHPUnit_Framework_TestCase
|
||||||
$this->assertFalse ($currentPage->ContainsBook ());
|
$this->assertFalse ($currentPage->ContainsBook ());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testPageSearch_WithAccentuatedCharacters ()
|
|
||||||
|
/**
|
||||||
|
* @dataProvider providerAccentuatedCharacters
|
||||||
|
*/
|
||||||
|
public function testPageSearch_WithAccentuatedCharacters ($query, $count, $content)
|
||||||
{
|
{
|
||||||
global $config;
|
global $config;
|
||||||
$page = Base::PAGE_OPENSEARCH_QUERY;
|
$page = Base::PAGE_OPENSEARCH_QUERY;
|
||||||
$query = "curée";
|
|
||||||
$qid = NULL;
|
$qid = NULL;
|
||||||
$n = "1";
|
$n = "1";
|
||||||
|
|
||||||
$currentPage = Page::getPage ($page, $qid, $query, $n);
|
$currentPage = Page::getPage ($page, $qid, $query, $n);
|
||||||
$currentPage->InitializeContent ();
|
$currentPage->InitializeContent ();
|
||||||
|
|
||||||
$this->assertEquals ("Search result for *curée*", $currentPage->title);
|
$this->assertEquals ("Search result for *$query*", $currentPage->title);
|
||||||
$this->assertCount (1, $currentPage->entryArray);
|
$this->assertCount ($count, $currentPage->entryArray);
|
||||||
$this->assertEquals ("Search result for *curée* in books", $currentPage->entryArray [0]->title);
|
if ($count > 0) {
|
||||||
$this->assertEquals ("1 book", $currentPage->entryArray [0]->content);
|
$this->assertEquals ($content, $currentPage->entryArray [0]->content);
|
||||||
|
}
|
||||||
$this->assertFalse ($currentPage->ContainsBook ());
|
$this->assertFalse ($currentPage->ContainsBook ());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testPageSearch_WithNormalizedSearch ()
|
public function providerAccentuatedCharacters ()
|
||||||
|
{
|
||||||
|
return array (
|
||||||
|
array ("curée", 1, "1 book"),
|
||||||
|
array ("Émile zola", 1, "1 author"),
|
||||||
|
array ("émile zola", 0, NULL), // With standard search upper does not work with diacritics
|
||||||
|
array ("Littérature", 1, "1 tag"),
|
||||||
|
array ("Eugène Fasquelle", 1, "1 publisher")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider providerNormalizedSearch
|
||||||
|
*/
|
||||||
|
public function testPageSearch_WithNormalizedSearch_Book ($query, $count, $content)
|
||||||
{
|
{
|
||||||
global $config;
|
global $config;
|
||||||
$page = Base::PAGE_OPENSEARCH_QUERY;
|
$page = Base::PAGE_OPENSEARCH_QUERY;
|
||||||
$query = "curee";
|
|
||||||
$qid = NULL;
|
$qid = NULL;
|
||||||
$n = "1";
|
$n = "1";
|
||||||
$config ['cops_normalized_search'] = "1";
|
$config ['cops_normalized_search'] = "1";
|
||||||
|
@ -678,16 +695,29 @@ class PageTest extends PHPUnit_Framework_TestCase
|
||||||
$currentPage = Page::getPage ($page, $qid, $query, $n);
|
$currentPage = Page::getPage ($page, $qid, $query, $n);
|
||||||
$currentPage->InitializeContent ();
|
$currentPage->InitializeContent ();
|
||||||
|
|
||||||
$this->assertEquals ("Search result for *curee*", $currentPage->title);
|
$this->assertEquals ("Search result for *$query*", $currentPage->title);
|
||||||
$this->assertCount (1, $currentPage->entryArray);
|
$this->assertCount ($count, $currentPage->entryArray);
|
||||||
$this->assertEquals ("Search result for *curee* in books", $currentPage->entryArray [0]->title);
|
if ($count > 0) {
|
||||||
$this->assertEquals ("1 book", $currentPage->entryArray [0]->content);
|
$this->assertEquals ($content, $currentPage->entryArray [0]->content);
|
||||||
|
}
|
||||||
$this->assertFalse ($currentPage->ContainsBook ());
|
$this->assertFalse ($currentPage->ContainsBook ());
|
||||||
|
|
||||||
$config ['cops_normalized_search'] = "0";
|
$config ['cops_normalized_search'] = "0";
|
||||||
Base::clearDb ();
|
Base::clearDb ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function providerNormalizedSearch ()
|
||||||
|
{
|
||||||
|
return array (
|
||||||
|
array ("curee", 1, "1 book"),
|
||||||
|
array ("emile zola", 1, "1 author"),
|
||||||
|
array ("émile zola", 1, "1 author"),
|
||||||
|
array ("Litterature", 1, "1 tag"),
|
||||||
|
array ("Litterâture", 1, "1 tag"),
|
||||||
|
array ("Eugene Fasquelle", 1, "1 publisher")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public function testAuthorSearch_ByName ()
|
public function testAuthorSearch_ByName ()
|
||||||
{
|
{
|
||||||
global $config;
|
global $config;
|
||||||
|
|
Loading…
Reference in a new issue