From 7f96d9ec21a95cb85d0292b46e18235b20efbcb2 Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Mon, 16 Jan 2017 13:57:11 +0100 Subject: Update LinkFilter to be able to filter only public links No update regarding the UI or the API for now Fixes #758 --- tests/LinkFilterTest.php | 73 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 63 insertions(+), 10 deletions(-) (limited to 'tests') diff --git a/tests/LinkFilterTest.php b/tests/LinkFilterTest.php index 21d680a5..37d5ca30 100644 --- a/tests/LinkFilterTest.php +++ b/tests/LinkFilterTest.php @@ -12,13 +12,18 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase */ protected static $linkFilter; + /** + * @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()); } /** @@ -27,14 +32,30 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase public function testFilter() { $this->assertEquals( - ReferenceLinkDB::$NB_LINKS_TOTAL, + 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( @@ -58,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')) ); } @@ -253,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')) ); } @@ -409,7 +462,7 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase LinkFilter::$FILTER_TAG, $hashtag, false, - true + 'private' )) ); } -- cgit v1.2.3