X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FCoreBundle%2FTests%2FController%2FTagControllerTest.php;h=8af37ea441a57278cfbffb9bac7951858be2a25b;hb=4094ea47712efbe58624ff74daeb1f77c9b0edcf;hp=d25b2db5fbeb4bd0432d323661a93e4cfd7eb3aa;hpb=4d5fd9be812825c480589cdcfcec281ffb5aa66a;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/CoreBundle/Tests/Controller/TagControllerTest.php b/src/Wallabag/CoreBundle/Tests/Controller/TagControllerTest.php index d25b2db5..8af37ea4 100644 --- a/src/Wallabag/CoreBundle/Tests/Controller/TagControllerTest.php +++ b/src/Wallabag/CoreBundle/Tests/Controller/TagControllerTest.php @@ -6,6 +6,8 @@ use Wallabag\CoreBundle\Tests\WallabagCoreTestCase; class TagControllerTest extends WallabagCoreTestCase { + public $tagName = 'opensource'; + public function testList() { $this->logInAs('admin'); @@ -24,15 +26,15 @@ class TagControllerTest extends WallabagCoreTestCase $entry = $client->getContainer() ->get('doctrine.orm.entity_manager') ->getRepository('WallabagCoreBundle:Entry') - ->findOneBy(array()); + ->findOneByUsernameAndNotArchived('admin'); $crawler = $client->request('GET', '/view/'.$entry->getId()); - $form = $crawler->filter('button[id=tag_save]')->form(); + $form = $crawler->filter('form[name=tag]')->form(); - $data = array( - 'tag[label]' => 'opensource', - ); + $data = [ + 'tag[label]' => $this->tagName, + ]; $client->submit($form, $data); $this->assertEquals(302, $client->getResponse()->getStatusCode()); @@ -46,14 +48,14 @@ class TagControllerTest extends WallabagCoreTestCase $newEntry = $client->getContainer() ->get('doctrine.orm.entity_manager') ->getRepository('WallabagCoreBundle:Entry') - ->findOneById($entry->getId()); + ->find($entry->getId()); $this->assertEquals(1, count($newEntry->getTags())); # tag already exists but still not assigned to this entry - $data = array( + $data = [ 'tag[label]' => 'foo', - ); + ]; $client->submit($form, $data); $this->assertEquals(302, $client->getResponse()->getStatusCode()); @@ -61,8 +63,66 @@ class TagControllerTest extends WallabagCoreTestCase $newEntry = $client->getContainer() ->get('doctrine.orm.entity_manager') ->getRepository('WallabagCoreBundle:Entry') - ->findOneById($entry->getId()); + ->find($entry->getId()); $this->assertEquals(2, count($newEntry->getTags())); } + + public function testAddMultipleTagToEntry() + { + $this->logInAs('admin'); + $client = $this->getClient(); + + $entry = $client->getContainer() + ->get('doctrine.orm.entity_manager') + ->getRepository('WallabagCoreBundle:Entry') + ->findOneByUsernameAndNotArchived('admin'); + + $crawler = $client->request('GET', '/view/'.$entry->getId()); + + $form = $crawler->filter('form[name=tag]')->form(); + + $data = [ + 'tag[label]' => 'foo2, bar2', + ]; + + $client->submit($form, $data); + $this->assertEquals(302, $client->getResponse()->getStatusCode()); + + $newEntry = $client->getContainer() + ->get('doctrine.orm.entity_manager') + ->getRepository('WallabagCoreBundle:Entry') + ->find($entry->getId()); + + $tags = $newEntry->getTags()->toArray(); + $this->assertGreaterThanOrEqual(2, count($tags)); + $this->assertNotEquals(false, array_search('foo2', $tags), 'Tag foo2 is assigned to the entry'); + $this->assertNotEquals(false, array_search('bar2', $tags), 'Tag bar2 is assigned to the entry'); + } + + public function testRemoveTagFromEntry() + { + $this->logInAs('admin'); + $client = $this->getClient(); + + $entry = $client->getContainer() + ->get('doctrine.orm.entity_manager') + ->getRepository('WallabagCoreBundle:Entry') + ->findOneByUsernameAndNotArchived('admin'); + + $tag = $client->getContainer() + ->get('doctrine.orm.entity_manager') + ->getRepository('WallabagCoreBundle:Tag') + ->findOneByEntryAndTagLabel($entry, $this->tagName); + + $client->request('GET', '/remove-tag/'.$entry->getId().'/'.$tag->getId()); + + $this->assertEquals(302, $client->getResponse()->getStatusCode()); + + $this->assertNotContains($this->tagName, $entry->getTags()); + + $client->request('GET', '/remove-tag/'.$entry->getId().'/'.$tag->getId()); + + $this->assertEquals(404, $client->getResponse()->getStatusCode()); + } }