now we have tests for all history all methods
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@762 b3834d28-1941-0410-a4f8-b48e95affb8f
This commit is contained in:
parent
42666d0991
commit
15b8b6ab23
2 changed files with 190 additions and 39 deletions
|
@ -139,7 +139,7 @@ class SemanticScuttle_Service_SearchHistory extends SemanticScuttle_DbService
|
||||||
* - 'watchlist' - searched in watchlist
|
* - 'watchlist' - searched in watchlist
|
||||||
* - any username to show that the search happened
|
* - any username to show that the search happened
|
||||||
* in his own bookmarks.
|
* in his own bookmarks.
|
||||||
* @param integer $uId Id of the user who searched. 0 for anonymous users
|
* @param integer $uId Id of the user who searched. null for any users
|
||||||
* @param integer $nb Number of bookmarks to retrieve (paging)
|
* @param integer $nb Number of bookmarks to retrieve (paging)
|
||||||
* @param integer $start Number of bookmark to begin with (paging)
|
* @param integer $start Number of bookmark to begin with (paging)
|
||||||
* @param boolean $distinct If the search terms shall be distinct
|
* @param boolean $distinct If the search terms shall be distinct
|
||||||
|
|
|
@ -136,50 +136,180 @@ class SearchHistoryTest extends TestBase
|
||||||
$this->assertEquals(6, $this->shs->countSearches());
|
$this->assertEquals(6, $this->shs->countSearches());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testSearchHistory()
|
/**
|
||||||
|
* Test getAllSearches() without any parameters
|
||||||
|
*/
|
||||||
|
public function testGetAllSearches()
|
||||||
{
|
{
|
||||||
$shs = $this->shs;
|
$this->assertEquals(0, $this->shs->countSearches());
|
||||||
|
|
||||||
$terms = 'bbqsdkbb;,:,:q;,qddds&é"\'\\\\\(-è_çà)';
|
$this->shs->addSearch('eins', 'all', 1);
|
||||||
$terms2 = '~#{|`]';
|
$this->shs->addSearch('zwei', 'all', 1);
|
||||||
$range = 'all';
|
$this->shs->addSearch('drei', 'all', 1);
|
||||||
$nbResults = 10908;
|
|
||||||
$uId = 10;
|
|
||||||
|
|
||||||
$shs->addSearch($terms, $range, $nbResults, $uId);
|
$rows = $this->shs->getAllSearches();
|
||||||
$shs->addSearch($terms2, $range, $nbResults, $uId);
|
$this->assertEquals(3, count($rows));
|
||||||
$shs->addSearch('', $range, $nbResults, $uId); // A void search must not be saved
|
|
||||||
|
|
||||||
$searches = $shs->getAllSearches();
|
$terms = array();
|
||||||
$this->assertSame(2, count($searches));
|
foreach ($rows as $row) {
|
||||||
$searches = $shs->getAllSearches($range, $uId);
|
$terms[] = $row['shTerms'];
|
||||||
$this->assertEquals(2, count($searches));
|
}
|
||||||
$searches = $shs->getAllSearches($range, 20); // fake userid
|
sort($terms);
|
||||||
$this->assertEquals(0, count($searches));
|
$this->assertEquals(
|
||||||
$searches = $shs->getAllSearches($range, $uId, 1);
|
array('drei', 'eins', 'zwei'),
|
||||||
$this->assertEquals(1, count($searches));
|
$terms
|
||||||
$searches = $shs->getAllSearches($range, null, 1, 1);
|
);
|
||||||
$this->assertEquals(1, count($searches));
|
}
|
||||||
|
|
||||||
//test content of results
|
/**
|
||||||
$searches = $shs->getAllSearches();
|
* Test getAllSearches() return value row array keys.
|
||||||
$this->assertSame($terms2, $searches[0]['shTerms']);
|
*/
|
||||||
$this->assertSame($range, $searches[0]['shRange']);
|
public function testGetAllSearchesTypes()
|
||||||
$this->assertEquals($nbResults, $searches[0]['shNbResults']);
|
{
|
||||||
$this->assertEquals($uId, $searches[0]['uId']);
|
$this->assertEquals(0, $this->shs->countSearches());
|
||||||
$this->assertSame($terms, $searches[1]['shTerms']);
|
|
||||||
$this->assertSame($range, $searches[1]['shRange']);
|
|
||||||
$this->assertEquals($nbResults, $searches[1]['shNbResults']);
|
|
||||||
$this->assertEquals($uId, $searches[1]['uId']);
|
|
||||||
|
|
||||||
//test distinct parameter
|
$this->shs->addSearch('eins', 'all', 1);
|
||||||
$shs->addSearch(
|
|
||||||
$terms, $range, $nbResults, 30
|
$rows = $this->shs->getAllSearches();
|
||||||
); // we repeat a search (same terms)
|
$this->assertEquals(1, count($rows));
|
||||||
$searches = $shs->getAllSearches();
|
$row = reset($rows);
|
||||||
$this->assertSame(3, count($searches));
|
|
||||||
$searches = $shs->getAllSearches(null, null, null, null, true);
|
$this->assertArrayHasKey('shTerms', $row);
|
||||||
$this->assertSame(2, count($searches));
|
$this->assertArrayHasKey('shId', $row);
|
||||||
|
$this->assertArrayHasKey('shRange', $row);
|
||||||
|
$this->assertArrayHasKey('shNbResults', $row);
|
||||||
|
$this->assertArrayHasKey('shDatetime', $row);
|
||||||
|
$this->assertArrayHasKey('uId', $row);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test getAllSearches() range parameter
|
||||||
|
*/
|
||||||
|
public function testGetAllSearchesRange()
|
||||||
|
{
|
||||||
|
$this->assertEquals(0, $this->shs->countSearches());
|
||||||
|
|
||||||
|
$this->shs->addSearch('eins', 'all', 1);
|
||||||
|
$this->shs->addSearch('zwei', 'watchlist', 1);
|
||||||
|
$this->shs->addSearch('drei', 'watchlist', 1);
|
||||||
|
$this->shs->addSearch('vier', 'user1', 1);
|
||||||
|
$this->shs->addSearch('fünf', 'user2', 1);
|
||||||
|
|
||||||
|
$rows = $this->shs->getAllSearches('all');
|
||||||
|
$this->assertEquals(1, count($rows));
|
||||||
|
|
||||||
|
$rows = $this->shs->getAllSearches('watchlist');
|
||||||
|
$this->assertEquals(2, count($rows));
|
||||||
|
|
||||||
|
$rows = $this->shs->getAllSearches('user0');
|
||||||
|
$this->assertEquals(0, count($rows));
|
||||||
|
|
||||||
|
$rows = $this->shs->getAllSearches('user1');
|
||||||
|
$this->assertEquals(1, count($rows));
|
||||||
|
$this->assertEquals('vier', $rows[0]['shTerms']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test getAllSearches() uId parameter
|
||||||
|
*/
|
||||||
|
public function testGetAllSearchesUid()
|
||||||
|
{
|
||||||
|
$this->assertEquals(0, $this->shs->countSearches());
|
||||||
|
|
||||||
|
$this->shs->addSearch('eins', 'all', 1, 0);
|
||||||
|
$this->shs->addSearch('zwei', 'all', 1, 0);
|
||||||
|
$this->shs->addSearch('drei', 'all', 1, 1);
|
||||||
|
|
||||||
|
$rows = $this->shs->getAllSearches(null, null);
|
||||||
|
$this->assertEquals(3, count($rows));
|
||||||
|
|
||||||
|
$rows = $this->shs->getAllSearches(null, 1);
|
||||||
|
$this->assertEquals(1, count($rows));
|
||||||
|
$this->assertEquals('drei', $rows[0]['shTerms']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test getAllSearches() number parameter
|
||||||
|
*/
|
||||||
|
public function testGetAllSearchesNb()
|
||||||
|
{
|
||||||
|
$this->assertEquals(0, $this->shs->countSearches());
|
||||||
|
|
||||||
|
$this->shs->addSearch('eins', 'all', 1, 0);
|
||||||
|
$this->shs->addSearch('zwei', 'all', 1, 0);
|
||||||
|
$this->shs->addSearch('drei', 'all', 1, 1);
|
||||||
|
|
||||||
|
$rows = $this->shs->getAllSearches(null, null, 1);
|
||||||
|
$this->assertEquals(1, count($rows));
|
||||||
|
|
||||||
|
$rows = $this->shs->getAllSearches(null, null, 2);
|
||||||
|
$this->assertEquals(2, count($rows));
|
||||||
|
|
||||||
|
$rows = $this->shs->getAllSearches(null, null, 3);
|
||||||
|
$this->assertEquals(3, count($rows));
|
||||||
|
|
||||||
|
$rows = $this->shs->getAllSearches(null, null, 4);
|
||||||
|
$this->assertEquals(3, count($rows));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test getAllSearches() paging start parameter
|
||||||
|
*/
|
||||||
|
public function testGetAllSearchesStart()
|
||||||
|
{
|
||||||
|
$this->assertEquals(0, $this->shs->countSearches());
|
||||||
|
|
||||||
|
$this->shs->addSearch('eins', 'all', 1, 0);
|
||||||
|
$this->shs->addSearch('zwei', 'all', 1, 0);
|
||||||
|
$this->shs->addSearch('drei', 'all', 1, 1);
|
||||||
|
|
||||||
|
$rows = $this->shs->getAllSearches(null, null, 1, 0);
|
||||||
|
$this->assertEquals(1, count($rows));
|
||||||
|
$this->assertEquals('drei', $rows[0]['shTerms']);
|
||||||
|
|
||||||
|
$rows = $this->shs->getAllSearches(null, null, 1, 1);
|
||||||
|
$this->assertEquals(1, count($rows));
|
||||||
|
$this->assertEquals('zwei', $rows[0]['shTerms']);
|
||||||
|
|
||||||
|
$rows = $this->shs->getAllSearches(null, null, 3, 2);
|
||||||
|
$this->assertEquals(1, count($rows));
|
||||||
|
$this->assertEquals('eins', $rows[0]['shTerms']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test getAllSearches() distinct parameter
|
||||||
|
*/
|
||||||
|
public function testGetAllSearchesDistinct()
|
||||||
|
{
|
||||||
|
$this->assertEquals(0, $this->shs->countSearches());
|
||||||
|
|
||||||
|
$this->shs->addSearch('eins', 'all', 1);
|
||||||
|
$this->shs->addSearch('eins', 'all', 1);
|
||||||
|
$this->shs->addSearch('drei', 'all', 1);
|
||||||
|
|
||||||
|
$rows = $this->shs->getAllSearches(null, null, null, null, false);
|
||||||
|
$this->assertEquals(3, count($rows));
|
||||||
|
|
||||||
|
$rows = $this->shs->getAllSearches(null, null, null, null, true);
|
||||||
|
$this->assertEquals(2, count($rows));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test getAllSearches() withResults parameter
|
||||||
|
*/
|
||||||
|
public function testGetAllSearchesWithResults()
|
||||||
|
{
|
||||||
|
$this->assertEquals(0, $this->shs->countSearches());
|
||||||
|
|
||||||
|
$this->shs->addSearch('eins', 'all', 0);
|
||||||
|
$this->shs->addSearch('zwei', 'all', 0);
|
||||||
|
$this->shs->addSearch('drei', 'all', 1);
|
||||||
|
|
||||||
|
$rows = $this->shs->getAllSearches(null, null, null, null, false, false);
|
||||||
|
$this->assertEquals(3, count($rows));
|
||||||
|
|
||||||
|
$rows = $this->shs->getAllSearches(null, null, null, null, false, true);
|
||||||
|
$this->assertEquals(1, count($rows));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -227,6 +357,27 @@ class SearchHistoryTest extends TestBase
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test if deleting the search history for a certain user works
|
||||||
|
*/
|
||||||
|
public function testDeleteSearchHistoryForUser()
|
||||||
|
{
|
||||||
|
$this->assertEquals(0, $this->shs->countSearches());
|
||||||
|
|
||||||
|
$this->shs->addSearch('eins', 'all', 1, 0);
|
||||||
|
$this->shs->addSearch('zwei', 'all', 1, 22);
|
||||||
|
$this->shs->addSearch('drei', 'all', 1, 1);
|
||||||
|
$this->shs->addSearch('vier', 'all', 1, 22);
|
||||||
|
|
||||||
|
$this->shs->deleteSearchHistoryForUser(22);
|
||||||
|
$this->assertEquals(2, $this->shs->countSearches());
|
||||||
|
|
||||||
|
$this->shs->deleteSearchHistoryForUser(20);
|
||||||
|
$this->assertEquals(2, $this->shs->countSearches());
|
||||||
|
|
||||||
|
$this->shs->deleteSearchHistoryForUser(1);
|
||||||
|
$this->assertEquals(1, $this->shs->countSearches());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue