diff options
author | Arthur <arthur@hoa.ro> | 2016-06-03 18:30:19 +0200 |
---|---|---|
committer | Arthur <arthur@hoa.ro> | 2016-06-03 18:30:19 +0200 |
commit | 92a381f51737de1e4a03c482fe7c43da311ad556 (patch) | |
tree | 888228f4e9a4bca68bc86e78ed3cd6f4c3339e14 | |
parent | e8f6024400307cbf2b8293073d7ba8cba5caae7e (diff) | |
parent | b1eb5d1d31e3ea256501c08a3ed9aa7183b27466 (diff) | |
download | Shaarli-92a381f51737de1e4a03c482fe7c43da311ad556.tar.gz Shaarli-92a381f51737de1e4a03c482fe7c43da311ad556.tar.zst Shaarli-92a381f51737de1e4a03c482fe7c43da311ad556.zip |
Merge pull request #583 from ArthurHoaro/enhance/tag-case
Fixes #497: ignore case difference between tags
-rw-r--r-- | application/LinkDB.php | 11 | ||||
-rw-r--r-- | tests/FeedBuilderTest.php | 2 | ||||
-rw-r--r-- | tests/LinkDBTest.php | 6 | ||||
-rw-r--r-- | tests/utils/ReferenceLinkDB.php | 2 |
4 files changed, 15 insertions, 6 deletions
diff --git a/application/LinkDB.php b/application/LinkDB.php index 1cb70de0..b1072e07 100644 --- a/application/LinkDB.php +++ b/application/LinkDB.php | |||
@@ -440,11 +440,18 @@ You use the community supported version of the original Shaarli project, by Seba | |||
440 | public function allTags() | 440 | public function allTags() |
441 | { | 441 | { |
442 | $tags = array(); | 442 | $tags = array(); |
443 | $caseMapping = array(); | ||
443 | foreach ($this->_links as $link) { | 444 | foreach ($this->_links as $link) { |
444 | foreach (explode(' ', $link['tags']) as $tag) { | 445 | foreach (explode(' ', $link['tags']) as $tag) { |
445 | if (!empty($tag)) { | 446 | if (empty($tag)) { |
446 | $tags[$tag] = (empty($tags[$tag]) ? 1 : $tags[$tag] + 1); | 447 | continue; |
447 | } | 448 | } |
449 | // The first case found will be displayed. | ||
450 | if (!isset($caseMapping[strtolower($tag)])) { | ||
451 | $caseMapping[strtolower($tag)] = $tag; | ||
452 | $tags[$caseMapping[strtolower($tag)]] = 0; | ||
453 | } | ||
454 | $tags[$caseMapping[strtolower($tag)]]++; | ||
448 | } | 455 | } |
449 | } | 456 | } |
450 | // Sort tags by usage (most used tag first) | 457 | // Sort tags by usage (most used tag first) |
diff --git a/tests/FeedBuilderTest.php b/tests/FeedBuilderTest.php index 069b1581..647b2db2 100644 --- a/tests/FeedBuilderTest.php +++ b/tests/FeedBuilderTest.php | |||
@@ -93,7 +93,7 @@ class FeedBuilderTest extends PHPUnit_Framework_TestCase | |||
93 | $this->assertContains('Permalink', $link['description']); | 93 | $this->assertContains('Permalink', $link['description']); |
94 | $this->assertContains('http://host.tld/?WDWyig', $link['description']); | 94 | $this->assertContains('http://host.tld/?WDWyig', $link['description']); |
95 | $this->assertEquals(1, count($link['taglist'])); | 95 | $this->assertEquals(1, count($link['taglist'])); |
96 | $this->assertEquals('stuff', $link['taglist'][0]); | 96 | $this->assertEquals('sTuff', $link['taglist'][0]); |
97 | 97 | ||
98 | // Test URL with external link. | 98 | // Test URL with external link. |
99 | $this->assertEquals('https://static.fsf.org/nosvn/faif-2.0.pdf', $data['links']['20150310_114633']['url']); | 99 | $this->assertEquals('https://static.fsf.org/nosvn/faif-2.0.pdf', $data['links']['20150310_114633']['url']); |
diff --git a/tests/LinkDBTest.php b/tests/LinkDBTest.php index b055fe91..30ea4e01 100644 --- a/tests/LinkDBTest.php +++ b/tests/LinkDBTest.php | |||
@@ -290,7 +290,9 @@ class LinkDBTest extends PHPUnit_Framework_TestCase | |||
290 | 'stallman' => 1, | 290 | 'stallman' => 1, |
291 | 'free' => 1, | 291 | 'free' => 1, |
292 | '-exclude' => 1, | 292 | '-exclude' => 1, |
293 | 'stuff' => 2, | 293 | // The DB contains a link with `sTuff` and another one with `stuff` tag. |
294 | // They need to be grouped with the first case found (`sTuff`). | ||
295 | 'sTuff' => 2, | ||
294 | ), | 296 | ), |
295 | self::$publicLinkDB->allTags() | 297 | self::$publicLinkDB->allTags() |
296 | ); | 298 | ); |
@@ -310,7 +312,7 @@ class LinkDBTest extends PHPUnit_Framework_TestCase | |||
310 | 'w3c' => 1, | 312 | 'w3c' => 1, |
311 | 'css' => 1, | 313 | 'css' => 1, |
312 | 'Mercurial' => 1, | 314 | 'Mercurial' => 1, |
313 | 'stuff' => 2, | 315 | 'sTuff' => 2, |
314 | '-exclude' => 1, | 316 | '-exclude' => 1, |
315 | '.hidden' => 1, | 317 | '.hidden' => 1, |
316 | ), | 318 | ), |
diff --git a/tests/utils/ReferenceLinkDB.php b/tests/utils/ReferenceLinkDB.php index dc4f5dfa..46165b4d 100644 --- a/tests/utils/ReferenceLinkDB.php +++ b/tests/utils/ReferenceLinkDB.php | |||
@@ -21,7 +21,7 @@ class ReferenceLinkDB | |||
21 | 'Stallman has a beard and is part of the Free Software Foundation (or not). Seriously, read this.', | 21 | 'Stallman has a beard and is part of the Free Software Foundation (or not). Seriously, read this.', |
22 | 0, | 22 | 0, |
23 | '20150310_114651', | 23 | '20150310_114651', |
24 | 'stuff' | 24 | 'sTuff' |
25 | ); | 25 | ); |
26 | 26 | ||
27 | $this->addLink( | 27 | $this->addLink( |