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:
cweiske 2010-09-27 20:49:01 +00:00
parent 42666d0991
commit 15b8b6ab23
2 changed files with 190 additions and 39 deletions

View file

@ -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

View file

@ -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());
}
/** /**