Merge pull request from ArthurHoaro/cross-search

Allow crossed search between terms and tags
This commit is contained in:
Arthur 2016-02-28 14:26:46 +01:00
commit c6744a9e89
6 changed files with 178 additions and 65 deletions

View file

@ -12,6 +12,8 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase
*/
protected static $linkFilter;
protected static $NB_LINKS_REFDB = 7;
/**
* Instanciate linkFilter with ReferenceLinkDB data.
*/
@ -27,7 +29,7 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase
public function testFilter()
{
$this->assertEquals(
7,
self::$NB_LINKS_REFDB,
count(self::$linkFilter->filter('', ''))
);
@ -36,6 +38,16 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase
2,
count(self::$linkFilter->filter('', '', false, true))
);
$this->assertEquals(
self::$NB_LINKS_REFDB,
count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, ''))
);
$this->assertEquals(
self::$NB_LINKS_REFDB,
count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, ''))
);
}
/**
@ -341,4 +353,41 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase
count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, '-free'))
);
}
/**
* Test crossed search (terms + tags).
*/
public function testFilterCrossedSearch()
{
$terms = '"Free Software " stallman "read this" @website stuff';
$tags = 'free';
$this->assertEquals(
1,
count(self::$linkFilter->filter(
LinkFilter::$FILTER_TAG | LinkFilter::$FILTER_TEXT,
array($tags, $terms)
))
);
$this->assertEquals(
2,
count(self::$linkFilter->filter(
LinkFilter::$FILTER_TAG | LinkFilter::$FILTER_TEXT,
array('', $terms)
))
);
$this->assertEquals(
1,
count(self::$linkFilter->filter(
LinkFilter::$FILTER_TAG | LinkFilter::$FILTER_TEXT,
array($tags, '')
))
);
$this->assertEquals(
self::$NB_LINKS_REFDB,
count(self::$linkFilter->filter(
LinkFilter::$FILTER_TAG | LinkFilter::$FILTER_TEXT,
''
))
);
}
}