aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authorArthurHoaro <arthur@hoa.ro>2016-01-20 23:34:33 +0100
committerArthurHoaro <arthur@hoa.ro>2016-02-15 20:40:39 +0100
commit21979ff11ceee0042642ac17147858a4155d54c5 (patch)
tree9527f3dbb2a23e0b42a2f9ce4cc7d4c7580da455 /tests
parent6e607ca613b47e17f7516e94adfee930d4f3e1e8 (diff)
downloadShaarli-21979ff11ceee0042642ac17147858a4155d54c5.tar.gz
Shaarli-21979ff11ceee0042642ac17147858a4155d54c5.tar.zst
Shaarli-21979ff11ceee0042642ac17147858a4155d54c5.zip
Add exclusion in tag search
* Searching '-mytag' will now exlude all shaares with 'mytag' tag. * All tags starting with a '-' are renamed without it (through the Updater). * Unit tests. Minor code changes: * LinkDB->filter() can now take no parameters (get all link depending on logged status). * tagsStrToArray() is now static and filters blank tags.
Diffstat (limited to 'tests')
-rw-r--r--tests/LinkDBTest.php6
-rw-r--r--tests/LinkFilterTest.php16
-rw-r--r--tests/Updater/UpdaterTest.php18
-rw-r--r--tests/utils/ReferenceLinkDB.php2
4 files changed, 39 insertions, 3 deletions
diff --git a/tests/LinkDBTest.php b/tests/LinkDBTest.php
index 3b1a2057..06edea79 100644
--- a/tests/LinkDBTest.php
+++ b/tests/LinkDBTest.php
@@ -276,7 +276,8 @@ class LinkDBTest extends PHPUnit_Framework_TestCase
276 'media' => 1, 276 'media' => 1,
277 'software' => 1, 277 'software' => 1,
278 'stallman' => 1, 278 'stallman' => 1,
279 'free' => 1 279 'free' => 1,
280 '-exclude' => 1,
280 ), 281 ),
281 self::$publicLinkDB->allTags() 282 self::$publicLinkDB->allTags()
282 ); 283 );
@@ -295,7 +296,8 @@ class LinkDBTest extends PHPUnit_Framework_TestCase
295 'html' => 1, 296 'html' => 1,
296 'w3c' => 1, 297 'w3c' => 1,
297 'css' => 1, 298 'css' => 1,
298 'Mercurial' => 1 299 'Mercurial' => 1,
300 '-exclude' => 1,
299 ), 301 ),
300 self::$privateLinkDB->allTags() 302 self::$privateLinkDB->allTags()
301 ); 303 );
diff --git a/tests/LinkFilterTest.php b/tests/LinkFilterTest.php
index 5fb2423f..164af0d4 100644
--- a/tests/LinkFilterTest.php
+++ b/tests/LinkFilterTest.php
@@ -254,4 +254,20 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase
254 count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, 'free software')) 254 count(self::$linkFilter->filter(LinkFilter::$FILTER_TEXT, 'free software'))
255 ); 255 );
256 } 256 }
257
258 /**
259 * Tag search with exclusion.
260 */
261 public function testTagFilterWithExclusion()
262 {
263 $this->assertEquals(
264 1,
265 count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, 'gnu -free'))
266 );
267
268 $this->assertEquals(
269 5,
270 count(self::$linkFilter->filter(LinkFilter::$FILTER_TAG, '-free'))
271 );
272 }
257} 273}
diff --git a/tests/Updater/UpdaterTest.php b/tests/Updater/UpdaterTest.php
index 63ed5e03..84b82350 100644
--- a/tests/Updater/UpdaterTest.php
+++ b/tests/Updater/UpdaterTest.php
@@ -14,6 +14,11 @@ class UpdaterTest extends PHPUnit_Framework_TestCase
14 private static $configFields; 14 private static $configFields;
15 15
16 /** 16 /**
17 * @var string Path to test datastore.
18 */
19 protected static $testDatastore = 'sandbox/datastore.php';
20
21 /**
17 * Executed before each test. 22 * Executed before each test.
18 */ 23 */
19 public function setUp() 24 public function setUp()
@@ -31,6 +36,7 @@ class UpdaterTest extends PHPUnit_Framework_TestCase
31 'config' => array( 36 'config' => array(
32 'CONFIG_FILE' => 'tests/Updater/config.php', 37 'CONFIG_FILE' => 'tests/Updater/config.php',
33 'DATADIR' => 'tests/Updater', 38 'DATADIR' => 'tests/Updater',
39 'PAGECACHE' => 'sandbox/pagecache',
34 'config1' => 'config1data', 40 'config1' => 'config1data',
35 'config2' => 'config2data', 41 'config2' => 'config2data',
36 ) 42 )
@@ -224,4 +230,16 @@ class UpdaterTest extends PHPUnit_Framework_TestCase
224 include self::$configFields['config']['CONFIG_FILE']; 230 include self::$configFields['config']['CONFIG_FILE'];
225 $this->assertEquals(self::$configFields['login'], $GLOBALS['login']); 231 $this->assertEquals(self::$configFields['login'], $GLOBALS['login']);
226 } 232 }
233
234 public function testRenameDashTags()
235 {
236 $refDB = new ReferenceLinkDB();
237 $refDB->write(self::$testDatastore);
238 $linkDB = new LinkDB(self::$testDatastore, true, false);
239 $this->assertEmpty($linkDB->filter(LinkFilter::$FILTER_TAG, 'exclude'));
240 $updater = new Updater(array(), self::$configFields, $linkDB, true);
241 $updater->updateMethodRenameDashTags();
242 var_dump($linkDB->filter(LinkFilter::$FILTER_TAG, 'exclude'));
243 $this->assertNotEmpty($linkDB->filter(LinkFilter::$FILTER_TAG, 'exclude'));
244 }
227} 245}
diff --git a/tests/utils/ReferenceLinkDB.php b/tests/utils/ReferenceLinkDB.php
index 011317ef..2f188d29 100644
--- a/tests/utils/ReferenceLinkDB.php
+++ b/tests/utils/ReferenceLinkDB.php
@@ -19,7 +19,7 @@ class ReferenceLinkDB
19 'Richard Stallman and the Free Software Revolution', 19 'Richard Stallman and the Free Software Revolution',
20 0, 20 0,
21 '20150310_114633', 21 '20150310_114633',
22 'free gnu software stallman' 22 'free gnu software stallman -exclude'
23 ); 23 );
24 24
25 $this->addLink( 25 $this->addLink(