]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - tests/LinkFilterTest.php
Support text search across link fields.
[github/shaarli/Shaarli.git] / tests / LinkFilterTest.php
index 4d754d2522987d21d05d53e10179e1a4e9008804..31fd4cf499ac0606d32ced23d261b6ac1c18ad0a 100644 (file)
@@ -164,6 +164,17 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase
         );
     }
 
+    /**
+     * Full-text search - no result found.
+     */
+    public function testFilterFullTextNoResult()
+    {
+        $this->assertEquals(
+            0,
+            count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, 'azertyuiop'))
+        );
+    }
+
     /**
      * Full-text search - result from a link's URL
      */
@@ -262,28 +273,56 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase
     {
         $this->assertEquals(
             1,
-            count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, 'free -software'))
+            count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, 'free -gnu'))
         );
 
         $this->assertEquals(
-            7,
-            count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, '-software'))
+            6,
+            count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, '-revolution'))
         );
     }
 
     /**
-     * Full-text search - test AND, exact terms and exclusion combined.
+     * Full-text search - test AND, exact terms and exclusion combined, across fields.
      */
     public function testMultiSearch()
     {
         $this->assertEquals(
             2,
-            count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, '"Free Software " stallman "read this"'))
+            count(self::$linkFilter->filter(
+                LinkFilter::$FILTER_TEXT,
+                '"Free Software " stallman "read this" @website stuff'
+            ))
         );
 
         $this->assertEquals(
             1,
-            count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, '"free software " stallman "read this" -beard'))
+            count(self::$linkFilter->filter(
+                LinkFilter::$FILTER_TEXT,
+                '"free software " stallman "read this" -beard @website stuff'
+            ))
+        );
+    }
+
+    /**
+     * Full-text search - make sure that exact search won't work across fields.
+     */
+    public function testSearchExactTermMultiFieldsKo()
+    {
+        $this->assertEquals(
+            0,
+            count(self::$linkFilter->filter(
+                LinkFilter::$FILTER_TEXT,
+                '"designer naming"'
+            ))
+        );
+
+        $this->assertEquals(
+            0,
+            count(self::$linkFilter->filter(
+                LinkFilter::$FILTER_TEXT,
+                '"designernaming"'
+            ))
         );
     }