+
+ /**
+ * 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(false, 'PSR-2')
+ ))
+ );
+ $this->assertEquals(
+ 1,
+ count(self::$linkFilter->filter(
+ LinkFilter::$FILTER_TAG | LinkFilter::$FILTER_TEXT,
+ array($tags, '')
+ ))
+ );
+ $this->assertEquals(
+ 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'
+ ))
+ );
+ }