]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Tag: render tags case-insensitive by storing them in lowercase
authorKevin Decherf <kevin@kdecherf.com>
Sun, 21 May 2017 15:01:59 +0000 (17:01 +0200)
committerKevin Decherf <kevin@kdecherf.com>
Sun, 27 Aug 2017 14:51:23 +0000 (16:51 +0200)
Fixes #2502

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
src/Wallabag/CoreBundle/Entity/Tag.php
src/Wallabag/CoreBundle/Helper/TagsAssigner.php
tests/Wallabag/CoreBundle/Controller/TagControllerTest.php
tests/Wallabag/ImportBundle/Controller/WallabagV1ControllerTest.php

index c19023af5bffdd8af1175840bea9b15a522a5251..a6dc8c50902ed26f3acb89a65b5dca8d4af073db 100644 (file)
@@ -78,7 +78,7 @@ class Tag
      */
     public function setLabel($label)
     {
-        $this->label = $label;
+        $this->label = mb_convert_case($label, MB_CASE_LOWER);
 
         return $this;
     }
index a2fb0b9a940c25588ec7d588b0ee0922daccb47d..0bfe5c572a5e1d72d338433ad81630c596755114 100644 (file)
@@ -45,7 +45,7 @@ class TagsAssigner
         }
 
         foreach ($tags as $label) {
-            $label = trim($label);
+            $label = trim(mb_convert_case($label, MB_CASE_LOWER));
 
             // avoid empty tag
             if (0 === strlen($label)) {
index be25a8b5e1c91863947795f799417e248e15b81c..5a973a7e0409988ff306e9ee1848ccf2c1c26a81 100644 (file)
@@ -9,6 +9,7 @@ use Wallabag\CoreBundle\Entity\Tag;
 class TagControllerTest extends WallabagCoreTestCase
 {
     public $tagName = 'opensource';
+    public $caseTagName = 'OpenSource';
 
     public function testList()
     {
@@ -36,7 +37,7 @@ class TagControllerTest extends WallabagCoreTestCase
         $form = $crawler->filter('form[name=tag]')->form();
 
         $data = [
-            'tag[label]' => $this->tagName,
+            'tag[label]' => $this->caseTagName,
         ];
 
         $client->submit($form, $data);
@@ -45,6 +46,7 @@ class TagControllerTest extends WallabagCoreTestCase
         // be sure to reload the entry
         $entry = $this->getEntityManager()->getRepository(Entry::class)->find($entry->getId());
         $this->assertCount(1, $entry->getTags());
+        $this->assertContains($this->tagName, $entry->getTags());
 
         // tag already exists and already assigned
         $client->submit($form, $data);
@@ -80,7 +82,7 @@ class TagControllerTest extends WallabagCoreTestCase
         $form = $crawler->filter('form[name=tag]')->form();
 
         $data = [
-            'tag[label]' => 'foo2, bar2',
+            'tag[label]' => 'foo2, Bar2',
         ];
 
         $client->submit($form, $data);
index 25625c35e0eda6bc8f429c0736fa9d2a64156142..4bc982e0ae977c774b8ab259e7b2fa81f1c76e57 100644 (file)
@@ -125,7 +125,7 @@ class WallabagV1ControllerTest extends WallabagCoreTestCase
 
         $tags = $content->getTags();
         $this->assertContains('foot', $tags, 'It includes the "foot" tag');
-        $this->assertContains('Framabag', $tags, 'It includes the "Framabag" tag');
+        $this->assertContains('framabag', $tags, 'It includes the "framabag" tag');
         $this->assertSame(2, count($tags));
 
         $this->assertInstanceOf(\DateTime::class, $content->getCreatedAt());