1
0
Fork 0
mirror of https://github.com/wallabag/wallabag.git synced 2025-09-15 18:57:05 +00:00

Added endpoint to handle URL list to add/delete tags

This commit is contained in:
Nicolas Lœuillet 2017-04-24 12:24:17 +02:00
parent d1fc590211
commit 80299ed282
No known key found for this signature in database
GPG key ID: BDC1EFB5CA0145F2
3 changed files with 112 additions and 38 deletions

View file

@ -717,16 +717,18 @@ 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',
'action' => 'add',
],
];
@ -736,13 +738,48 @@ class EntryRestControllerTest extends WallabagApiTestCase
$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(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',
],
];
$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']);
$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);
}
}