Allow crossed search between terms and tags
* Partial fix of #449 * Current use case: search term + click on tag. * LinkFilter now returns all links if no filter is given. * Unit tests.
This commit is contained in:
parent
6c3d6a31f4
commit
c51fae92dc
6 changed files with 178 additions and 65 deletions
tests
|
@ -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,
|
||||
''
|
||||
))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue