return end($content);
}
- /**
- * @depends testGetUserTags
- */
- public function testDeleteUserTag($tag)
+ public function testDeleteUserTag()
{
- $tagName = $tag['label'];
+ $tagLabel = 'tagtest';
+ $tag = new Tag();
+ $tag->setLabel($tagLabel);
- $this->client->request('DELETE', '/api/tags/'.$tag['id'].'.json');
+ $em = $this->client->getContainer()->get('doctrine.orm.entity_manager');
+ $em->persist($tag);
+ $em->flush();
+ $em->clear();
+
+ $this->client->request('DELETE', '/api/tags/'.$tag->getId().'.json');
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
$content = json_decode($this->client->getResponse()->getContent(), true);
$this->assertArrayHasKey('label', $content);
- $this->assertEquals($tag['label'], $content['label']);
- $this->assertEquals($tag['slug'], $content['slug']);
+ $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['id']);
+ $entries = $em->getRepository('WallabagCoreBundle:Entry')
+ ->findAllByTagId($this->user->getId(), $tag->getId());
$this->assertCount(0, $entries);
- $tag = $this->client->getContainer()
- ->get('doctrine.orm.entity_manager')
- ->getRepository('WallabagCoreBundle:Tag')
- ->findOneByLabel($tagName);
+ $tag = $em->getRepository('WallabagCoreBundle:Tag')->findOneByLabel($tagLabel);
+
+ $this->assertNull($tag, $tagLabel.' was removed because it begun an orphan tag');
+ }
- $this->assertNull($tag, $tagName.' was removed because it begun an orphan tag');
+ public function dataForDeletingTagByLabel()
+ {
+ return [
+ 'by_query' => [true],
+ 'by_body' => [false],
+ ];
}
- public function testDeleteTagByLabel()
+ /**
+ * @dataProvider dataForDeletingTagByLabel
+ */
+ public function testDeleteTagByLabel($useQueryString)
{
$em = $this->client->getContainer()->get('doctrine.orm.entity_manager');
$entry = $this->client->getContainer()
$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());
$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()
$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());