Update LinkFilter to be able to filter only public links

No update regarding the UI or the API for now

Fixes 
This commit is contained in:
ArthurHoaro 2017-01-16 13:57:11 +01:00
parent ae7f6b9d09
commit 7f96d9ec21
5 changed files with 107 additions and 39 deletions

View file

@ -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'
))
);
}