This commit is contained in:
		
							parent
							
								
									3661be17d1
								
							
						
					
					
						commit
						789fc5468e
					
				
					 4 changed files with 48 additions and 18 deletions
				
			
		| 
						 | 
					@ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue