summaryrefslogtreecommitdiff
path: root/tests/SearchHistoryTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/SearchHistoryTest.php')
-rw-r--r--tests/SearchHistoryTest.php178
1 files changed, 127 insertions, 51 deletions
diff --git a/tests/SearchHistoryTest.php b/tests/SearchHistoryTest.php
index 3716b37..f140063 100644
--- a/tests/SearchHistoryTest.php
+++ b/tests/SearchHistoryTest.php
@@ -55,63 +55,139 @@ class SearchHistoryTest extends TestBase
+ /**
+ * Set up all services
+ *
+ * @return void
+ */
protected function setUp()
{
- $this->us =SemanticScuttle_Service_Factory::get('User');
- $this->bs =SemanticScuttle_Service_Factory::get('Bookmark');
- $this->bs->deleteAll();
- $this->b2ts =SemanticScuttle_Service_Factory::get('Bookmark2Tag');
- $this->b2ts->deleteAll();
- $this->tts =SemanticScuttle_Service_Factory::get('Tag2Tag');
- $this->tts->deleteAll();
- $this->tsts =SemanticScuttle_Service_Factory::get('TagStat');
- $this->tsts->deleteAll();
- $this->shs =SemanticScuttle_Service_Factory::get('SearchHistory');
- $this->shs->deleteAll();
+ $this->us = SemanticScuttle_Service_Factory::get('User');
+ $this->bs = SemanticScuttle_Service_Factory::get('Bookmark');
+ $this->bs->deleteAll();
+
+ $this->b2ts =SemanticScuttle_Service_Factory::get('Bookmark2Tag');
+ $this->b2ts->deleteAll();
+
+ $this->tts = SemanticScuttle_Service_Factory::get('Tag2Tag');
+ $this->tts->deleteAll();
+
+ $this->tsts = SemanticScuttle_Service_Factory::get('TagStat');
+ $this->tsts->deleteAll();
+
+ $this->shs = SemanticScuttle_Service_Factory::get('SearchHistory');
+ $this->shs->deleteAll();
+ }
+
+ /**
+ * Tests if adding searches to the database works
+ */
+ public function testAddSearch()
+ {
+ $this->assertEquals(0, $this->shs->countSearches());
+
+ $this->assertTrue(
+ $this->shs->addSearch('testsearchterm', 'all', 0)
+ );
+ $this->assertEquals(1, $this->shs->countSearches());
+ }
+
+ /**
+ * Tests if adding a search without terms should fail
+ */
+ public function testAddSearchNoTerms()
+ {
+ $this->assertEquals(0, $this->shs->countSearches());
+
+ $this->assertFalse(
+ $this->shs->addSearch('', 'all', 0)
+ );
+ $this->assertEquals(0, $this->shs->countSearches());
}
public function testSearchHistory()
{
- $shs = $this->shs;
-
- $terms = 'bbqsdkbb;,:,:q;,qddds&é"\'\\\\\(-è_çà)';
- $terms2 = '~#{|`]';
- $range = 'all';
- $nbResults = 10908;
- $uId = 10;
-
- $shs->addSearch($terms, $range, $nbResults, $uId);
- $shs->addSearch($terms2, $range, $nbResults, $uId);
- $shs->addSearch('', $range, $nbResults, $uId); // A void search must not be saved
-
- $searches = $shs->getAllSearches();
- $this->assertSame(2, count($searches));
- $searches = $shs->getAllSearches($range, $uId);
- $this->assertEquals(2, count($searches));
- $searches = $shs->getAllSearches($range, 20); // fake userid
- $this->assertEquals(0, count($searches));
- $searches = $shs->getAllSearches($range, $uId, 1);
- $this->assertEquals(1, count($searches));
- $searches = $shs->getAllSearches($range, null, 1, 1);
- $this->assertEquals(1, count($searches));
-
- //test content of results
- $searches = $shs->getAllSearches();
- $this->assertSame($terms2, $searches[0]['shTerms']);
- $this->assertSame($range, $searches[0]['shRange']);
- $this->assertEquals($nbResults, $searches[0]['shNbResults']);
- $this->assertEquals($uId, $searches[0]['uId']);
- $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
- $shs->addSearch($terms, $range, $nbResults, 30); // we repeat a search (same terms)
- $searches = $shs->getAllSearches();
- $this->assertSame(3, count($searches));
- $searches = $shs->getAllSearches(NULL, NULL, NULL, NULL, true);
- $this->assertSame(2, count($searches));
+ $shs = $this->shs;
+
+ $terms = 'bbqsdkbb;,:,:q;,qddds&é"\'\\\\\(-è_çà)';
+ $terms2 = '~#{|`]';
+ $range = 'all';
+ $nbResults = 10908;
+ $uId = 10;
+
+ $shs->addSearch($terms, $range, $nbResults, $uId);
+ $shs->addSearch($terms2, $range, $nbResults, $uId);
+ $shs->addSearch('', $range, $nbResults, $uId); // A void search must not be saved
+
+ $searches = $shs->getAllSearches();
+ $this->assertSame(2, count($searches));
+ $searches = $shs->getAllSearches($range, $uId);
+ $this->assertEquals(2, count($searches));
+ $searches = $shs->getAllSearches($range, 20); // fake userid
+ $this->assertEquals(0, count($searches));
+ $searches = $shs->getAllSearches($range, $uId, 1);
+ $this->assertEquals(1, count($searches));
+ $searches = $shs->getAllSearches($range, null, 1, 1);
+ $this->assertEquals(1, count($searches));
+
+ //test content of results
+ $searches = $shs->getAllSearches();
+ $this->assertSame($terms2, $searches[0]['shTerms']);
+ $this->assertSame($range, $searches[0]['shRange']);
+ $this->assertEquals($nbResults, $searches[0]['shNbResults']);
+ $this->assertEquals($uId, $searches[0]['uId']);
+ $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
+ $shs->addSearch(
+ $terms, $range, $nbResults, 30
+ ); // we repeat a search (same terms)
+ $searches = $shs->getAllSearches();
+ $this->assertSame(3, count($searches));
+ $searches = $shs->getAllSearches(null, null, null, null, true);
+ $this->assertSame(2, count($searches));
+ }
+
+ /**
+ * Deleting the oldest search without any historical searches
+ */
+ public function testDeleteOldestSearchNone()
+ {
+ $this->assertEquals(0, $this->shs->countSearches());
+ $this->assertTrue($this->shs->deleteOldestSearch());
+ $this->assertEquals(0, $this->shs->countSearches());
+ }
+
+ /**
+ * Test deleting the oldest search
+ */
+ public function testDeleteOldestSearchSome()
+ {
+ $this->assertEquals(0, $this->shs->countSearches());
+ $this->shs->addSearch('testsearchterm1', 'all', 0);
+ $this->shs->addSearch('testsearchterm2', 'all', 0);
+
+ $rows = $this->shs->getAllSearches();
+ $this->assertEquals(2, count($rows));
+
+ $highestId = -1;
+ foreach ($rows as $row) {
+ if ($row['shId'] > $highestId) {
+ $highestId = $row['shId'];
+ }
+ }
+
+ $this->shs->deleteOldestSearch();
+
+ $rows = $this->shs->getAllSearches();
+ $this->assertEquals(1, count($rows));
+ $this->assertEquals(
+ $highestId,
+ $rows[0]['shId']
+ );
}
}