]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Merge pull request #3103 from wallabag/api-delete-tag-query
authorJérémy Benoist <j0k3r@users.noreply.github.com>
Wed, 10 May 2017 07:32:27 +0000 (09:32 +0200)
committerGitHub <noreply@github.com>
Wed, 10 May 2017 07:32:27 +0000 (09:32 +0200)
Retrieve tag / tags value from query or request

src/Wallabag/ApiBundle/Controller/TagRestController.php
tests/Wallabag/ApiBundle/Controller/TagRestControllerTest.php

index 47298d7e068b8295d2538aba24e658490f98a9be..354187a063ef5deb656d15cff00ae460293b2e53 100644 (file)
@@ -44,7 +44,7 @@ class TagRestController extends WallabagRestController
     public function deleteTagLabelAction(Request $request)
     {
         $this->validateAuthentication();
-        $label = $request->request->get('tag', '');
+        $label = $request->get('tag', '');
 
         $tag = $this->getDoctrine()->getRepository('WallabagCoreBundle:Tag')->findOneByLabel($label);
 
@@ -78,7 +78,7 @@ class TagRestController extends WallabagRestController
     {
         $this->validateAuthentication();
 
-        $tagsLabels = $request->request->get('tags', '');
+        $tagsLabels = $request->get('tags', '');
 
         $tags = [];
 
index bde5251f5d32ddca62a3fa5c18ce85e3bd52a2dd..90b132ebecbf4600c1d341d6f7027ad76cfbffca 100644 (file)
@@ -54,7 +54,18 @@ class TagRestControllerTest extends WallabagApiTestCase
         $this->assertNull($tag, $tagName.' was removed because it begun an orphan tag');
     }
 
-    public function testDeleteTagByLabel()
+    public function dataForDeletingTagByLabel()
+    {
+        return [
+            'by_query' => [true],
+            'by_body' => [false],
+        ];
+    }
+
+    /**
+     * @dataProvider dataForDeletingTagByLabel
+     */
+    public function testDeleteTagByLabel($useQueryString)
     {
         $em = $this->client->getContainer()->get('doctrine.orm.entity_manager');
         $entry = $this->client->getContainer()
@@ -73,7 +84,11 @@ class TagRestControllerTest extends WallabagApiTestCase
         $em->persist($entry);
         $em->flush();
 
-        $this->client->request('DELETE', '/api/tag/label.json', ['tag' => $tag->getLabel()]);
+        if ($useQueryString) {
+            $this->client->request('DELETE', '/api/tag/label.json?tag='.$tag->getLabel());
+        } else {
+            $this->client->request('DELETE', '/api/tag/label.json', ['tag' => $tag->getLabel()]);
+        }
 
         $this->assertEquals(200, $this->client->getResponse()->getStatusCode());
 
@@ -98,7 +113,10 @@ class TagRestControllerTest extends WallabagApiTestCase
         $this->assertEquals(404, $this->client->getResponse()->getStatusCode());
     }
 
-    public function testDeleteTagsByLabel()
+    /**
+     * @dataProvider dataForDeletingTagByLabel
+     */
+    public function testDeleteTagsByLabel($useQueryString)
     {
         $em = $this->client->getContainer()->get('doctrine.orm.entity_manager');
         $entry = $this->client->getContainer()
@@ -122,7 +140,11 @@ class TagRestControllerTest extends WallabagApiTestCase
         $em->persist($entry);
         $em->flush();
 
-        $this->client->request('DELETE', '/api/tags/label.json', ['tags' => $tag->getLabel().','.$tag2->getLabel()]);
+        if ($useQueryString) {
+            $this->client->request('DELETE', '/api/tags/label.json?tags='.$tag->getLabel().','.$tag2->getLabel());
+        } else {
+            $this->client->request('DELETE', '/api/tags/label.json', ['tags' => $tag->getLabel().','.$tag2->getLabel()]);
+        }
 
         $this->assertEquals(200, $this->client->getResponse()->getStatusCode());