]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - tests/LinkFilterTest.php
Improve SessionManager tests
[github/shaarli/Shaarli.git] / tests / LinkFilterTest.php
index 21d680a5ae59f55532e85e45f67e7abc4e1b31f1..d796d3a301c469652bbb8bcc6295db0e539417cb 100644 (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(
@@ -42,6 +63,11 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase
             count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, ''))
         );
 
+        $this->assertEquals(
+            self::$refDB->countUntaggedLinks(),
+            count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, /*$request=*/'', /*$casesensitive=*/false, /*$visibility=*/'all', /*$untaggedonly=*/true))
+        );
+
         $this->assertEquals(
             ReferenceLinkDB::$NB_LINKS_TOTAL,
             count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, ''))
@@ -58,10 +84,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'))
         );
     }
 
@@ -109,7 +151,7 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase
     public function testFilterDay()
     {
         $this->assertEquals(
-            3,
+            4,
             count(self::$linkFilter->filter(LinkFilter::$FILTER_DAY, '20121206'))
         );
     }
@@ -253,14 +295,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'))
         );
     }
 
@@ -286,7 +344,7 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase
         );
 
         $this->assertEquals(
-            7,
+            ReferenceLinkDB::$NB_LINKS_TOTAL - 1,
             count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, '-revolution'))
         );
     }
@@ -346,7 +404,7 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase
         );
 
         $this->assertEquals(
-            7,
+            ReferenceLinkDB::$NB_LINKS_TOTAL - 1,
             count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, '-free'))
         );
     }
@@ -372,6 +430,13 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase
                 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(
@@ -409,7 +474,7 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase
                 LinkFilter::$FILTER_TAG,
                 $hashtag,
                 false,
-                true
+                'private'
             ))
         );
     }