aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/LinkFilterTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/LinkFilterTest.php')
-rw-r--r--tests/LinkFilterTest.php102
1 files changed, 89 insertions, 13 deletions
diff --git a/tests/LinkFilterTest.php b/tests/LinkFilterTest.php
index 21d680a5..9cd6dbd4 100644
--- a/tests/LinkFilterTest.php
+++ b/tests/LinkFilterTest.php
@@ -8,17 +8,33 @@ require_once 'application/LinkFilter.php';
8class LinkFilterTest extends PHPUnit_Framework_TestCase 8class LinkFilterTest extends PHPUnit_Framework_TestCase
9{ 9{
10 /** 10 /**
11 * @var string Test datastore path.
12 */
13 protected static $testDatastore = 'sandbox/datastore.php';
14 /**
11 * @var LinkFilter instance. 15 * @var LinkFilter instance.
12 */ 16 */
13 protected static $linkFilter; 17 protected static $linkFilter;
14 18
15 /** 19 /**
20 * @var ReferenceLinkDB instance
21 */
22 protected static $refDB;
23
24 /**
25 * @var LinkDB instance
26 */
27 protected static $linkDB;
28
29 /**
16 * Instanciate linkFilter with ReferenceLinkDB data. 30 * Instanciate linkFilter with ReferenceLinkDB data.
17 */ 31 */
18 public static function setUpBeforeClass() 32 public static function setUpBeforeClass()
19 { 33 {
20 $refDB = new ReferenceLinkDB(); 34 self::$refDB = new ReferenceLinkDB();
21 self::$linkFilter = new LinkFilter($refDB->getLinks()); 35 self::$refDB->write(self::$testDatastore);
36 self::$linkDB = new LinkDB(self::$testDatastore, true, false);
37 self::$linkFilter = new LinkFilter(self::$linkDB);
22 } 38 }
23 39
24 /** 40 /**
@@ -27,14 +43,30 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase
27 public function testFilter() 43 public function testFilter()
28 { 44 {
29 $this->assertEquals( 45 $this->assertEquals(
30 ReferenceLinkDB::$NB_LINKS_TOTAL, 46 self::$refDB->countLinks(),
31 count(self::$linkFilter->filter('', '')) 47 count(self::$linkFilter->filter('', ''))
32 ); 48 );
33 49
50 $this->assertEquals(
51 self::$refDB->countLinks(),
52 count(self::$linkFilter->filter('', '', 'all'))
53 );
54
55 $this->assertEquals(
56 self::$refDB->countLinks(),
57 count(self::$linkFilter->filter('', '', 'randomstr'))
58 );
59
34 // Private only. 60 // Private only.
35 $this->assertEquals( 61 $this->assertEquals(
36 2, 62 self::$refDB->countPrivateLinks(),
37 count(self::$linkFilter->filter('', '', false, true)) 63 count(self::$linkFilter->filter('', '', false, 'private'))
64 );
65
66 // Public only.
67 $this->assertEquals(
68 self::$refDB->countPublicLinks(),
69 count(self::$linkFilter->filter('', '', false, 'public'))
38 ); 70 );
39 71
40 $this->assertEquals( 72 $this->assertEquals(
@@ -43,6 +75,11 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase
43 ); 75 );
44 76
45 $this->assertEquals( 77 $this->assertEquals(
78 self::$refDB->countUntaggedLinks(),
79 count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, /*$request=*/'', /*$casesensitive=*/false, /*$visibility=*/'all', /*$untaggedonly=*/true))
80 );
81
82 $this->assertEquals(
46 ReferenceLinkDB::$NB_LINKS_TOTAL, 83 ReferenceLinkDB::$NB_LINKS_TOTAL,
47 count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, '')) 84 count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, ''))
48 ); 85 );
@@ -58,10 +95,26 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase
58 count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, 'web', false)) 95 count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, 'web', false))
59 ); 96 );
60 97
98 $this->assertEquals(
99 4,
100 count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, 'web', false, 'all'))
101 );
102
103 $this->assertEquals(
104 4,
105 count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, 'web', false, 'default-blabla'))
106 );
107
61 // Private only. 108 // Private only.
62 $this->assertEquals( 109 $this->assertEquals(
63 1, 110 1,
64 count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, 'web', false, true)) 111 count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, 'web', false, 'private'))
112 );
113
114 // Public only.
115 $this->assertEquals(
116 3,
117 count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, 'web', false, 'public'))
65 ); 118 );
66 } 119 }
67 120
@@ -109,7 +162,7 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase
109 public function testFilterDay() 162 public function testFilterDay()
110 { 163 {
111 $this->assertEquals( 164 $this->assertEquals(
112 3, 165 4,
113 count(self::$linkFilter->filter(LinkFilter::$FILTER_DAY, '20121206')) 166 count(self::$linkFilter->filter(LinkFilter::$FILTER_DAY, '20121206'))
114 ); 167 );
115 } 168 }
@@ -253,14 +306,30 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase
253 public function testFilterFullTextTags() 306 public function testFilterFullTextTags()
254 { 307 {
255 $this->assertEquals( 308 $this->assertEquals(
256 2, 309 6,
257 count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, 'gnu')) 310 count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, 'web'))
311 );
312
313 $this->assertEquals(
314 6,
315 count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, 'web', 'all'))
316 );
317
318 $this->assertEquals(
319 6,
320 count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, 'web', 'bla'))
258 ); 321 );
259 322
260 // Private only. 323 // Private only.
261 $this->assertEquals( 324 $this->assertEquals(
262 1, 325 1,
263 count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, 'web', false, true)) 326 count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, 'web', false, 'private'))
327 );
328
329 // Public only.
330 $this->assertEquals(
331 5,
332 count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, 'web', false, 'public'))
264 ); 333 );
265 } 334 }
266 335
@@ -286,7 +355,7 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase
286 ); 355 );
287 356
288 $this->assertEquals( 357 $this->assertEquals(
289 7, 358 ReferenceLinkDB::$NB_LINKS_TOTAL - 1,
290 count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, '-revolution')) 359 count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, '-revolution'))
291 ); 360 );
292 } 361 }
@@ -346,7 +415,7 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase
346 ); 415 );
347 416
348 $this->assertEquals( 417 $this->assertEquals(
349 7, 418 ReferenceLinkDB::$NB_LINKS_TOTAL - 1,
350 count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, '-free')) 419 count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, '-free'))
351 ); 420 );
352 } 421 }
@@ -376,6 +445,13 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase
376 1, 445 1,
377 count(self::$linkFilter->filter( 446 count(self::$linkFilter->filter(
378 LinkFilter::$FILTER_TAG | LinkFilter::$FILTER_TEXT, 447 LinkFilter::$FILTER_TAG | LinkFilter::$FILTER_TEXT,
448 array(false, 'PSR-2')
449 ))
450 );
451 $this->assertEquals(
452 1,
453 count(self::$linkFilter->filter(
454 LinkFilter::$FILTER_TAG | LinkFilter::$FILTER_TEXT,
379 array($tags, '') 455 array($tags, '')
380 )) 456 ))
381 ); 457 );
@@ -409,7 +485,7 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase
409 LinkFilter::$FILTER_TAG, 485 LinkFilter::$FILTER_TAG,
410 $hashtag, 486 $hashtag,
411 false, 487 false,
412 true 488 'private'
413 )) 489 ))
414 ); 490 );
415 } 491 }