X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=tests%2FWallabag%2FApiBundle%2FController%2FWallabagRestControllerTest.php;h=ee5b2ab7c94b196041875be53bc2bd91670b8d6e;hb=ebe0787e093f4f2934430033015d6ebad1c64dca;hp=528366afa08517c6a88d0cde45743286778f0882;hpb=28803f106bd091b5a7540a134cba2545d12d25ea;p=github%2Fwallabag%2Fwallabag.git diff --git a/tests/Wallabag/ApiBundle/Controller/WallabagRestControllerTest.php b/tests/Wallabag/ApiBundle/Controller/WallabagRestControllerTest.php index 528366af..ee5b2ab7 100644 --- a/tests/Wallabag/ApiBundle/Controller/WallabagRestControllerTest.php +++ b/tests/Wallabag/ApiBundle/Controller/WallabagRestControllerTest.php @@ -3,6 +3,7 @@ namespace Tests\Wallabag\ApiBundle\Controller; use Tests\Wallabag\ApiBundle\WallabagApiTestCase; +use Wallabag\CoreBundle\Entity\Tag; class WallabagRestControllerTest extends WallabagApiTestCase { @@ -359,7 +360,7 @@ class WallabagRestControllerTest extends WallabagApiTestCase $entry = $this->client->getContainer() ->get('doctrine.orm.entity_manager') ->getRepository('WallabagCoreBundle:Entry') - ->findOneWithTags(1); + ->findOneWithTags($this->user->getId()); $entry = $entry[0]; @@ -421,7 +422,7 @@ class WallabagRestControllerTest extends WallabagApiTestCase $entry = $this->client->getContainer() ->get('doctrine.orm.entity_manager') ->getRepository('WallabagCoreBundle:Entry') - ->findOneWithTags(1); + ->findOneWithTags($this->user->getId()); $entry = $entry[0]; if (!$entry) { @@ -472,7 +473,7 @@ class WallabagRestControllerTest extends WallabagApiTestCase $this->assertEquals($tag['label'], $content['label']); $this->assertEquals($tag['slug'], $content['slug']); - $entries = $entry = $this->client->getContainer() + $entries = $this->client->getContainer() ->get('doctrine.orm.entity_manager') ->getRepository('WallabagCoreBundle:Entry') ->findAllByTagId($this->user->getId(), $tag['id']); @@ -480,6 +481,112 @@ class WallabagRestControllerTest extends WallabagApiTestCase $this->assertCount(0, $entries); } + public function testDeleteTagByLabel() + { + $em = $this->client->getContainer()->get('doctrine.orm.entity_manager'); + $entry = $this->client->getContainer() + ->get('doctrine.orm.entity_manager') + ->getRepository('WallabagCoreBundle:Entry') + ->findOneWithTags($this->user->getId()); + + $entry = $entry[0]; + + $tag = new Tag(); + $tag->setLabel('Awesome tag for test'); + $em->persist($tag); + + $entry->addTag($tag); + + $em->persist($entry); + $em->flush(); + + $this->client->request('DELETE', '/api/tag/label.json', ['tag' => $tag->getLabel()]); + + $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); + + $content = json_decode($this->client->getResponse()->getContent(), true); + + $this->assertArrayHasKey('label', $content); + $this->assertEquals($tag->getLabel(), $content['label']); + $this->assertEquals($tag->getSlug(), $content['slug']); + + $entries = $this->client->getContainer() + ->get('doctrine.orm.entity_manager') + ->getRepository('WallabagCoreBundle:Entry') + ->findAllByTagId($this->user->getId(), $tag->getId()); + + $this->assertCount(0, $entries); + } + + public function testDeleteTagByLabelNotFound() + { + $this->client->request('DELETE', '/api/tag/label.json', ['tag' => 'does not exist']); + + $this->assertEquals(404, $this->client->getResponse()->getStatusCode()); + } + + public function testDeleteTagsByLabel() + { + $em = $this->client->getContainer()->get('doctrine.orm.entity_manager'); + $entry = $this->client->getContainer() + ->get('doctrine.orm.entity_manager') + ->getRepository('WallabagCoreBundle:Entry') + ->findOneWithTags($this->user->getId()); + + $entry = $entry[0]; + + $tag = new Tag(); + $tag->setLabel('Awesome tag for tagsLabel'); + $em->persist($tag); + + $tag2 = new Tag(); + $tag2->setLabel('Awesome tag for tagsLabel 2'); + $em->persist($tag2); + + $entry->addTag($tag); + $entry->addTag($tag2); + + $em->persist($entry); + $em->flush(); + + $this->client->request('DELETE', '/api/tags/label.json', ['tags' => $tag->getLabel().','.$tag2->getLabel()]); + + $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); + + $content = json_decode($this->client->getResponse()->getContent(), true); + + $this->assertCount(2, $content); + + $this->assertArrayHasKey('label', $content[0]); + $this->assertEquals($tag->getLabel(), $content[0]['label']); + $this->assertEquals($tag->getSlug(), $content[0]['slug']); + + $this->assertArrayHasKey('label', $content[1]); + $this->assertEquals($tag2->getLabel(), $content[1]['label']); + $this->assertEquals($tag2->getSlug(), $content[1]['slug']); + + $entries = $this->client->getContainer() + ->get('doctrine.orm.entity_manager') + ->getRepository('WallabagCoreBundle:Entry') + ->findAllByTagId($this->user->getId(), $tag->getId()); + + $this->assertCount(0, $entries); + + $entries = $this->client->getContainer() + ->get('doctrine.orm.entity_manager') + ->getRepository('WallabagCoreBundle:Entry') + ->findAllByTagId($this->user->getId(), $tag2->getId()); + + $this->assertCount(0, $entries); + } + + public function testDeleteTagsByLabelNotFound() + { + $this->client->request('DELETE', '/api/tags/label.json', ['tags' => 'does not exist']); + + $this->assertEquals(404, $this->client->getResponse()->getStatusCode()); + } + public function testGetVersion() { $this->client->request('GET', '/api/version');