From 80299ed282d4f18ef92a79f29f9346b96acde468 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Mon, 24 Apr 2017 12:24:17 +0200 Subject: Added endpoint to handle URL list to add/delete tags --- .../Controller/EntryRestControllerTest.php | 59 ++++++++++++++++++---- 1 file changed, 48 insertions(+), 11 deletions(-) (limited to 'tests/Wallabag/ApiBundle/Controller') diff --git a/tests/Wallabag/ApiBundle/Controller/EntryRestControllerTest.php b/tests/Wallabag/ApiBundle/Controller/EntryRestControllerTest.php index 1f5c7a4f..638e8bcd 100644 --- a/tests/Wallabag/ApiBundle/Controller/EntryRestControllerTest.php +++ b/tests/Wallabag/ApiBundle/Controller/EntryRestControllerTest.php @@ -717,32 +717,69 @@ class EntryRestControllerTest extends WallabagApiTestCase public function testPostEntriesTagsListAction() { + $entry = $this->client->getContainer()->get('doctrine.orm.entity_manager') + ->getRepository('WallabagCoreBundle:Entry') + ->findByUrlAndUserId('http://0.0.0.0/entry2', 1); + + $tags = $entry->getTags(); + + $this->assertCount(4, $tags); + $list = [ [ - 'url' => 'http://0.0.0.0/entry1', - 'tags' => 'foo bar, baz', - 'action' => 'delete', + 'url' => 'http://0.0.0.0/entry2', + 'tags' => 'new tag 1, new tag 2', ], + ]; + + $this->client->request('POST', '/api/entries/tags/lists?list='.json_encode($list)); + + $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); + + $content = json_decode($this->client->getResponse()->getContent(), true); + + $this->assertInternalType('int', $content[0]['entry']); + $this->assertEquals('http://0.0.0.0/entry2', $content[0]['url']); + + $entry = $this->client->getContainer()->get('doctrine.orm.entity_manager') + ->getRepository('WallabagCoreBundle:Entry') + ->findByUrlAndUserId('http://0.0.0.0/entry2', 1); + + $tags = $entry->getTags(); + $this->assertCount(6, $tags); + } + + public function testDeleteEntriesTagsListAction() + { + $entry = $this->client->getContainer()->get('doctrine.orm.entity_manager') + ->getRepository('WallabagCoreBundle:Entry') + ->findByUrlAndUserId('http://0.0.0.0/entry2', 1); + + $tags = $entry->getTags(); + + $this->assertCount(6, $tags); + + $list = [ [ 'url' => 'http://0.0.0.0/entry2', 'tags' => 'new tag 1, new tag 2', - 'action' => 'add', ], ]; - $this->client->request('POST', '/api/entries/tags/lists?list='.json_encode($list)); + $this->client->request('DELETE', '/api/entries/tags/list?list='.json_encode($list)); $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); $content = json_decode($this->client->getResponse()->getContent(), true); + $this->assertInternalType('int', $content[0]['entry']); + $this->assertEquals('http://0.0.0.0/entry2', $content[0]['url']); - $this->assertFalse($content[0]['entry']); - $this->assertEquals('http://0.0.0.0/entry1', $content[0]['url']); - $this->assertEquals('delete', $content[0]['action']); + $entry = $this->client->getContainer()->get('doctrine.orm.entity_manager') + ->getRepository('WallabagCoreBundle:Entry') + ->findByUrlAndUserId('http://0.0.0.0/entry2', 1); - $this->assertInternalType('int', $content[1]['entry']); - $this->assertEquals('http://0.0.0.0/entry2', $content[1]['url']); - $this->assertEquals('add', $content[1]['action']); + $tags = $entry->getTags(); + $this->assertCount(4, $tags); } } -- cgit v1.2.3