]> git.immae.eu Git - github/wallabag/wallabag.git/blame - src/Wallabag/CoreBundle/Tests/Controller/TagControllerTest.php
Disable translation in test
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Tests / Controller / TagControllerTest.php
CommitLineData
d0b90fbe
NL
1<?php
2
3namespace Wallabag\CoreBundle\Tests\Controller;
4
5use Wallabag\CoreBundle\Tests\WallabagCoreTestCase;
d0b90fbe
NL
6
7class TagControllerTest extends WallabagCoreTestCase
8{
567421af
TC
9 public $tagName = 'opensource';
10
d0b90fbe
NL
11 public function testList()
12 {
13 $this->logInAs('admin');
14 $client = $this->getClient();
15
16 $client->request('GET', '/tag/list');
17
18 $this->assertEquals(200, $client->getResponse()->getStatusCode());
19 }
7244d6cb
NL
20
21 public function testAddTagToEntry()
22 {
23 $this->logInAs('admin');
24 $client = $this->getClient();
25
26 $entry = $client->getContainer()
27 ->get('doctrine.orm.entity_manager')
28 ->getRepository('WallabagCoreBundle:Entry')
159986c4 29 ->findOneByUsernameAndNotArchived('admin');
7244d6cb
NL
30
31 $crawler = $client->request('GET', '/view/'.$entry->getId());
32
33 $form = $crawler->filter('button[id=tag_save]')->form();
34
35 $data = array(
567421af 36 'tag[label]' => $this->tagName,
7244d6cb
NL
37 );
38
39 $client->submit($form, $data);
40 $this->assertEquals(302, $client->getResponse()->getStatusCode());
41
42 $this->assertEquals(1, count($entry->getTags()));
43
44 # tag already exists and already assigned
45 $client->submit($form, $data);
46 $this->assertEquals(302, $client->getResponse()->getStatusCode());
47
48 $newEntry = $client->getContainer()
49 ->get('doctrine.orm.entity_manager')
50 ->getRepository('WallabagCoreBundle:Entry')
159986c4 51 ->find($entry->getId());
7244d6cb
NL
52
53 $this->assertEquals(1, count($newEntry->getTags()));
54
55 # tag already exists but still not assigned to this entry
56 $data = array(
57 'tag[label]' => 'foo',
58 );
59
60 $client->submit($form, $data);
61 $this->assertEquals(302, $client->getResponse()->getStatusCode());
62
63 $newEntry = $client->getContainer()
64 ->get('doctrine.orm.entity_manager')
65 ->getRepository('WallabagCoreBundle:Entry')
159986c4 66 ->find($entry->getId());
7244d6cb
NL
67
68 $this->assertEquals(2, count($newEntry->getTags()));
69 }
567421af
TC
70
71 public function testRemoveTagFromEntry()
72 {
73 $this->logInAs('admin');
74 $client = $this->getClient();
75
76 $entry = $client->getContainer()
77 ->get('doctrine.orm.entity_manager')
78 ->getRepository('WallabagCoreBundle:Entry')
79 ->findOneByUsernameAndNotArchived('admin');
80
81 $tag = $client->getContainer()
82 ->get('doctrine.orm.entity_manager')
83 ->getRepository('WallabagCoreBundle:Tag')
e686a76d 84 ->findOneByEntryAndTagLabel($entry, $this->tagName);
567421af
TC
85
86 $client->request('GET', '/remove-tag/'.$entry->getId().'/'.$tag->getId());
87
88 $this->assertEquals(302, $client->getResponse()->getStatusCode());
89
e686a76d
TC
90 $this->assertNotContains($this->tagName, $entry->getTags());
91
567421af
TC
92 $client->request('GET', '/remove-tag/'.$entry->getId().'/'.$tag->getId());
93
94 $this->assertEquals(404, $client->getResponse()->getStatusCode());
95 }
d0b90fbe 96}