diff options
author | Kevin Decherf <kevin@kdecherf.com> | 2017-05-21 17:01:59 +0200 |
---|---|---|
committer | Kevin Decherf <kevin@kdecherf.com> | 2017-08-27 16:51:23 +0200 |
commit | 7036d91fe7332a797bf5cbccec8790bcef8437d4 (patch) | |
tree | a1ba33f445cb7156c20f2e419c4b945bee8f1100 | |
parent | 2490f61dca635026a3eb9b5e9b6978b1981b1172 (diff) | |
download | wallabag-7036d91fe7332a797bf5cbccec8790bcef8437d4.tar.gz wallabag-7036d91fe7332a797bf5cbccec8790bcef8437d4.tar.zst wallabag-7036d91fe7332a797bf5cbccec8790bcef8437d4.zip |
Tag: render tags case-insensitive by storing them in lowercase
Fixes #2502
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
4 files changed, 7 insertions, 5 deletions
diff --git a/src/Wallabag/CoreBundle/Entity/Tag.php b/src/Wallabag/CoreBundle/Entity/Tag.php index c19023af..a6dc8c50 100644 --- a/src/Wallabag/CoreBundle/Entity/Tag.php +++ b/src/Wallabag/CoreBundle/Entity/Tag.php | |||
@@ -78,7 +78,7 @@ class Tag | |||
78 | */ | 78 | */ |
79 | public function setLabel($label) | 79 | public function setLabel($label) |
80 | { | 80 | { |
81 | $this->label = $label; | 81 | $this->label = mb_convert_case($label, MB_CASE_LOWER); |
82 | 82 | ||
83 | return $this; | 83 | return $this; |
84 | } | 84 | } |
diff --git a/src/Wallabag/CoreBundle/Helper/TagsAssigner.php b/src/Wallabag/CoreBundle/Helper/TagsAssigner.php index a2fb0b9a..0bfe5c57 100644 --- a/src/Wallabag/CoreBundle/Helper/TagsAssigner.php +++ b/src/Wallabag/CoreBundle/Helper/TagsAssigner.php | |||
@@ -45,7 +45,7 @@ class TagsAssigner | |||
45 | } | 45 | } |
46 | 46 | ||
47 | foreach ($tags as $label) { | 47 | foreach ($tags as $label) { |
48 | $label = trim($label); | 48 | $label = trim(mb_convert_case($label, MB_CASE_LOWER)); |
49 | 49 | ||
50 | // avoid empty tag | 50 | // avoid empty tag |
51 | if (0 === strlen($label)) { | 51 | if (0 === strlen($label)) { |
diff --git a/tests/Wallabag/CoreBundle/Controller/TagControllerTest.php b/tests/Wallabag/CoreBundle/Controller/TagControllerTest.php index be25a8b5..5a973a7e 100644 --- a/tests/Wallabag/CoreBundle/Controller/TagControllerTest.php +++ b/tests/Wallabag/CoreBundle/Controller/TagControllerTest.php | |||
@@ -9,6 +9,7 @@ use Wallabag\CoreBundle\Entity\Tag; | |||
9 | class TagControllerTest extends WallabagCoreTestCase | 9 | class TagControllerTest extends WallabagCoreTestCase |
10 | { | 10 | { |
11 | public $tagName = 'opensource'; | 11 | public $tagName = 'opensource'; |
12 | public $caseTagName = 'OpenSource'; | ||
12 | 13 | ||
13 | public function testList() | 14 | public function testList() |
14 | { | 15 | { |
@@ -36,7 +37,7 @@ class TagControllerTest extends WallabagCoreTestCase | |||
36 | $form = $crawler->filter('form[name=tag]')->form(); | 37 | $form = $crawler->filter('form[name=tag]')->form(); |
37 | 38 | ||
38 | $data = [ | 39 | $data = [ |
39 | 'tag[label]' => $this->tagName, | 40 | 'tag[label]' => $this->caseTagName, |
40 | ]; | 41 | ]; |
41 | 42 | ||
42 | $client->submit($form, $data); | 43 | $client->submit($form, $data); |
@@ -45,6 +46,7 @@ class TagControllerTest extends WallabagCoreTestCase | |||
45 | // be sure to reload the entry | 46 | // be sure to reload the entry |
46 | $entry = $this->getEntityManager()->getRepository(Entry::class)->find($entry->getId()); | 47 | $entry = $this->getEntityManager()->getRepository(Entry::class)->find($entry->getId()); |
47 | $this->assertCount(1, $entry->getTags()); | 48 | $this->assertCount(1, $entry->getTags()); |
49 | $this->assertContains($this->tagName, $entry->getTags()); | ||
48 | 50 | ||
49 | // tag already exists and already assigned | 51 | // tag already exists and already assigned |
50 | $client->submit($form, $data); | 52 | $client->submit($form, $data); |
@@ -80,7 +82,7 @@ class TagControllerTest extends WallabagCoreTestCase | |||
80 | $form = $crawler->filter('form[name=tag]')->form(); | 82 | $form = $crawler->filter('form[name=tag]')->form(); |
81 | 83 | ||
82 | $data = [ | 84 | $data = [ |
83 | 'tag[label]' => 'foo2, bar2', | 85 | 'tag[label]' => 'foo2, Bar2', |
84 | ]; | 86 | ]; |
85 | 87 | ||
86 | $client->submit($form, $data); | 88 | $client->submit($form, $data); |
diff --git a/tests/Wallabag/ImportBundle/Controller/WallabagV1ControllerTest.php b/tests/Wallabag/ImportBundle/Controller/WallabagV1ControllerTest.php index 25625c35..4bc982e0 100644 --- a/tests/Wallabag/ImportBundle/Controller/WallabagV1ControllerTest.php +++ b/tests/Wallabag/ImportBundle/Controller/WallabagV1ControllerTest.php | |||
@@ -125,7 +125,7 @@ class WallabagV1ControllerTest extends WallabagCoreTestCase | |||
125 | 125 | ||
126 | $tags = $content->getTags(); | 126 | $tags = $content->getTags(); |
127 | $this->assertContains('foot', $tags, 'It includes the "foot" tag'); | 127 | $this->assertContains('foot', $tags, 'It includes the "foot" tag'); |
128 | $this->assertContains('Framabag', $tags, 'It includes the "Framabag" tag'); | 128 | $this->assertContains('framabag', $tags, 'It includes the "framabag" tag'); |
129 | $this->assertSame(2, count($tags)); | 129 | $this->assertSame(2, count($tags)); |
130 | 130 | ||
131 | $this->assertInstanceOf(\DateTime::class, $content->getCreatedAt()); | 131 | $this->assertInstanceOf(\DateTime::class, $content->getCreatedAt()); |