X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=tests%2FLinkFilterTest.php;h=37d5ca306e4f128edd350e1f88542fab7880ea84;hb=4b385d6c344c4a0a0b424622833bc72974c21cb5;hp=ef1cc10a9789c78ea80dc85ee375eeaca17a5f0f;hpb=b0faecb959b1c4afc8b94ba43bdcc258976dbd1b;p=github%2Fshaarli%2FShaarli.git diff --git a/tests/LinkFilterTest.php b/tests/LinkFilterTest.php index ef1cc10a..37d5ca30 100644 --- a/tests/LinkFilterTest.php +++ b/tests/LinkFilterTest.php @@ -12,15 +12,18 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase */ protected static $linkFilter; - protected static $NB_LINKS_REFDB = 7; + /** + * @var ReferenceLinkDB instance + */ + protected static $refDB; /** * Instanciate linkFilter with ReferenceLinkDB data. */ public static function setUpBeforeClass() { - $refDB = new ReferenceLinkDB(); - self::$linkFilter = new LinkFilter($refDB->getLinks()); + self::$refDB = new ReferenceLinkDB(); + self::$linkFilter = new LinkFilter(self::$refDB->getLinks()); } /** @@ -29,23 +32,39 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase public function testFilter() { $this->assertEquals( - self::$NB_LINKS_REFDB, + self::$refDB->countLinks(), count(self::$linkFilter->filter('', '')) ); + $this->assertEquals( + self::$refDB->countLinks(), + count(self::$linkFilter->filter('', '', 'all')) + ); + + $this->assertEquals( + self::$refDB->countLinks(), + count(self::$linkFilter->filter('', '', 'randomstr')) + ); + // Private only. $this->assertEquals( - 2, - count(self::$linkFilter->filter('', '', false, true)) + self::$refDB->countPrivateLinks(), + count(self::$linkFilter->filter('', '', false, 'private')) + ); + + // Public only. + $this->assertEquals( + self::$refDB->countPublicLinks(), + count(self::$linkFilter->filter('', '', false, 'public')) ); $this->assertEquals( - self::$NB_LINKS_REFDB, + ReferenceLinkDB::$NB_LINKS_TOTAL, count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, '')) ); $this->assertEquals( - self::$NB_LINKS_REFDB, + ReferenceLinkDB::$NB_LINKS_TOTAL, count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, '')) ); } @@ -60,10 +79,26 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, 'web', false)) ); + $this->assertEquals( + 4, + count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, 'web', false, 'all')) + ); + + $this->assertEquals( + 4, + count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, 'web', false, 'default-blabla')) + ); + // Private only. $this->assertEquals( 1, - count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, 'web', false, true)) + count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, 'web', false, 'private')) + ); + + // Public only. + $this->assertEquals( + 3, + count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, 'web', false, 'public')) ); } @@ -161,19 +196,18 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase $this->assertEquals( 'MediaGoblin', - $links['20130614_184135']['title'] + $links[7]['title'] ); } /** * No link for this hash + * + * @expectedException LinkNotFoundException */ public function testFilterUnknownSmallHash() { - $this->assertEquals( - 0, - count(self::$linkFilter->filter(LinkFilter::$FILTER_HASH, 'Iblaah')) - ); + self::$linkFilter->filter(LinkFilter::$FILTER_HASH, 'Iblaah'); } /** @@ -256,14 +290,30 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase public function testFilterFullTextTags() { $this->assertEquals( - 2, - count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, 'gnu')) + 6, + count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, 'web')) + ); + + $this->assertEquals( + 6, + count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, 'web', 'all')) + ); + + $this->assertEquals( + 6, + count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, 'web', 'bla')) ); // Private only. $this->assertEquals( 1, - count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, 'web', false, true)) + count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, 'web', false, 'private')) + ); + + // Public only. + $this->assertEquals( + 5, + count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, 'web', false, 'public')) ); } @@ -289,7 +339,7 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase ); $this->assertEquals( - 6, + 7, count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, '-revolution')) ); } @@ -349,7 +399,7 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase ); $this->assertEquals( - 6, + 7, count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, '-free')) ); } @@ -383,11 +433,37 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase )) ); $this->assertEquals( - self::$NB_LINKS_REFDB, + ReferenceLinkDB::$NB_LINKS_TOTAL, count(self::$linkFilter->filter( LinkFilter::$FILTER_TAG | LinkFilter::$FILTER_TEXT, '' )) ); } + + /** + * Filter links by #hashtag. + */ + public function testFilterByHashtag() + { + $hashtag = 'hashtag'; + $this->assertEquals( + 3, + count(self::$linkFilter->filter( + LinkFilter::$FILTER_TAG, + $hashtag + )) + ); + + $hashtag = 'private'; + $this->assertEquals( + 1, + count(self::$linkFilter->filter( + LinkFilter::$FILTER_TAG, + $hashtag, + false, + 'private' + )) + ); + } }