aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Weiske <cweiske@cweiske.de>2011-03-23 08:23:36 +0100
committerChristian Weiske <cweiske@cweiske.de>2011-03-23 08:23:36 +0100
commitd4ccb1d3d3abf433200b39e8a5566a71bb1e6c2b (patch)
tree0f2929238c43a86ce261604d6848c598cbdc3fc5
parentf67250a720c96031309f7c9ed129bb30e4972242 (diff)
downloadsemanticscuttle-d4ccb1d3d3abf433200b39e8a5566a71bb1e6c2b.tar.gz
semanticscuttle-d4ccb1d3d3abf433200b39e8a5566a71bb1e6c2b.tar.bz2
first unit tests for Bookmark2Tag::getPopularTags
-rw-r--r--tests/Bookmark2TagTest.php82
-rw-r--r--tests/TestBase.php5
2 files changed, 85 insertions, 2 deletions
diff --git a/tests/Bookmark2TagTest.php b/tests/Bookmark2TagTest.php
index 1823c60..6932a10 100644
--- a/tests/Bookmark2TagTest.php
+++ b/tests/Bookmark2TagTest.php
@@ -204,6 +204,88 @@ class Bookmark2TagTest extends TestBase
}
}
}
+
+
+ /**
+ * Create a bookmark
+ *
+ * @param integer $user User ID the bookmark shall belong
+ * @param array $tags Array of tags to attach. If "null" is given,
+ * it will automatically be "unittest"
+ * @param string $date strtotime-compatible string
+ * @param string $title Bookmark title
+ *
+ * @return integer ID of bookmark
+ */
+ protected function addTagBookmark($user, $tags, $date = null, $title = null)
+ {
+ return $this->addBookmark(
+ $user, null, 0, $tags, $title, $date
+ );
+ }
+
+
+
+ /**
+ * Fetch the most popular tags in descending order
+ */
+ public function testGetPopularTagsOrder()
+ {
+ $user = $this->addUser();
+ $this->addTagBookmark($user, array('one', 'two'));
+ $this->addTagBookmark($user, array('one', 'three'));
+ $this->addTagBookmark($user, array('one', 'two'));
+
+ $arTags = $this->b2ts->getPopularTags();
+ $this->assertInternalType('array', $arTags);
+ $this->assertEquals(3, count($arTags));
+
+ $this->assertInternalType('array', $arTags[0]);
+
+ $this->assertEquals(
+ array(
+ array('tag' => 'one', 'bCount' => '3'),
+ array('tag' => 'two', 'bCount' => '2'),
+ array('tag' => 'three', 'bCount' => '1')
+ ),
+ $arTags
+ );
+ }
+
+
+
+ public function testGetPopularTagsLimit()
+ {
+ $user = $this->addUser();
+ $this->addTagBookmark($user, array('one', 'two'));
+ $this->addTagBookmark($user, array('one', 'three'));
+ $this->addTagBookmark($user, array('one', 'two'));
+
+ $arTags = $this->b2ts->getPopularTags();
+ $this->assertInternalType('array', $arTags);
+ $this->assertEquals(3, count($arTags));
+
+ $arTags = $this->b2ts->getPopularTags(null, 2);
+ $this->assertInternalType('array', $arTags);
+ $this->assertEquals(2, count($arTags));
+ $this->assertEquals(
+ array(
+ array('tag' => 'one', 'bCount' => '3'),
+ array('tag' => 'two', 'bCount' => '2'),
+ ),
+ $arTags
+ );
+
+ $arTags = $this->b2ts->getPopularTags(null, 1);
+ $this->assertInternalType('array', $arTags);
+ $this->assertEquals(1, count($arTags));
+ $this->assertEquals(
+ array(
+ array('tag' => 'one', 'bCount' => '3'),
+ ),
+ $arTags
+ );
+ }
}
if (PHPUnit_MAIN_METHOD == 'Bookmark2TagTest::main') {
diff --git a/tests/TestBase.php b/tests/TestBase.php
index 6006f4e..3e2e213 100644
--- a/tests/TestBase.php
+++ b/tests/TestBase.php
@@ -31,6 +31,7 @@ class TestBase extends PHPUnit_Framework_TestCase
* @param array $tags Array of tags to attach. If "null" is given,
* it will automatically be "unittest"
* @param string $title Bookmark title
+ * @param string $date strtotime-compatible string
*
* @return integer ID of bookmark
*
@@ -38,7 +39,7 @@ class TestBase extends PHPUnit_Framework_TestCase
*/
protected function addBookmark(
$user = null, $address = null, $status = 0,
- $tags = null, $title = null
+ $tags = null, $title = null, $date = null
) {
if ($user === null) {
$user = $this->addUser();
@@ -64,7 +65,7 @@ class TestBase extends PHPUnit_Framework_TestCase
null,
$status,
$tags,
- null, null, false, false,
+ null, $date, false, false,
$user
);
return $bid;