From de031f043f9918424b26534d233df90b7d5c42f9 Mon Sep 17 00:00:00 2001 From: cweiske Date: Sat, 3 Oct 2009 23:18:49 +0000 Subject: make tests run again (though they do not pass) git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@389 b3834d28-1941-0410-a4f8-b48e95affb8f --- tests/AllTests.php | 58 +++++ tests/BookmarksTest.php | 76 +++++++ tests/CommonDescriptionTest.php | 96 ++++++++ tests/SearchTest.php | 80 +++++++ tests/Tag2TagTest.php | 485 ++++++++++++++++++++++++++++++++++++++++ tests/TagsCacheTest.php | 176 +++++++++++++++ tests/TagsTest.php | 76 +++++++ tests/allTests.php | 39 ---- tests/bookmarksTest.php | 75 ------- tests/commonDescriptionTest.php | 96 -------- tests/searchTest.php | 80 ------- tests/tag2TagTest.php | 485 ---------------------------------------- tests/tagsCacheTest.php | 176 --------------- tests/tagsTest.php | 76 ------- 14 files changed, 1047 insertions(+), 1027 deletions(-) create mode 100644 tests/AllTests.php create mode 100644 tests/BookmarksTest.php create mode 100644 tests/CommonDescriptionTest.php create mode 100644 tests/SearchTest.php create mode 100644 tests/Tag2TagTest.php create mode 100644 tests/TagsCacheTest.php create mode 100644 tests/TagsTest.php delete mode 100644 tests/allTests.php delete mode 100644 tests/bookmarksTest.php delete mode 100644 tests/commonDescriptionTest.php delete mode 100644 tests/searchTest.php delete mode 100644 tests/tag2TagTest.php delete mode 100644 tests/tagsCacheTest.php delete mode 100644 tests/tagsTest.php (limited to 'tests') diff --git a/tests/AllTests.php b/tests/AllTests.php new file mode 100644 index 0000000..1526da8 --- /dev/null +++ b/tests/AllTests.php @@ -0,0 +1,58 @@ +addTestFile($tdir . '/BookmarksTest.php'); + $suite->addTestFile($tdir . '/Tag2TagTest.php'); + $suite->addTestFile($tdir . '/TagsCacheTest.php'); + $suite->addTestFile($tdir . '/CommonDescriptionTest.php'); + $suite->addTestFile($tdir . '/SearchTest.php'); + $suite->addTestFile($tdir . '/TagsTest.php'); + return $suite; + } + + protected function setUp() + { + global $dbhost, $dbuser, $dbpass, $dbname, $dbport, $dbpersist, $dbtype, + $tableprefix, $TEMPLATES_DIR, $filetypes, $debugMode; + require_once dirname(__FILE__) . '/../src/SemanticScuttle/header.php'; + } + + protected function tearDown() + { + } +} + +if (PHPUnit_MAIN_METHOD == 'AllTests::main') { + AllTests::main(); +} + +?> \ No newline at end of file diff --git a/tests/BookmarksTest.php b/tests/BookmarksTest.php new file mode 100644 index 0000000..fd9ed76 --- /dev/null +++ b/tests/BookmarksTest.php @@ -0,0 +1,76 @@ +us =SemanticScuttle_Service_Factory::getServiceInstance('User'); + $this->bs =SemanticScuttle_Service_Factory::getServiceInstance('Bookmark'); + $this->bs->deleteAll(); + $this->b2ts=SemanticScuttle_Service_Factory::getServiceInstance('Bookmark2Tag'); + $this->b2ts->deleteAll(); + $this->tts =SemanticScuttle_Service_Factory::getServiceInstance('Tag2Tag'); + $this->tts->deleteAll(); + $this->tsts =SemanticScuttle_Service_Factory::getServiceInstance('TagStat'); + $this->tsts->deleteAll(); + } + + public function testHardCharactersInBookmarks() + { + $bs = $this->bs; + $title = "title&é\"'(-è_çà)="; + $desc = "description#{[|`\^@]}³<> ¹¡÷׿&é\"'(-è\\_çà)="; + $tag1 = "#{|`^@]³¹¡¿<&é\"'(-è\\_çà)"; + $tag2 = "&é\"'(-è.[?./§!_çà)"; + + $bs->addBookmark("http://site1.com", $title, $desc, "status", array($tag1, $tag2), null, false, false, 1); + + $bookmarks =& $bs->getBookmarks(0, 1, NULL, NULL, NULL, getSortOrder(), NULL, 0); + + $b0 = $bookmarks['bookmarks'][0]; + $this->assertEquals($title, $b0['bTitle']); + $this->assertEquals($desc, $b0['bDescription']); + $this->assertEquals(str_replace(array('"', '\'', '/'), "_", $tag1), $b0['tags'][0]); + $this->assertEquals(str_replace(array('"', '\'', '/'), "_", $tag2), $b0['tags'][1]); + } + + public function testUnificationOfBookmarks() + { + $bs = $this->bs; + + $bs->addBookmark("http://site1.com", "title", "description", "status", array('tag1'), null, false, false, 1); + $bs->addBookmark("http://site1.com", "title2", "description2", "status", array('tag2'), null, false, false, 2); + + $bookmarks =& $bs->getBookmarks(0, 1, NULL, NULL, NULL, getSortOrder(), NULL, 0); + $this->assertEquals(1, $bookmarks['total']); + } + + /*public function testSearchingBookmarksAccentsInsensible() + { + $bs = $this->bs; + + $bs->addBookmark("http://site1.com", "title", "éèüaàê", "status", array('tag1'), null, false, false, 1); + $bookmarks =& $bs->getBookmarks(0, NULL, NULL, NULL, $terms = "eeaae"); //void + $this->assertEquals(0, $bookmarks['total']); + $bookmarks =& $bs->getBookmarks(0, NULL, NULL, NULL, $terms = "eeuaae"); + $this->assertEquals(1, $bookmarks['total']); + }*/ + +} +?> diff --git a/tests/CommonDescriptionTest.php b/tests/CommonDescriptionTest.php new file mode 100644 index 0000000..87d09d1 --- /dev/null +++ b/tests/CommonDescriptionTest.php @@ -0,0 +1,96 @@ +us =SemanticScuttle_Service_Factory::getServiceInstance('User'); + $this->bs =SemanticScuttle_Service_Factory::getServiceInstance('Bookmark'); + $this->bs->deleteAll(); + $this->b2ts =SemanticScuttle_Service_Factory::getServiceInstance('Bookmark2Tag'); + $this->b2ts->deleteAll(); + $this->tts =SemanticScuttle_Service_Factory::getServiceInstance('Tag2Tag'); + $this->tts->deleteAll(); + $this->tsts =SemanticScuttle_Service_Factory::getServiceInstance('TagStat'); + $this->tsts->deleteAll(); + $this->cds =SemanticScuttle_Service_Factory::getServiceInstance('CommonDescription'); + $this->cds->deleteAll(); + } + + public function testModifyDescription() + { + $cds = $this->cds; + + $uId1 = 1; + $uId2 = 2; + $title1 = "title1"; + $title2 = "title2"; + $desc1 = "&é\"'(-è_çà)=´~#'#{{[\\\\[||`\^\^@^@}¹²¡×¿ ?./§µ%"; + $desc2 = "æâ€êþÿûîîôôöŀï'üð’‘ßä«≤»©»  ↓¿×÷¡¹²³"; + $time1 = time(); + $time2 = time()+200; + + $tagDesc1 = array('cdId'=>1, 'tag'=>'taghouse', 'cdDescription'=>$desc1, 'uId'=>$uId1,'cdDatetime'=>$time1); + $tagDesc2 = array('cdId'=>2, 'tag'=>'taghouse', 'cdDescription'=>$desc2, 'uId'=>$uId2,'cdDatetime'=>$time2); + + $cds->addTagDescription('taghouse', $desc1, $uId1, $time1); + $cds->addTagDescription('taghouse', $desc2, $uId2, $time2); + + $desc = $cds->getLastTagDescription('taghouse'); + $this->assertContains('taghouse', $desc); + $this->assertContains($desc2, $desc); + $this->assertContains(gmdate('Y-m-d H:i:s', $time2), $desc); + + $desc = $cds->getAllTagsDescription('taghouse'); + $this->assertContains($desc1, $desc[1]); + $this->assertContains(gmdate('Y-m-d H:i:s', $time1), $desc[1]); + $this->assertContains($desc2, $desc[0]); + $this->assertContains(gmdate('Y-m-d H:i:s', $time2), $desc[0]); + + $desc = $cds->getDescriptionById(1); + $this->assertContains($desc1, $desc); + + $bkDesc1 = array('cdId'=>3, 'bHash'=>'10', 'cdTitle'=>$title1, 'cdDescription'=>$desc1, 'uId'=>$uId1,'cdDatetime'=>$time1); + $bkDesc2 = array('cdId'=>4, 'bHash'=>'10', 'cdTitle'=>$title2, 'cdDescription'=>$desc2, 'uId'=>$uId2,'cdDatetime'=>$time2); + + $cds->addBookmarkDescription(10, $title1, $desc1, $uId1, $time1); + $cds->addBookmarkDescription(10, $title2, $desc2, $uId2, $time2); + + $desc = $cds->getLastBookmarkDescription(10); + $this->assertContains($title2, $desc); + $this->assertContains($desc2, $desc); + $this->assertContains(gmdate('Y-m-d H:i:s', $time2), $desc); + + $desc = $cds->getAllBookmarksDescription(10); + $this->assertContains($title1, $desc[1]); + $this->assertContains($desc1, $desc[1]); + $this->assertContains(gmdate('Y-m-d H:i:s', $time1), $desc[1]); + $this->assertContains($title2, $desc[0]); + $this->assertContains($desc2, $desc[0]); + $this->assertContains(gmdate('Y-m-d H:i:s', $time2), $desc[0]); + + $desc = $cds->getDescriptionById(3); + $this->assertContains($desc1, $desc); + + + } + +} +?> diff --git a/tests/SearchTest.php b/tests/SearchTest.php new file mode 100644 index 0000000..e03b4d9 --- /dev/null +++ b/tests/SearchTest.php @@ -0,0 +1,80 @@ +us =SemanticScuttle_Service_Factory::getServiceInstance('User'); + $this->bs =SemanticScuttle_Service_Factory::getServiceInstance('Bookmark'); + $this->bs->deleteAll(); + $this->b2ts =SemanticScuttle_Service_Factory::getServiceInstance('Bookmark2Tag'); + $this->b2ts->deleteAll(); + $this->tts =SemanticScuttle_Service_Factory::getServiceInstance('Tag2Tag'); + $this->tts->deleteAll(); + $this->tsts =SemanticScuttle_Service_Factory::getServiceInstance('TagStat'); + $this->tsts->deleteAll(); + $this->shs =SemanticScuttle_Service_Factory::getServiceInstance('SearchHistory'); + $this->shs->deleteAll(); + } + + 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)); + } +} +?> diff --git a/tests/Tag2TagTest.php b/tests/Tag2TagTest.php new file mode 100644 index 0000000..24c0ae1 --- /dev/null +++ b/tests/Tag2TagTest.php @@ -0,0 +1,485 @@ +us =SemanticScuttle_Service_Factory::getServiceInstance('User'); + $this->bs =SemanticScuttle_Service_Factory::getServiceInstance('Bookmark'); + $this->bs->deleteAll(); + $this->b2ts =SemanticScuttle_Service_Factory::getServiceInstance('Bookmark2Tag'); + $this->b2ts->deleteAll(); + $this->tts =SemanticScuttle_Service_Factory::getServiceInstance('Tag2Tag'); + $this->tts->deleteAll(); + $this->tsts =SemanticScuttle_Service_Factory::getServiceInstance('TagStat'); + $this->tsts->deleteAll(); + } + + public function testManipulateTag2TagRelationsOfInclusion() + { + $tts = $this->tts; + + $tts->addLinkedTags('a', 'b', '>', 1); + $tts->addLinkedTags('a', 'c', '>', 1); + $tts->addLinkedTags('a', 'd', '>', 20); + $tts->addLinkedTags('b', 'd', '>', 1); + $tts->addLinkedTags('d', 'e', '>', 1); + $tts->addLinkedTags('d', 'e', '>', 20); + $tts->addLinkedTags('f', 'g', '>', 20); + + // basic test + + + $links = $tts->getLinks(1); + $this->assertEquals(4, count($links)); + + $allLinkedTags = $tts->getAllLinkedTags('e', '>', 1); + $this->assertEquals(array(), $allLinkedTags); + + $allLinkedTags = $tts->getAllLinkedTags('d', '>', 1); + $this->assertEquals(array('e'), $allLinkedTags); + + $allLinkedTags = $tts->getAllLinkedTags('b', '>', 1); + $this->assertEquals(array('d', 'e'), $allLinkedTags); + $this->assertEquals(2, sizeof($allLinkedTags)); + $this->assertTrue(in_array('d', $allLinkedTags)); + $this->assertTrue(in_array('e', $allLinkedTags)); + + $allLinkedTags = $tts->getAllLinkedTags('a', '>', 1); + $this->assertEquals(4, sizeof($allLinkedTags)); + $this->assertTrue(in_array('b', $allLinkedTags)); + $this->assertTrue(in_array('c', $allLinkedTags)); + $this->assertTrue(in_array('d', $allLinkedTags)); + $this->assertTrue(in_array('e', $allLinkedTags)); + + + // warning: we add recursive link + $tts->addLinkedTags('b', 'a', '>', 1); + + $allLinkedTags = $tts->getAllLinkedTags('a', '>', 1); + $this->assertEquals(4, sizeof($allLinkedTags)); + //$this->assertTrue(in_array('a', $allLinkedTags)); + $this->assertTrue(in_array('b', $allLinkedTags)); + $this->assertTrue(in_array('c', $allLinkedTags)); + $this->assertTrue(in_array('d', $allLinkedTags)); + $this->assertTrue(in_array('e', $allLinkedTags)); + + $orphewTags = $tts->getOrphewTags('>', 1); + $this->assertEquals(0, sizeof($orphewTags)); + $orphewTags = $tts->getOrphewTags('>', 20); + $this->assertEquals(2, sizeof($orphewTags)); + $this->assertSame('a', $orphewTags[0]['tag']); + $this->assertSame('f', $orphewTags[1]['tag']); + $orphewTags = $tts->getOrphewTags('>'); + $this->assertEquals(1, sizeof($orphewTags)); + $this->assertSame('f', $orphewTags[0]['tag']); + + $linkedTags = $tts->getLinkedTags('a', '>'); + $this->assertSame(array('b', 'c', 'd'), $linkedTags); + $linkedTags = $tts->getLinkedTags('a', '>', 1); + $this->assertSame(array('b', 'c'), $linkedTags); + $tts->removeLinkedTags('a', 'b', '>', 1); + $linkedTags = $tts->getLinkedTags('a', '>', 1); + $this->assertSame(array('c'), $linkedTags); + $tts->removeLinkedTags('a', 'c', '>', 1); + $linkedTags = $tts->getLinkedTags('a', '>', 1); + $this->assertEquals(0, sizeof($linkedTags)); + } + + public function testManipulateTag2TagRelationsOfSynonym() + { + $tts = $this->tts; + + $tts->addLinkedTags('a', 'b', '>', 1); + $tts->addLinkedTags('b', 'c', '>', 1); + $tts->addLinkedTags('b', 'd', '=', 1); + $tts->addLinkedTags('d', 'e', '=', 1); + $tts->addLinkedTags('d', 'f', '=', 1); + $tts->addLinkedTags('e', 'g', '>', 1); + + $linkedTags = $tts->getLinkedTags('a', '>', 1); + $this->assertSame(array('b'), $linkedTags); + + $linkedTags = $tts->getLinkedTags('a', '=', 1); + $this->assertSame(array(), $linkedTags); + + $linkedTags = $tts->getLinkedTags('b', '=', 1); + $this->assertSame(array('d'), $linkedTags); + + $linkedTags = $tts->getLinkedTags('d', '=', 1); + $this->assertEquals(3, sizeof($linkedTags)); + $this->assertTrue(in_array('b', $linkedTags)); // '=' is bijective + $this->assertTrue(in_array('e', $linkedTags)); + $this->assertTrue(in_array('f', $linkedTags)); + + $linkedTags = $tts->getLinkedTags('f', '=', 1); + $this->assertEquals(1, sizeof($linkedTags)); + $this->assertTrue(in_array('d', $linkedTags)); // '=' is bijective + + // test allLinkTags (with inference) + $allLinkedTags = $tts->getAllLinkedTags('a', '=', 1); + $this->assertEquals(0, sizeof($allLinkedTags)); + + $allLinkedTags = $tts->getAllLinkedTags('b', '=', 1); + $this->assertEquals(3, sizeof($allLinkedTags)); + $this->assertTrue(in_array('d', $allLinkedTags)); + $this->assertTrue(in_array('e', $allLinkedTags)); + $this->assertTrue(in_array('f', $allLinkedTags)); + + $allLinkedTags = $tts->getAllLinkedTags('f', '>', 1); + $this->assertEquals(5, sizeof($allLinkedTags)); + $this->assertTrue(in_array('b', $allLinkedTags)); + $this->assertTrue(in_array('d', $allLinkedTags)); + $this->assertTrue(in_array('e', $allLinkedTags)); + $this->assertTrue(in_array('c', $allLinkedTags)); + $this->assertTrue(in_array('g', $allLinkedTags)); + + $allLinkedTags = $tts->getAllLinkedTags('a', '>', 1); + $this->assertEquals(6, sizeof($allLinkedTags)); + $this->assertTrue(in_array('b', $allLinkedTags)); + $this->assertTrue(in_array('c', $allLinkedTags)); + $this->assertTrue(in_array('d', $allLinkedTags)); + $this->assertTrue(in_array('e', $allLinkedTags)); + $this->assertTrue(in_array('f', $allLinkedTags)); + $this->assertTrue(in_array('g', $allLinkedTags)); + + $tts->addLinkedTags('g', 'h', '>', 1); + $tts->addLinkedTags('i', 'h', '=', 1); + $tts->addLinkedTags('j', 'f', '>', 1); + + $allLinkedTags = $tts->getAllLinkedTags('j', '>', 1); + $this->assertEquals(8, sizeof($allLinkedTags)); + $this->assertTrue(in_array('b', $allLinkedTags)); + $this->assertTrue(in_array('c', $allLinkedTags)); + $this->assertTrue(in_array('d', $allLinkedTags)); + $this->assertTrue(in_array('e', $allLinkedTags)); + $this->assertTrue(in_array('f', $allLinkedTags)); + $this->assertTrue(in_array('g', $allLinkedTags)); + $this->assertTrue(in_array('h', $allLinkedTags)); + $this->assertTrue(in_array('i', $allLinkedTags)); + + // complex case: test cycle + $tts->addLinkedTags('g', 'a', '>', 1); + $allLinkedTags = $tts->getAllLinkedTags('b', '>', 1); + $this->assertEquals(8, sizeof($allLinkedTags)); + $this->assertTrue(in_array('a', $allLinkedTags)); + $this->assertTrue(in_array('c', $allLinkedTags)); + $this->assertTrue(in_array('d', $allLinkedTags)); + $this->assertTrue(in_array('e', $allLinkedTags)); + $this->assertTrue(in_array('f', $allLinkedTags)); + $this->assertTrue(in_array('g', $allLinkedTags)); + $this->assertTrue(in_array('h', $allLinkedTags)); + $this->assertTrue(in_array('i', $allLinkedTags)); + + } + + // Test function that select the best tags to display? + public function testViewTag2TagRelations() + { + $tts = $this->tts; + + $tts->addLinkedTags('a', 'b', '>', 1); + $tts->addLinkedTags('c', 'd', '>', 1); + $tts->addLinkedTags('d', 'e', '>', 1); + $tts->addLinkedTags('f', 'g', '>', 1); + $tts->addLinkedTags('f', 'h', '>', 1); + $tts->addLinkedTags('f', 'i', '>', 1); + + $orphewTags = $tts->getOrphewTags('>', 1); + $this->assertEquals(3, sizeof($orphewTags)); + $this->assertSame('a', $orphewTags[0]['tag']); + $this->assertSame('c', $orphewTags[1]['tag']); + $this->assertSame('f', $orphewTags[2]['tag']); + + // with limit + $orphewTags = $tts->getOrphewTags('>', 1, 2); + $this->assertEquals(2, sizeof($orphewTags)); + $this->assertSame('a', $orphewTags[0]['tag']); + $this->assertSame('c', $orphewTags[1]['tag']); + + // with sorting + $orphewTags = $tts->getOrphewTags('>', 1, 2, 'nb'); // nb descendants + $this->assertEquals(2, sizeof($orphewTags)); + $this->assertSame('f', $orphewTags[0]['tag']); + $this->assertSame('c', $orphewTags[1]['tag']); + + $orphewTags = $tts->getOrphewTags('>', 1, 1, 'depth'); + $this->assertEquals(1, sizeof($orphewTags)); + $this->assertSame('c', $orphewTags[0]['tag']); + + $orphewTags = $tts->getOrphewTags('>', 1, null, 'nbupdate'); + $this->assertEquals(3, sizeof($orphewTags)); + $this->assertSame('f', $orphewTags[0]['tag']); + $this->assertSame('c', $orphewTags[1]['tag']); + $this->assertSame('a', $orphewTags[2]['tag']); + + } + + public function testAddLinkedTagsThroughBookmarking() + { + $bs = $this->bs; + $tags = array('a>b', 'b>c', 'a>d>e', 'a>a', 'a', 'r=s', 's=t=u'); + $bs->addBookmark("http://google.com", "title", "description", "status", $tags, null, false, false, 1); + $bookmark = $bs->getBookmarkByAddress("http://google.com"); + + $b2ts = $this->b2ts; + $savedTags = $b2ts->getTagsForBookmark(intval($bookmark['bId'])); + $this->assertEquals(6, sizeof($savedTags)); + $this->assertContains('b', $savedTags); + $this->assertContains('c', $savedTags); + $this->assertContains('e', $savedTags); + $this->assertContains('a', $savedTags); + $this->assertContains('r', $savedTags); + $this->assertContains('s', $savedTags); + + $tts = $this->tts; + $linkedTags = $tts->getLinkedTags('a', '>', 1); + $this->assertEquals(2, sizeof($linkedTags)); + $this->assertSame('b', $linkedTags[0]['tag']); + $this->assertSame('d', $linkedTags[1]['tag']); + $linkedTags = $tts->getLinkedTags('b', '>', 1); + $this->assertEquals(1, sizeof($linkedTags)); + $this->assertSame('c', $linkedTags[0]['tag']); + $this->assertTrue($tts->existsLinkedTags('d', 'e', '>', 1)); + $this->assertFalse($tts->existsLinkedTags('e', 'd', '>', 1)); + } + + public function testSearchThroughLinkedTags() + { + $tts = $this->tts; + $bs = $this->bs; + + $tts->addLinkedTags('aa', 'bb', '>', 1); + + $tags = array('aa>bb>cc', 'dd'); + $bs->addBookmark("web1.com", "B1", "description", "status", $tags, null, false, false, 1); + $tags = array('bb>gg', 'ee>ff'); + $bs->addBookmark("web2.com", "B2", "description", "status", $tags, null, false, false, 1); + $tags = array('ee=ii'); + $bs->addBookmark("web3.com", "B3", "description", "status", $tags, null, false, false, 1); + + // Query format: + // $bs->getBookmarks($start = 0, $perpage = NULL, $user = NULL, $tags = NULL, $terms = NULL, $sortOrder = NULL, $watched = NULL, $startdate = NULL, $enddate = NULL, $hash = NULL); + + // basic queries + $results = $bs->getBookmarks(0, NULL, 1, 'dd'); + $this->assertSame(1, intval($results['total'])); + $this->assertSame('B1', $results['bookmarks'][0]['bTitle']); + + $results = $bs->getBookmarks(0, NULL, 1, 'cc'); + $this->assertSame(1, intval($results['total'])); + $this->assertSame('B1', $results['bookmarks'][0]['bTitle']); + + //advanced queries + $results = $bs->getBookmarks(0, NULL, 1, 'aa'); + $this->assertSame(2, intval($results['total'])); + $this->assertSame('B1', $results['bookmarks'][0]['bTitle']); + $this->assertSame('B2', $results['bookmarks'][1]['bTitle']); + + $results = $bs->getBookmarks(0, NULL, 1, 'ee'); + $this->assertSame(2, intval($results['total'])); + $this->assertSame('B2', $results['bookmarks'][1]['bTitle']); + $this->assertSame('B3', $results['bookmarks'][0]['bTitle']); + + $results = $bs->getBookmarks(0, NULL, 1, 'ii'); + $this->assertSame(2, intval($results['total'])); + $this->assertSame('B2', $results['bookmarks'][1]['bTitle']); + $this->assertSame('B3', $results['bookmarks'][0]['bTitle']); + + $results = $bs->getBookmarks(0, NULL, 1, 'aa+ee'); + $this->assertSame(1, intval($results['total'])); + $this->assertSame('B2', $results['bookmarks'][0]['bTitle']); + + } + + public function testStatsBetweenTags() + { + $tsts = $this->tsts; + $tts = $this->tts; + + // basic functions + $this->assertFalse($tsts->existStat('a', '>', 10)); + $tsts->setNbDescendants('a', '>', 10, 2); + $this->assertSame(2, $tsts->getNbDescendants('a', '>', 10)); + $tsts->setMaxDepth('a', '>', 10, 3); + $this->assertSame(3, $tsts->getMaxDepth('a', '>', 10)); + $this->assertTrue($tsts->existStat('a', '>', 10)); + $this->assertFalse($tsts->existStat('a', '>', 20)); + $tsts->increaseNbUpdate('a', '>', 10); + $this->assertSame(1, $tsts->getNbUpdates('a', '>', 10)); + + $tsts->deleteAll(); + + // no structure + $nbC = $tsts->getNbChildren('a', '>', 1); + $nbD = $tsts->getNbDescendants('a', '>', 1); + $maxDepth = $tsts->getMaxDepth('a', '>', 1); + $this->assertSame(0, $nbC); + $this->assertSame(0, $nbD); + $this->assertSame(0, $maxDepth); + + // simple case + $tts->addLinkedTags('b', 'c', '>', 1); + $tts->addLinkedTags('a', 'd', '>', 1); + $tts->addLinkedTags('a', 'b', '>', 1); + $tts->addLinkedTags('b', 'e', '>', 1); + + $this->assertSame(3, $tsts->getNbUpdates('a', '>', '1')); + $this->assertSame(2, $tsts->getNbUpdates('b', '>', '1')); + $this->assertSame(0, $tsts->getNbUpdates('c', '>', '1')); + $this->assertSame(0, $tsts->getNbUpdates('d', '>', '1')); + $this->assertSame(0, $tsts->getNbUpdates('e', '>', '1')); + + + $nbC = $tsts->getNbChildren('a', '>', 1); + $nbD = $tsts->getNbDescendants('a', '>', 1); + $maxDepth = $tsts->getMaxDepth('a', '>', 1); + $this->assertSame(2, $nbC); + $this->assertSame(4, $nbD); + $this->assertSame(2, $maxDepth); + + $nbC = $tsts->getNbChildren('b', '>', 1); + $nbD = $tsts->getNbDescendants('b', '>', 1); + $maxDepth = $tsts->getMaxDepth('b', '>', 1); + $this->assertSame(2, $nbC); + $this->assertSame(2, $nbD); + $this->assertSame(1, $maxDepth); + + $nbC = $tsts->getNbChildren('c', '>', 1); + $nbD = $tsts->getNbDescendants('c', '>', 1); + $maxDepth = $tsts->getMaxDepth('c', '>', 1); + $this->assertSame(0, $nbC); + $this->assertSame(0, $nbD); + $this->assertSame(0, $maxDepth); + + $nbC = $tsts->getNbChildren('d', '>', 1); + $nbD = $tsts->getNbDescendants('d', '>', 1); + $maxDepth = $tsts->getMaxDepth('d', '>', 1); + $this->assertSame(0, $nbC); + $this->assertSame(0, $nbD); + $this->assertSame(0, $maxDepth); + + // deletion + $tts->removeLinkedTags('b', 'e', '>', 1); + + $nbC = $tsts->getNbChildren('b', '>', 1); + $nbD = $tsts->getNbDescendants('b', '>', 1); + $maxDepth = $tsts->getMaxDepth('b', '>', 1); + $this->assertSame(1, $nbC); + $this->assertSame(1, $nbD); + $this->assertSame(1, $maxDepth); + + $nbC = $tsts->getNbChildren('a', '>', 1); + $nbD = $tsts->getNbDescendants('a', '>', 1); + $maxDepth = $tsts->getMaxDepth('a', '>', 1); + $this->assertSame(2, $nbC); + $this->assertSame(3, $nbD); + $this->assertSame(2, $maxDepth); + + //do cases for synonyms + + $this->markTestSkipped('Check stats'); + + $tsts->deleteAll(); + $tts->deleteAll(); + + $tts->addLinkedTags('a', 'b', '>', 1); + $tts->addLinkedTags('b', 'c', '=', 1); + /*$tts->addLinkedTags('a', 'c', '>', 1); + $tts->addLinkedTags('j', 'i', '=', 1); + $tts->addLinkedTags('f', 'i', '=', 1); + $tts->addLinkedTags('d', 'f', '>', 1); + $tts->addLinkedTags('d', 'e', '>', 1); + $tts->addLinkedTags('j', 'k', '>', 1);*/ + + $nbC = $tsts->getNbChildren('a', '>', 1); + $nbD = $tsts->getNbDescendants('a', '>', 1); + $nbU = $tsts->getNbUpdates('a', '>', 1); + $maxDepth = $tsts->getMaxDepth('a', '>', 1); + //$this->assertSame(2, $tts->getLinkedTags('a', '>', 1)); + $this->assertSame(1, $nbC); + //$this->assertSame(2, $nbD); + $this->assertSame(2, $nbU); + $this->assertSame(1, $maxDepth); + + // advanced case with fore loop + //$tts->addLinkedTags('d', 'c', '>', 1); + + // advanced case with back loop + //$tts->addLinkedTags('e', 'a', '>', 1); + } + + public function testRenameFunction() + { + $tts = $this->tts; + $b2ts = $this->b2ts; + $bs = $this->bs; + $tsts = $this->tsts; + + // with classic tags (users 10 & 20) + $bs->addBookmark("http://site1.com", "title", "description", "status", array('tag1', 'tag11', 'tag111'), null, false, false, 1); + $bs->addBookmark("http://site1.com", "title2", "description2", "status", array('tag2', 'tag22', 'tag222'), null, false, false, 2); + + $bookmarks =& $bs->getBookmarks(0, 1, NULL, NULL, NULL, getSortOrder(), NULL, 0, $dtend); + $this->assertEquals(1, $bookmarks['total']); + + $b2ts->renameTag(1, 'tag1', 'newtag1'); + $tags1 = $b2ts->getTagsForBookmark(1); + $this->assertSame(array('newtag1', 'tag11', 'tag111'), $tags1); + $tags1 = $b2ts->getTagsForBookmark(2); + $this->assertSame(array('tag2', 'tag22', 'tag222'), $tags1); //should not be changed + + + // with linked tags + + $tts->addLinkedTags('b', 'c', '>', 1); + $tts->addLinkedTags('a', 'b', '>', 1); + $tts->addLinkedTags('b', 'a', '>', 2); // should not be modified because of userid + + $tts->renameTag(1, 'b', 'e'); + $linkedTags = $tts->getLinkedTags('e', '>', 1); + $this->assertSame(array('c'), $linkedTags); + $linkedTags = $tts->getLinkedTags('a', '>', 1); + $this->assertSame(array('e'), $linkedTags); + $linkedTags = $tts->getLinkedTags('b', '>', 2); + $this->assertSame(array('a'), $linkedTags); + + //with stats + + } + + // Cannot be test because the function use GLOBALS variables + // not taken into account by tests + /*public function testMenuTags() + { + $tts = $this->tts; + $bs = $this->bs; + + $bs->addBookmark("http://site1.com", "title", "description", "status", array('menu>tag1'), null, false, false, 1); + $bs->addBookmark("http://site1.com", "title2", "description2", "status", array('menu>tag2>tag3'), null, false, false, 1); + $bs->addBookmark("http://site1.com", "title3", "description3", "status", array('menu>tag1', 'menu>tag4'), null, false, false, 2); + + $menuTags = $tts->getMenuTags($uId); + $this->assertEquals(3, sizeof($menuTags)); + $this->assertContains('tag1', $menuTags); + $this->assertContains('tag2', $menuTags); + $this->assertContains('tag4', $menuTags); + + }*/ +} +?> diff --git a/tests/TagsCacheTest.php b/tests/TagsCacheTest.php new file mode 100644 index 0000000..f401ab6 --- /dev/null +++ b/tests/TagsCacheTest.php @@ -0,0 +1,176 @@ +us =SemanticScuttle_Service_Factory::getServiceInstance('User'); + $this->bs =SemanticScuttle_Service_Factory::getServiceInstance('Bookmark'); + $this->bs->deleteAll(); + $this->b2ts =SemanticScuttle_Service_Factory::getServiceInstance('Bookmark2Tag'); + $this->b2ts->deleteAll(); + $this->tts =SemanticScuttle_Service_Factory::getServiceInstance('Tag2Tag'); + $this->tts->deleteAll(); + $this->tsts =SemanticScuttle_Service_Factory::getServiceInstance('TagStat'); + $this->tsts->deleteAll(); + $this->tcs =SemanticScuttle_Service_Factory::getServiceInstance('TagCache'); + $this->tcs->deleteAll(); + } + + public function testInclusionAllowsToAddAndDeleteChildrenTags() { + //message_die(GENERAL_ERROR, $GLOBALS['dbname'].'1'); + + $tts = $this->tts; + $tcs = $this->tcs; + + // test adding children + $tcs->addChild('a', 'b', 1); + $tcs->addChild('a', 'c', 1); + $this->assertEquals(array('b','c'), $tcs->getChildren('a', 1)); + + // test adding a same child + $tcs->addChild('a', 'b', 1); + $this->assertEquals(array('b','c'), $tcs->getChildren('a', 1)); + + // test removing a child + $tcs->removeChild('a', 'b', 1); + $this->assertEquals(array('c'), $tcs->getChildren('a', 1)); + + // test removing a same child + $tcs->removeChild('a', 'b', 1); + $this->assertEquals(array('c'), $tcs->getChildren('a', 1)); + + // test existing child + $this->assertTrue($tcs->existsChild('a', 'c', 1)); + $this->assertTrue(!$tcs->existsChild('a', 'c', 2)); // wrong user + $this->assertTrue(!$tcs->existsChild('a', 'b', 1)); // wrong child + + // test removing several children + $tcs->addChild('e', 'f', 1); + $tcs->addChild('e', 'g', 1); + $tcs->addChild('e', 'h', 1); + $tcs->removeChild('e', NULL, 1); + + $this->assertTrue(!$tcs->existsChild('e', 'f', 1)); + $this->assertTrue(!$tcs->existsChild('e', 'g', 1)); + $this->assertTrue(!$tcs->existsChild('e', 'h', 1)); + + } + + public function testInclusionCacheIsUpdatedWhenATag2TagLinkIsCreatedOrRemoved() { + $tts = $this->tts; + $tcs = $this->tcs; + + // test inclusion without possible errors + $tts->addLinkedTags('a', 'b', '>', 1); + $tts->addLinkedTags('b', 'c', '>', 1); + $tts->addLinkedTags('c', 'd', '>', 1); + $tts->addLinkedTags('e', 'f', '>', 1); + $tts->addLinkedTags('b', 'e', '>', 1); + + $this->assertSame(array('b','c','d','e','f'), $tts->getAllLinkedTags('a', '>', 1)); + $this->assertSame(array('c','d','e','f'), $tts->getAllLinkedTags('b', '>', 1)); + + // test inclusion with deletion + $tts->removeLinkedTags('b', 'c', '>', 1); + $this->assertSame(array('b','e','f'), $tts->getAllLinkedTags('a', '>', 1)); + $this->assertSame(array('e','f'), $tts->getAllLinkedTags('b', '>', 1)); + $this->assertSame(array('d'), $tts->getAllLinkedTags('c', '>', 1)); + $this->assertSame(array('f'), $tts->getAllLinkedTags('e', '>', 1)); + + } + + public function testInclusionResistsToTagCycles() { + $tts = $this->tts; + $tcs = $this->tcs; + + $tts->addLinkedTags('a', 'b', '>', 1); + $tts->addLinkedTags('b', 'c', '>', 1); + $tts->addLinkedTags('c', 'a', '>', 1); // creates cycle a>c>a + + $this->assertSame(array('b','c'), $tts->getAllLinkedTags('a', '>', 1)); + $this->assertSame(array('c', 'a'), $tts->getAllLinkedTags('b', '>', 1)); + $this->assertSame(array('a', 'b'), $tts->getAllLinkedTags('c', '>', 1)); + } + + public function testSynonymyAllowsToAddAndDeleteSynonyms() { + $tts = $this->tts; + $tcs = $this->tcs; + + // simple synonymy + $tcs->addSynonym('a', 'b', 1); + $tcs->addSynonym('a', 'c', 1); + + $this->assertEquals(array('b', 'c'), $tcs->getSynonyms('a', 1)); + $this->assertEquals(array('c', 'a'), $tcs->getSynonyms('b', 1)); + $this->assertEquals(array('b', 'a'), $tcs->getSynonyms('c', 1)); + + //more advanced one 1 + $tcs->deleteByUser(1); + $tcs->addSynonym('a', 'b', 1); + $tcs->addSynonym('a', 'c', 1); + $tcs->addSynonym('d', 'e', 1); + $tcs->addSynonym('a', 'e', 1); + $this->assertEquals(array('b', 'c', 'e', 'd'), $tcs->getSynonyms('a', 1)); + + //more advanced one 2 + $tcs->deleteByUser(1); + $tcs->addSynonym('a', 'b', 1); + $tcs->addSynonym('a', 'c', 1); + $tcs->addSynonym('d', 'e', 1); + $tcs->addSynonym('a', 'd', 1); + $this->assertEquals(array('b', 'c', 'd', 'e'), $tcs->getSynonyms('a', 1)); + + //with Linked tags + $tcs->deleteByUser(1); + $tts->addLinkedTags('a', 'b', '=', 1); + $tts->addLinkedTags('c', 'd', '=', 1); + $tts->addLinkedTags('c', 'e', '=', 1); + $tts->addLinkedTags('e', 'a', '=', 1); + $this->assertEquals(array('b', 'e', 'c', 'd'), $tts->getAllLinkedTags('a', '=', 1)); + + } + + public function testInclusionTakesSynonymsIntoAccount() { + $tts = $this->tts; + $tcs = $this->tcs; + + $tts->addLinkedTags('a', 'b', '>', 1); + $tts->addLinkedTags('b', 'c', '>', 1); + $tts->addLinkedTags('d', 'e', '>', 1); + $tts->addLinkedTags('c', 'd', '=', 1); + + // results are put into cache + $this->assertEquals(array('b', 'c', 'd', 'e'), $tts->getAllLinkedTags('a', '>', 1)); + $this->assertEquals(array('d', 'e'), $tts->getAllLinkedTags('c', '>', 1)); + + // same results must be taken out from cache + $this->assertEquals(array('b', 'c', 'd', 'e'), $tts->getAllLinkedTags('a', '>', 1)); + $this->assertEquals(array('d', 'e'), $tts->getAllLinkedTags('c', '>', 1)); + + // check that result comes from cache (artificial changes in cache must appear in result) + $tcs->removeChild('a', 'e', 1); + $this->assertEquals(array('b', 'c', 'd'), $tts->getAllLinkedTags('a', '>', 1)); + + //cache must be deleted for user when links are modified + $tts->addLinkedTags('a', 'f', '=', 1); + $this->assertEquals(array(), $tcs->getChildren('a', 1)); + $this->assertEquals(array(), $tcs->getSynonyms('d', 1)); + } +} +?> diff --git a/tests/TagsTest.php b/tests/TagsTest.php new file mode 100644 index 0000000..bb904e1 --- /dev/null +++ b/tests/TagsTest.php @@ -0,0 +1,76 @@ +ts =SemanticScuttle_Service_Factory::getServiceInstance('Tag'); + $this->ts->deleteAll(); + $this->us =SemanticScuttle_Service_Factory::getServiceInstance('User'); + $this->bs =SemanticScuttle_Service_Factory::getServiceInstance('Bookmark'); + $this->bs->deleteAll(); + $this->b2ts =SemanticScuttle_Service_Factory::getServiceInstance('Bookmark2Tag'); + $this->b2ts->deleteAll(); + $this->tts =SemanticScuttle_Service_Factory::getServiceInstance('Tag2Tag'); + $this->tts->deleteAll(); + $this->tsts =SemanticScuttle_Service_Factory::getServiceInstance('TagStat'); + $this->tsts->deleteAll(); + } + + public function testTagDescriptions() + { + $ts = $this->ts; + + $desc = $ts->getAllDescriptions('tag1'); + $this->assertSame(array(), $desc); + + $desc = $ts->getDescription('tag1', 1); // user 1 + $this->assertSame(array('tDescription'=>''), $desc); + + $desc1 = "test description"; + $ts->updateDescription('tag1', 1, $desc1); // first desc + $desc = $ts->getDescription('tag1', 1); + $this->assertEquals(array('tag'=>'tag1', 'uId'=>1, 'tDescription'=>$desc1), $desc); + + $desc1 = "&é\"'(-è_çà)=´~#'#{{[\\\\[||`\^\^@^@}¹²¡×¿ ?./§µ%"; + $ts->updateDescription('tag1', 1, $desc1); // update desc + $desc = $ts->getDescription('tag1', 1); + $this->assertEquals(array('tag'=>'tag1', 'uId'=>1, 'tDescription'=>$desc1), $desc); + + $desc2 = "æâ€êþÿûîîôôöŀï'üð’‘ßä«≤»©»  ↓¿×÷¡¹²³"; + $ts->updateDescription('tag1', 2, $desc2); // user 2 + $desc = $ts->getDescription('tag1', 2); + $this->assertEquals(array('tag'=>'tag1', 'uId'=>2, 'tDescription'=>$desc2), $desc); + + $desc = $ts->getAllDescriptions('tag1'); + $this->assertEquals($desc, array(array('tag'=>'tag1', 'uId'=>1, 'tDescription'=>$desc1), array('tag'=>'tag1', 'uId'=>2, 'tDescription'=>$desc2))); + + } + + public function testRenameFunction() + { + $ts = $this->ts; + + $ts->updateDescription('tag1', 10, 'xxx'); + $ts->renameTag(10, 'tag1', 'tag2'); + $desc = $ts->getDescription('tag1', 10); + $this->assertSame(array('tDescription'=>''), $desc); + $desc = $ts->getDescription('tag2', 10); + $this->assertEquals(array('tag'=>'tag2', 'uId'=>10, 'tDescription'=>'xxx'), $desc); + + } + +} +?> diff --git a/tests/allTests.php b/tests/allTests.php deleted file mode 100644 index 843911c..0000000 --- a/tests/allTests.php +++ /dev/null @@ -1,39 +0,0 @@ -addTestFile('tests/bookmarksTest.php'); - $suite->addTestFile('tests/tag2TagTest.php'); - $suite->addTestFile('tests/tagsCacheTest.php'); - $suite->addTestFile('tests/commonDescriptionTest.php'); - $suite->addTestFile('tests/searchTest.php'); - $suite->addTestFile('tests/tagsTest.php'); - return $suite; - } - - protected function setUp() - { - global $dbhost, $dbuser, $dbpass, $dbname, $dbport, $dbpersist, $dbtype, $tableprefix, $TEMPLATES_DIR, $filetypes, $debugMode; - require_once('./header.inc.php'); - } - - protected function tearDown() - { - } -} -?> \ No newline at end of file diff --git a/tests/bookmarksTest.php b/tests/bookmarksTest.php deleted file mode 100644 index 3bff35d..0000000 --- a/tests/bookmarksTest.php +++ /dev/null @@ -1,75 +0,0 @@ -us =SemanticScuttle_Service_Factory::getServiceInstance('User'); - $this->bs =SemanticScuttle_Service_Factory::getServiceInstance('Bookmark'); - $this->bs->deleteAll(); - $this->b2ts=SemanticScuttle_Service_Factory::getServiceInstance('Bookmark2Tag'); - $this->b2ts->deleteAll(); - $this->tts =SemanticScuttle_Service_Factory::getServiceInstance('Tag2Tag'); - $this->tts->deleteAll(); - $this->tsts =SemanticScuttle_Service_Factory::getServiceInstance('TagStat'); - $this->tsts->deleteAll(); - } - - public function testHardCharactersInBookmarks() - { - $bs = $this->bs; - $title = "title&é\"'(-è_çà)="; - $desc = "description#{[|`\^@]}³<> ¹¡÷׿&é\"'(-è\\_çà)="; - $tag1 = "#{|`^@]³¹¡¿<&é\"'(-è\\_çà)"; - $tag2 = "&é\"'(-è.[?./§!_çà)"; - - $bs->addBookmark("http://site1.com", $title, $desc, "status", array($tag1, $tag2), null, false, false, 1); - - $bookmarks =& $bs->getBookmarks(0, 1, NULL, NULL, NULL, getSortOrder(), NULL, 0); - - $b0 = $bookmarks['bookmarks'][0]; - $this->assertEquals($title, $b0['bTitle']); - $this->assertEquals($desc, $b0['bDescription']); - $this->assertEquals(str_replace(array('"', '\'', '/'), "_", $tag1), $b0['tags'][0]); - $this->assertEquals(str_replace(array('"', '\'', '/'), "_", $tag2), $b0['tags'][1]); - } - - public function testUnificationOfBookmarks() - { - $bs = $this->bs; - - $bs->addBookmark("http://site1.com", "title", "description", "status", array('tag1'), null, false, false, 1); - $bs->addBookmark("http://site1.com", "title2", "description2", "status", array('tag2'), null, false, false, 2); - - $bookmarks =& $bs->getBookmarks(0, 1, NULL, NULL, NULL, getSortOrder(), NULL, 0); - $this->assertEquals(1, $bookmarks['total']); - } - - /*public function testSearchingBookmarksAccentsInsensible() - { - $bs = $this->bs; - - $bs->addBookmark("http://site1.com", "title", "éèüaàê", "status", array('tag1'), null, false, false, 1); - $bookmarks =& $bs->getBookmarks(0, NULL, NULL, NULL, $terms = "eeaae"); //void - $this->assertEquals(0, $bookmarks['total']); - $bookmarks =& $bs->getBookmarks(0, NULL, NULL, NULL, $terms = "eeuaae"); - $this->assertEquals(1, $bookmarks['total']); - }*/ - -} -?> diff --git a/tests/commonDescriptionTest.php b/tests/commonDescriptionTest.php deleted file mode 100644 index f73b646..0000000 --- a/tests/commonDescriptionTest.php +++ /dev/null @@ -1,96 +0,0 @@ -us =SemanticScuttle_Service_Factory::getServiceInstance('User'); - $this->bs =SemanticScuttle_Service_Factory::getServiceInstance('Bookmark'); - $this->bs->deleteAll(); - $this->b2ts =SemanticScuttle_Service_Factory::getServiceInstance('Bookmark2Tag'); - $this->b2ts->deleteAll(); - $this->tts =SemanticScuttle_Service_Factory::getServiceInstance('Tag2Tag'); - $this->tts->deleteAll(); - $this->tsts =SemanticScuttle_Service_Factory::getServiceInstance('TagStat'); - $this->tsts->deleteAll(); - $this->cds =SemanticScuttle_Service_Factory::getServiceInstance('CommonDescription'); - $this->cds->deleteAll(); - } - - public function testModifyDescription() - { - $cds = $this->cds; - - $uId1 = 1; - $uId2 = 2; - $title1 = "title1"; - $title2 = "title2"; - $desc1 = "&é\"'(-è_çà)=´~#'#{{[\\\\[||`\^\^@^@}¹²¡×¿ ?./§µ%"; - $desc2 = "æâ€êþÿûîîôôöŀï'üð’‘ßä«≤»©»  ↓¿×÷¡¹²³"; - $time1 = time(); - $time2 = time()+200; - - $tagDesc1 = array('cdId'=>1, 'tag'=>'taghouse', 'cdDescription'=>$desc1, 'uId'=>$uId1,'cdDatetime'=>$time1); - $tagDesc2 = array('cdId'=>2, 'tag'=>'taghouse', 'cdDescription'=>$desc2, 'uId'=>$uId2,'cdDatetime'=>$time2); - - $cds->addTagDescription('taghouse', $desc1, $uId1, $time1); - $cds->addTagDescription('taghouse', $desc2, $uId2, $time2); - - $desc = $cds->getLastTagDescription('taghouse'); - $this->assertContains('taghouse', $desc); - $this->assertContains($desc2, $desc); - $this->assertContains(gmdate('Y-m-d H:i:s', $time2), $desc); - - $desc = $cds->getAllTagsDescription('taghouse'); - $this->assertContains($desc1, $desc[1]); - $this->assertContains(gmdate('Y-m-d H:i:s', $time1), $desc[1]); - $this->assertContains($desc2, $desc[0]); - $this->assertContains(gmdate('Y-m-d H:i:s', $time2), $desc[0]); - - $desc = $cds->getDescriptionById(1); - $this->assertContains($desc1, $desc); - - $bkDesc1 = array('cdId'=>3, 'bHash'=>'10', 'cdTitle'=>$title1, 'cdDescription'=>$desc1, 'uId'=>$uId1,'cdDatetime'=>$time1); - $bkDesc2 = array('cdId'=>4, 'bHash'=>'10', 'cdTitle'=>$title2, 'cdDescription'=>$desc2, 'uId'=>$uId2,'cdDatetime'=>$time2); - - $cds->addBookmarkDescription(10, $title1, $desc1, $uId1, $time1); - $cds->addBookmarkDescription(10, $title2, $desc2, $uId2, $time2); - - $desc = $cds->getLastBookmarkDescription(10); - $this->assertContains($title2, $desc); - $this->assertContains($desc2, $desc); - $this->assertContains(gmdate('Y-m-d H:i:s', $time2), $desc); - - $desc = $cds->getAllBookmarksDescription(10); - $this->assertContains($title1, $desc[1]); - $this->assertContains($desc1, $desc[1]); - $this->assertContains(gmdate('Y-m-d H:i:s', $time1), $desc[1]); - $this->assertContains($title2, $desc[0]); - $this->assertContains($desc2, $desc[0]); - $this->assertContains(gmdate('Y-m-d H:i:s', $time2), $desc[0]); - - $desc = $cds->getDescriptionById(3); - $this->assertContains($desc1, $desc); - - - } - -} -?> diff --git a/tests/searchTest.php b/tests/searchTest.php deleted file mode 100644 index 1dce7dc..0000000 --- a/tests/searchTest.php +++ /dev/null @@ -1,80 +0,0 @@ -us =SemanticScuttle_Service_Factory::getServiceInstance('User'); - $this->bs =SemanticScuttle_Service_Factory::getServiceInstance('Bookmark'); - $this->bs->deleteAll(); - $this->b2ts =SemanticScuttle_Service_Factory::getServiceInstance('Bookmark2Tag'); - $this->b2ts->deleteAll(); - $this->tts =SemanticScuttle_Service_Factory::getServiceInstance('Tag2Tag'); - $this->tts->deleteAll(); - $this->tsts =SemanticScuttle_Service_Factory::getServiceInstance('TagStat'); - $this->tsts->deleteAll(); - $this->shs =SemanticScuttle_Service_Factory::getServiceInstance('SearchHistory'); - $this->shs->deleteAll(); - } - - 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)); - } -} -?> diff --git a/tests/tag2TagTest.php b/tests/tag2TagTest.php deleted file mode 100644 index ab3114c..0000000 --- a/tests/tag2TagTest.php +++ /dev/null @@ -1,485 +0,0 @@ -us =SemanticScuttle_Service_Factory::getServiceInstance('User'); - $this->bs =SemanticScuttle_Service_Factory::getServiceInstance('Bookmark'); - $this->bs->deleteAll(); - $this->b2ts =SemanticScuttle_Service_Factory::getServiceInstance('Bookmark2Tag'); - $this->b2ts->deleteAll(); - $this->tts =SemanticScuttle_Service_Factory::getServiceInstance('Tag2Tag'); - $this->tts->deleteAll(); - $this->tsts =SemanticScuttle_Service_Factory::getServiceInstance('TagStat'); - $this->tsts->deleteAll(); - } - - public function testManipulateTag2TagRelationsOfInclusion() - { - $tts = $this->tts; - - $tts->addLinkedTags('a', 'b', '>', 1); - $tts->addLinkedTags('a', 'c', '>', 1); - $tts->addLinkedTags('a', 'd', '>', 20); - $tts->addLinkedTags('b', 'd', '>', 1); - $tts->addLinkedTags('d', 'e', '>', 1); - $tts->addLinkedTags('d', 'e', '>', 20); - $tts->addLinkedTags('f', 'g', '>', 20); - - // basic test - - - $links = $tts->getLinks(1); - $this->assertEquals(4, count($links)); - - $allLinkedTags = $tts->getAllLinkedTags('e', '>', 1); - $this->assertEquals(array(), $allLinkedTags); - - $allLinkedTags = $tts->getAllLinkedTags('d', '>', 1); - $this->assertEquals(array('e'), $allLinkedTags); - - $allLinkedTags = $tts->getAllLinkedTags('b', '>', 1); - $this->assertEquals(array('d', 'e'), $allLinkedTags); - $this->assertEquals(2, sizeof($allLinkedTags)); - $this->assertTrue(in_array('d', $allLinkedTags)); - $this->assertTrue(in_array('e', $allLinkedTags)); - - $allLinkedTags = $tts->getAllLinkedTags('a', '>', 1); - $this->assertEquals(4, sizeof($allLinkedTags)); - $this->assertTrue(in_array('b', $allLinkedTags)); - $this->assertTrue(in_array('c', $allLinkedTags)); - $this->assertTrue(in_array('d', $allLinkedTags)); - $this->assertTrue(in_array('e', $allLinkedTags)); - - - // warning: we add recursive link - $tts->addLinkedTags('b', 'a', '>', 1); - - $allLinkedTags = $tts->getAllLinkedTags('a', '>', 1); - $this->assertEquals(4, sizeof($allLinkedTags)); - //$this->assertTrue(in_array('a', $allLinkedTags)); - $this->assertTrue(in_array('b', $allLinkedTags)); - $this->assertTrue(in_array('c', $allLinkedTags)); - $this->assertTrue(in_array('d', $allLinkedTags)); - $this->assertTrue(in_array('e', $allLinkedTags)); - - $orphewTags = $tts->getOrphewTags('>', 1); - $this->assertEquals(0, sizeof($orphewTags)); - $orphewTags = $tts->getOrphewTags('>', 20); - $this->assertEquals(2, sizeof($orphewTags)); - $this->assertSame('a', $orphewTags[0]['tag']); - $this->assertSame('f', $orphewTags[1]['tag']); - $orphewTags = $tts->getOrphewTags('>'); - $this->assertEquals(1, sizeof($orphewTags)); - $this->assertSame('f', $orphewTags[0]['tag']); - - $linkedTags = $tts->getLinkedTags('a', '>'); - $this->assertSame(array('b', 'c', 'd'), $linkedTags); - $linkedTags = $tts->getLinkedTags('a', '>', 1); - $this->assertSame(array('b', 'c'), $linkedTags); - $tts->removeLinkedTags('a', 'b', '>', 1); - $linkedTags = $tts->getLinkedTags('a', '>', 1); - $this->assertSame(array('c'), $linkedTags); - $tts->removeLinkedTags('a', 'c', '>', 1); - $linkedTags = $tts->getLinkedTags('a', '>', 1); - $this->assertEquals(0, sizeof($linkedTags)); - } - - public function testManipulateTag2TagRelationsOfSynonym() - { - $tts = $this->tts; - - $tts->addLinkedTags('a', 'b', '>', 1); - $tts->addLinkedTags('b', 'c', '>', 1); - $tts->addLinkedTags('b', 'd', '=', 1); - $tts->addLinkedTags('d', 'e', '=', 1); - $tts->addLinkedTags('d', 'f', '=', 1); - $tts->addLinkedTags('e', 'g', '>', 1); - - $linkedTags = $tts->getLinkedTags('a', '>', 1); - $this->assertSame(array('b'), $linkedTags); - - $linkedTags = $tts->getLinkedTags('a', '=', 1); - $this->assertSame(array(), $linkedTags); - - $linkedTags = $tts->getLinkedTags('b', '=', 1); - $this->assertSame(array('d'), $linkedTags); - - $linkedTags = $tts->getLinkedTags('d', '=', 1); - $this->assertEquals(3, sizeof($linkedTags)); - $this->assertTrue(in_array('b', $linkedTags)); // '=' is bijective - $this->assertTrue(in_array('e', $linkedTags)); - $this->assertTrue(in_array('f', $linkedTags)); - - $linkedTags = $tts->getLinkedTags('f', '=', 1); - $this->assertEquals(1, sizeof($linkedTags)); - $this->assertTrue(in_array('d', $linkedTags)); // '=' is bijective - - // test allLinkTags (with inference) - $allLinkedTags = $tts->getAllLinkedTags('a', '=', 1); - $this->assertEquals(0, sizeof($allLinkedTags)); - - $allLinkedTags = $tts->getAllLinkedTags('b', '=', 1); - $this->assertEquals(3, sizeof($allLinkedTags)); - $this->assertTrue(in_array('d', $allLinkedTags)); - $this->assertTrue(in_array('e', $allLinkedTags)); - $this->assertTrue(in_array('f', $allLinkedTags)); - - $allLinkedTags = $tts->getAllLinkedTags('f', '>', 1); - $this->assertEquals(5, sizeof($allLinkedTags)); - $this->assertTrue(in_array('b', $allLinkedTags)); - $this->assertTrue(in_array('d', $allLinkedTags)); - $this->assertTrue(in_array('e', $allLinkedTags)); - $this->assertTrue(in_array('c', $allLinkedTags)); - $this->assertTrue(in_array('g', $allLinkedTags)); - - $allLinkedTags = $tts->getAllLinkedTags('a', '>', 1); - $this->assertEquals(6, sizeof($allLinkedTags)); - $this->assertTrue(in_array('b', $allLinkedTags)); - $this->assertTrue(in_array('c', $allLinkedTags)); - $this->assertTrue(in_array('d', $allLinkedTags)); - $this->assertTrue(in_array('e', $allLinkedTags)); - $this->assertTrue(in_array('f', $allLinkedTags)); - $this->assertTrue(in_array('g', $allLinkedTags)); - - $tts->addLinkedTags('g', 'h', '>', 1); - $tts->addLinkedTags('i', 'h', '=', 1); - $tts->addLinkedTags('j', 'f', '>', 1); - - $allLinkedTags = $tts->getAllLinkedTags('j', '>', 1); - $this->assertEquals(8, sizeof($allLinkedTags)); - $this->assertTrue(in_array('b', $allLinkedTags)); - $this->assertTrue(in_array('c', $allLinkedTags)); - $this->assertTrue(in_array('d', $allLinkedTags)); - $this->assertTrue(in_array('e', $allLinkedTags)); - $this->assertTrue(in_array('f', $allLinkedTags)); - $this->assertTrue(in_array('g', $allLinkedTags)); - $this->assertTrue(in_array('h', $allLinkedTags)); - $this->assertTrue(in_array('i', $allLinkedTags)); - - // complex case: test cycle - $tts->addLinkedTags('g', 'a', '>', 1); - $allLinkedTags = $tts->getAllLinkedTags('b', '>', 1); - $this->assertEquals(8, sizeof($allLinkedTags)); - $this->assertTrue(in_array('a', $allLinkedTags)); - $this->assertTrue(in_array('c', $allLinkedTags)); - $this->assertTrue(in_array('d', $allLinkedTags)); - $this->assertTrue(in_array('e', $allLinkedTags)); - $this->assertTrue(in_array('f', $allLinkedTags)); - $this->assertTrue(in_array('g', $allLinkedTags)); - $this->assertTrue(in_array('h', $allLinkedTags)); - $this->assertTrue(in_array('i', $allLinkedTags)); - - } - - // Test function that select the best tags to display? - public function testViewTag2TagRelations() - { - $tts = $this->tts; - - $tts->addLinkedTags('a', 'b', '>', 1); - $tts->addLinkedTags('c', 'd', '>', 1); - $tts->addLinkedTags('d', 'e', '>', 1); - $tts->addLinkedTags('f', 'g', '>', 1); - $tts->addLinkedTags('f', 'h', '>', 1); - $tts->addLinkedTags('f', 'i', '>', 1); - - $orphewTags = $tts->getOrphewTags('>', 1); - $this->assertEquals(3, sizeof($orphewTags)); - $this->assertSame('a', $orphewTags[0]['tag']); - $this->assertSame('c', $orphewTags[1]['tag']); - $this->assertSame('f', $orphewTags[2]['tag']); - - // with limit - $orphewTags = $tts->getOrphewTags('>', 1, 2); - $this->assertEquals(2, sizeof($orphewTags)); - $this->assertSame('a', $orphewTags[0]['tag']); - $this->assertSame('c', $orphewTags[1]['tag']); - - // with sorting - $orphewTags = $tts->getOrphewTags('>', 1, 2, 'nb'); // nb descendants - $this->assertEquals(2, sizeof($orphewTags)); - $this->assertSame('f', $orphewTags[0]['tag']); - $this->assertSame('c', $orphewTags[1]['tag']); - - $orphewTags = $tts->getOrphewTags('>', 1, 1, 'depth'); - $this->assertEquals(1, sizeof($orphewTags)); - $this->assertSame('c', $orphewTags[0]['tag']); - - $orphewTags = $tts->getOrphewTags('>', 1, null, 'nbupdate'); - $this->assertEquals(3, sizeof($orphewTags)); - $this->assertSame('f', $orphewTags[0]['tag']); - $this->assertSame('c', $orphewTags[1]['tag']); - $this->assertSame('a', $orphewTags[2]['tag']); - - } - - public function testAddLinkedTagsThroughBookmarking() - { - $bs = $this->bs; - $tags = array('a>b', 'b>c', 'a>d>e', 'a>a', 'a', 'r=s', 's=t=u'); - $bs->addBookmark("http://google.com", "title", "description", "status", $tags, null, false, false, 1); - $bookmark = $bs->getBookmarkByAddress("http://google.com"); - - $b2ts = $this->b2ts; - $savedTags = $b2ts->getTagsForBookmark(intval($bookmark['bId'])); - $this->assertEquals(6, sizeof($savedTags)); - $this->assertContains('b', $savedTags); - $this->assertContains('c', $savedTags); - $this->assertContains('e', $savedTags); - $this->assertContains('a', $savedTags); - $this->assertContains('r', $savedTags); - $this->assertContains('s', $savedTags); - - $tts = $this->tts; - $linkedTags = $tts->getLinkedTags('a', '>', 1); - $this->assertEquals(2, sizeof($linkedTags)); - $this->assertSame('b', $linkedTags[0]['tag']); - $this->assertSame('d', $linkedTags[1]['tag']); - $linkedTags = $tts->getLinkedTags('b', '>', 1); - $this->assertEquals(1, sizeof($linkedTags)); - $this->assertSame('c', $linkedTags[0]['tag']); - $this->assertTrue($tts->existsLinkedTags('d', 'e', '>', 1)); - $this->assertFalse($tts->existsLinkedTags('e', 'd', '>', 1)); - } - - public function testSearchThroughLinkedTags() - { - $tts = $this->tts; - $bs = $this->bs; - - $tts->addLinkedTags('aa', 'bb', '>', 1); - - $tags = array('aa>bb>cc', 'dd'); - $bs->addBookmark("web1.com", "B1", "description", "status", $tags, null, false, false, 1); - $tags = array('bb>gg', 'ee>ff'); - $bs->addBookmark("web2.com", "B2", "description", "status", $tags, null, false, false, 1); - $tags = array('ee=ii'); - $bs->addBookmark("web3.com", "B3", "description", "status", $tags, null, false, false, 1); - - // Query format: - // $bs->getBookmarks($start = 0, $perpage = NULL, $user = NULL, $tags = NULL, $terms = NULL, $sortOrder = NULL, $watched = NULL, $startdate = NULL, $enddate = NULL, $hash = NULL); - - // basic queries - $results = $bs->getBookmarks(0, NULL, 1, 'dd'); - $this->assertSame(1, intval($results['total'])); - $this->assertSame('B1', $results['bookmarks'][0]['bTitle']); - - $results = $bs->getBookmarks(0, NULL, 1, 'cc'); - $this->assertSame(1, intval($results['total'])); - $this->assertSame('B1', $results['bookmarks'][0]['bTitle']); - - //advanced queries - $results = $bs->getBookmarks(0, NULL, 1, 'aa'); - $this->assertSame(2, intval($results['total'])); - $this->assertSame('B1', $results['bookmarks'][0]['bTitle']); - $this->assertSame('B2', $results['bookmarks'][1]['bTitle']); - - $results = $bs->getBookmarks(0, NULL, 1, 'ee'); - $this->assertSame(2, intval($results['total'])); - $this->assertSame('B2', $results['bookmarks'][1]['bTitle']); - $this->assertSame('B3', $results['bookmarks'][0]['bTitle']); - - $results = $bs->getBookmarks(0, NULL, 1, 'ii'); - $this->assertSame(2, intval($results['total'])); - $this->assertSame('B2', $results['bookmarks'][1]['bTitle']); - $this->assertSame('B3', $results['bookmarks'][0]['bTitle']); - - $results = $bs->getBookmarks(0, NULL, 1, 'aa+ee'); - $this->assertSame(1, intval($results['total'])); - $this->assertSame('B2', $results['bookmarks'][0]['bTitle']); - - } - - public function testStatsBetweenTags() - { - $tsts = $this->tsts; - $tts = $this->tts; - - // basic functions - $this->assertFalse($tsts->existStat('a', '>', 10)); - $tsts->setNbDescendants('a', '>', 10, 2); - $this->assertSame(2, $tsts->getNbDescendants('a', '>', 10)); - $tsts->setMaxDepth('a', '>', 10, 3); - $this->assertSame(3, $tsts->getMaxDepth('a', '>', 10)); - $this->assertTrue($tsts->existStat('a', '>', 10)); - $this->assertFalse($tsts->existStat('a', '>', 20)); - $tsts->increaseNbUpdate('a', '>', 10); - $this->assertSame(1, $tsts->getNbUpdates('a', '>', 10)); - - $tsts->deleteAll(); - - // no structure - $nbC = $tsts->getNbChildren('a', '>', 1); - $nbD = $tsts->getNbDescendants('a', '>', 1); - $maxDepth = $tsts->getMaxDepth('a', '>', 1); - $this->assertSame(0, $nbC); - $this->assertSame(0, $nbD); - $this->assertSame(0, $maxDepth); - - // simple case - $tts->addLinkedTags('b', 'c', '>', 1); - $tts->addLinkedTags('a', 'd', '>', 1); - $tts->addLinkedTags('a', 'b', '>', 1); - $tts->addLinkedTags('b', 'e', '>', 1); - - $this->assertSame(3, $tsts->getNbUpdates('a', '>', '1')); - $this->assertSame(2, $tsts->getNbUpdates('b', '>', '1')); - $this->assertSame(0, $tsts->getNbUpdates('c', '>', '1')); - $this->assertSame(0, $tsts->getNbUpdates('d', '>', '1')); - $this->assertSame(0, $tsts->getNbUpdates('e', '>', '1')); - - - $nbC = $tsts->getNbChildren('a', '>', 1); - $nbD = $tsts->getNbDescendants('a', '>', 1); - $maxDepth = $tsts->getMaxDepth('a', '>', 1); - $this->assertSame(2, $nbC); - $this->assertSame(4, $nbD); - $this->assertSame(2, $maxDepth); - - $nbC = $tsts->getNbChildren('b', '>', 1); - $nbD = $tsts->getNbDescendants('b', '>', 1); - $maxDepth = $tsts->getMaxDepth('b', '>', 1); - $this->assertSame(2, $nbC); - $this->assertSame(2, $nbD); - $this->assertSame(1, $maxDepth); - - $nbC = $tsts->getNbChildren('c', '>', 1); - $nbD = $tsts->getNbDescendants('c', '>', 1); - $maxDepth = $tsts->getMaxDepth('c', '>', 1); - $this->assertSame(0, $nbC); - $this->assertSame(0, $nbD); - $this->assertSame(0, $maxDepth); - - $nbC = $tsts->getNbChildren('d', '>', 1); - $nbD = $tsts->getNbDescendants('d', '>', 1); - $maxDepth = $tsts->getMaxDepth('d', '>', 1); - $this->assertSame(0, $nbC); - $this->assertSame(0, $nbD); - $this->assertSame(0, $maxDepth); - - // deletion - $tts->removeLinkedTags('b', 'e', '>', 1); - - $nbC = $tsts->getNbChildren('b', '>', 1); - $nbD = $tsts->getNbDescendants('b', '>', 1); - $maxDepth = $tsts->getMaxDepth('b', '>', 1); - $this->assertSame(1, $nbC); - $this->assertSame(1, $nbD); - $this->assertSame(1, $maxDepth); - - $nbC = $tsts->getNbChildren('a', '>', 1); - $nbD = $tsts->getNbDescendants('a', '>', 1); - $maxDepth = $tsts->getMaxDepth('a', '>', 1); - $this->assertSame(2, $nbC); - $this->assertSame(3, $nbD); - $this->assertSame(2, $maxDepth); - - //do cases for synonyms - - $this->markTestSkipped('Check stats'); - - $tsts->deleteAll(); - $tts->deleteAll(); - - $tts->addLinkedTags('a', 'b', '>', 1); - $tts->addLinkedTags('b', 'c', '=', 1); - /*$tts->addLinkedTags('a', 'c', '>', 1); - $tts->addLinkedTags('j', 'i', '=', 1); - $tts->addLinkedTags('f', 'i', '=', 1); - $tts->addLinkedTags('d', 'f', '>', 1); - $tts->addLinkedTags('d', 'e', '>', 1); - $tts->addLinkedTags('j', 'k', '>', 1);*/ - - $nbC = $tsts->getNbChildren('a', '>', 1); - $nbD = $tsts->getNbDescendants('a', '>', 1); - $nbU = $tsts->getNbUpdates('a', '>', 1); - $maxDepth = $tsts->getMaxDepth('a', '>', 1); - //$this->assertSame(2, $tts->getLinkedTags('a', '>', 1)); - $this->assertSame(1, $nbC); - //$this->assertSame(2, $nbD); - $this->assertSame(2, $nbU); - $this->assertSame(1, $maxDepth); - - // advanced case with fore loop - //$tts->addLinkedTags('d', 'c', '>', 1); - - // advanced case with back loop - //$tts->addLinkedTags('e', 'a', '>', 1); - } - - public function testRenameFunction() - { - $tts = $this->tts; - $b2ts = $this->b2ts; - $bs = $this->bs; - $tsts = $this->tsts; - - // with classic tags (users 10 & 20) - $bs->addBookmark("http://site1.com", "title", "description", "status", array('tag1', 'tag11', 'tag111'), null, false, false, 1); - $bs->addBookmark("http://site1.com", "title2", "description2", "status", array('tag2', 'tag22', 'tag222'), null, false, false, 2); - - $bookmarks =& $bs->getBookmarks(0, 1, NULL, NULL, NULL, getSortOrder(), NULL, 0, $dtend); - $this->assertEquals(1, $bookmarks['total']); - - $b2ts->renameTag(1, 'tag1', 'newtag1'); - $tags1 = $b2ts->getTagsForBookmark(1); - $this->assertSame(array('newtag1', 'tag11', 'tag111'), $tags1); - $tags1 = $b2ts->getTagsForBookmark(2); - $this->assertSame(array('tag2', 'tag22', 'tag222'), $tags1); //should not be changed - - - // with linked tags - - $tts->addLinkedTags('b', 'c', '>', 1); - $tts->addLinkedTags('a', 'b', '>', 1); - $tts->addLinkedTags('b', 'a', '>', 2); // should not be modified because of userid - - $tts->renameTag(1, 'b', 'e'); - $linkedTags = $tts->getLinkedTags('e', '>', 1); - $this->assertSame(array('c'), $linkedTags); - $linkedTags = $tts->getLinkedTags('a', '>', 1); - $this->assertSame(array('e'), $linkedTags); - $linkedTags = $tts->getLinkedTags('b', '>', 2); - $this->assertSame(array('a'), $linkedTags); - - //with stats - - } - - // Cannot be test because the function use GLOBALS variables - // not taken into account by tests - /*public function testMenuTags() - { - $tts = $this->tts; - $bs = $this->bs; - - $bs->addBookmark("http://site1.com", "title", "description", "status", array('menu>tag1'), null, false, false, 1); - $bs->addBookmark("http://site1.com", "title2", "description2", "status", array('menu>tag2>tag3'), null, false, false, 1); - $bs->addBookmark("http://site1.com", "title3", "description3", "status", array('menu>tag1', 'menu>tag4'), null, false, false, 2); - - $menuTags = $tts->getMenuTags($uId); - $this->assertEquals(3, sizeof($menuTags)); - $this->assertContains('tag1', $menuTags); - $this->assertContains('tag2', $menuTags); - $this->assertContains('tag4', $menuTags); - - }*/ -} -?> diff --git a/tests/tagsCacheTest.php b/tests/tagsCacheTest.php deleted file mode 100644 index 7673565..0000000 --- a/tests/tagsCacheTest.php +++ /dev/null @@ -1,176 +0,0 @@ -us =SemanticScuttle_Service_Factory::getServiceInstance('User'); - $this->bs =SemanticScuttle_Service_Factory::getServiceInstance('Bookmark'); - $this->bs->deleteAll(); - $this->b2ts =SemanticScuttle_Service_Factory::getServiceInstance('Bookmark2Tag'); - $this->b2ts->deleteAll(); - $this->tts =SemanticScuttle_Service_Factory::getServiceInstance('Tag2Tag'); - $this->tts->deleteAll(); - $this->tsts =SemanticScuttle_Service_Factory::getServiceInstance('TagStat'); - $this->tsts->deleteAll(); - $this->tcs =SemanticScuttle_Service_Factory::getServiceInstance('TagCache'); - $this->tcs->deleteAll(); - } - - public function testInclusionAllowsToAddAndDeleteChildrenTags() { - //message_die(GENERAL_ERROR, $GLOBALS['dbname'].'1'); - - $tts = $this->tts; - $tcs = $this->tcs; - - // test adding children - $tcs->addChild('a', 'b', 1); - $tcs->addChild('a', 'c', 1); - $this->assertEquals(array('b','c'), $tcs->getChildren('a', 1)); - - // test adding a same child - $tcs->addChild('a', 'b', 1); - $this->assertEquals(array('b','c'), $tcs->getChildren('a', 1)); - - // test removing a child - $tcs->removeChild('a', 'b', 1); - $this->assertEquals(array('c'), $tcs->getChildren('a', 1)); - - // test removing a same child - $tcs->removeChild('a', 'b', 1); - $this->assertEquals(array('c'), $tcs->getChildren('a', 1)); - - // test existing child - $this->assertTrue($tcs->existsChild('a', 'c', 1)); - $this->assertTrue(!$tcs->existsChild('a', 'c', 2)); // wrong user - $this->assertTrue(!$tcs->existsChild('a', 'b', 1)); // wrong child - - // test removing several children - $tcs->addChild('e', 'f', 1); - $tcs->addChild('e', 'g', 1); - $tcs->addChild('e', 'h', 1); - $tcs->removeChild('e', NULL, 1); - - $this->assertTrue(!$tcs->existsChild('e', 'f', 1)); - $this->assertTrue(!$tcs->existsChild('e', 'g', 1)); - $this->assertTrue(!$tcs->existsChild('e', 'h', 1)); - - } - - public function testInclusionCacheIsUpdatedWhenATag2TagLinkIsCreatedOrRemoved() { - $tts = $this->tts; - $tcs = $this->tcs; - - // test inclusion without possible errors - $tts->addLinkedTags('a', 'b', '>', 1); - $tts->addLinkedTags('b', 'c', '>', 1); - $tts->addLinkedTags('c', 'd', '>', 1); - $tts->addLinkedTags('e', 'f', '>', 1); - $tts->addLinkedTags('b', 'e', '>', 1); - - $this->assertSame(array('b','c','d','e','f'), $tts->getAllLinkedTags('a', '>', 1)); - $this->assertSame(array('c','d','e','f'), $tts->getAllLinkedTags('b', '>', 1)); - - // test inclusion with deletion - $tts->removeLinkedTags('b', 'c', '>', 1); - $this->assertSame(array('b','e','f'), $tts->getAllLinkedTags('a', '>', 1)); - $this->assertSame(array('e','f'), $tts->getAllLinkedTags('b', '>', 1)); - $this->assertSame(array('d'), $tts->getAllLinkedTags('c', '>', 1)); - $this->assertSame(array('f'), $tts->getAllLinkedTags('e', '>', 1)); - - } - - public function testInclusionResistsToTagCycles() { - $tts = $this->tts; - $tcs = $this->tcs; - - $tts->addLinkedTags('a', 'b', '>', 1); - $tts->addLinkedTags('b', 'c', '>', 1); - $tts->addLinkedTags('c', 'a', '>', 1); // creates cycle a>c>a - - $this->assertSame(array('b','c'), $tts->getAllLinkedTags('a', '>', 1)); - $this->assertSame(array('c', 'a'), $tts->getAllLinkedTags('b', '>', 1)); - $this->assertSame(array('a', 'b'), $tts->getAllLinkedTags('c', '>', 1)); - } - - public function testSynonymyAllowsToAddAndDeleteSynonyms() { - $tts = $this->tts; - $tcs = $this->tcs; - - // simple synonymy - $tcs->addSynonym('a', 'b', 1); - $tcs->addSynonym('a', 'c', 1); - - $this->assertEquals(array('b', 'c'), $tcs->getSynonyms('a', 1)); - $this->assertEquals(array('c', 'a'), $tcs->getSynonyms('b', 1)); - $this->assertEquals(array('b', 'a'), $tcs->getSynonyms('c', 1)); - - //more advanced one 1 - $tcs->deleteByUser(1); - $tcs->addSynonym('a', 'b', 1); - $tcs->addSynonym('a', 'c', 1); - $tcs->addSynonym('d', 'e', 1); - $tcs->addSynonym('a', 'e', 1); - $this->assertEquals(array('b', 'c', 'e', 'd'), $tcs->getSynonyms('a', 1)); - - //more advanced one 2 - $tcs->deleteByUser(1); - $tcs->addSynonym('a', 'b', 1); - $tcs->addSynonym('a', 'c', 1); - $tcs->addSynonym('d', 'e', 1); - $tcs->addSynonym('a', 'd', 1); - $this->assertEquals(array('b', 'c', 'd', 'e'), $tcs->getSynonyms('a', 1)); - - //with Linked tags - $tcs->deleteByUser(1); - $tts->addLinkedTags('a', 'b', '=', 1); - $tts->addLinkedTags('c', 'd', '=', 1); - $tts->addLinkedTags('c', 'e', '=', 1); - $tts->addLinkedTags('e', 'a', '=', 1); - $this->assertEquals(array('b', 'e', 'c', 'd'), $tts->getAllLinkedTags('a', '=', 1)); - - } - - public function testInclusionTakesSynonymsIntoAccount() { - $tts = $this->tts; - $tcs = $this->tcs; - - $tts->addLinkedTags('a', 'b', '>', 1); - $tts->addLinkedTags('b', 'c', '>', 1); - $tts->addLinkedTags('d', 'e', '>', 1); - $tts->addLinkedTags('c', 'd', '=', 1); - - // results are put into cache - $this->assertEquals(array('b', 'c', 'd', 'e'), $tts->getAllLinkedTags('a', '>', 1)); - $this->assertEquals(array('d', 'e'), $tts->getAllLinkedTags('c', '>', 1)); - - // same results must be taken out from cache - $this->assertEquals(array('b', 'c', 'd', 'e'), $tts->getAllLinkedTags('a', '>', 1)); - $this->assertEquals(array('d', 'e'), $tts->getAllLinkedTags('c', '>', 1)); - - // check that result comes from cache (artificial changes in cache must appear in result) - $tcs->removeChild('a', 'e', 1); - $this->assertEquals(array('b', 'c', 'd'), $tts->getAllLinkedTags('a', '>', 1)); - - //cache must be deleted for user when links are modified - $tts->addLinkedTags('a', 'f', '=', 1); - $this->assertEquals(array(), $tcs->getChildren('a', 1)); - $this->assertEquals(array(), $tcs->getSynonyms('d', 1)); - } -} -?> diff --git a/tests/tagsTest.php b/tests/tagsTest.php deleted file mode 100644 index d4957c9..0000000 --- a/tests/tagsTest.php +++ /dev/null @@ -1,76 +0,0 @@ -ts =SemanticScuttle_Service_Factory::getServiceInstance('Tag'); - $this->ts->deleteAll(); - $this->us =SemanticScuttle_Service_Factory::getServiceInstance('User'); - $this->bs =SemanticScuttle_Service_Factory::getServiceInstance('Bookmark'); - $this->bs->deleteAll(); - $this->b2ts =SemanticScuttle_Service_Factory::getServiceInstance('Bookmark2Tag'); - $this->b2ts->deleteAll(); - $this->tts =SemanticScuttle_Service_Factory::getServiceInstance('Tag2Tag'); - $this->tts->deleteAll(); - $this->tsts =SemanticScuttle_Service_Factory::getServiceInstance('TagStat'); - $this->tsts->deleteAll(); - } - - public function testTagDescriptions() - { - $ts = $this->ts; - - $desc = $ts->getAllDescriptions('tag1'); - $this->assertSame(array(), $desc); - - $desc = $ts->getDescription('tag1', 1); // user 1 - $this->assertSame(array('tDescription'=>''), $desc); - - $desc1 = "test description"; - $ts->updateDescription('tag1', 1, $desc1); // first desc - $desc = $ts->getDescription('tag1', 1); - $this->assertEquals(array('tag'=>'tag1', 'uId'=>1, 'tDescription'=>$desc1), $desc); - - $desc1 = "&é\"'(-è_çà)=´~#'#{{[\\\\[||`\^\^@^@}¹²¡×¿ ?./§µ%"; - $ts->updateDescription('tag1', 1, $desc1); // update desc - $desc = $ts->getDescription('tag1', 1); - $this->assertEquals(array('tag'=>'tag1', 'uId'=>1, 'tDescription'=>$desc1), $desc); - - $desc2 = "æâ€êþÿûîîôôöŀï'üð’‘ßä«≤»©»  ↓¿×÷¡¹²³"; - $ts->updateDescription('tag1', 2, $desc2); // user 2 - $desc = $ts->getDescription('tag1', 2); - $this->assertEquals(array('tag'=>'tag1', 'uId'=>2, 'tDescription'=>$desc2), $desc); - - $desc = $ts->getAllDescriptions('tag1'); - $this->assertEquals($desc, array(array('tag'=>'tag1', 'uId'=>1, 'tDescription'=>$desc1), array('tag'=>'tag1', 'uId'=>2, 'tDescription'=>$desc2))); - - } - - public function testRenameFunction() - { - $ts = $this->ts; - - $ts->updateDescription('tag1', 10, 'xxx'); - $ts->renameTag(10, 'tag1', 'tag2'); - $desc = $ts->getDescription('tag1', 10); - $this->assertSame(array('tDescription'=>''), $desc); - $desc = $ts->getDescription('tag2', 10); - $this->assertEquals(array('tag'=>'tag2', 'uId'=>10, 'tDescription'=>'xxx'), $desc); - - } - -} -?> -- cgit v1.2.3-54-g00ecf