]> git.immae.eu Git - github/wallabag/wallabag.git/blame - src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php
Merge pull request #1164 from wallabag/v2-remove-username-in-config
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Tests / Controller / EntryControllerTest.php
CommitLineData
93fd4692
NL
1<?php
2
ad4d1caa 3namespace Wallabag\CoreBundle\Tests\Controller;
93fd4692 4
3b815d2d 5use Wallabag\CoreBundle\Tests\WallabagTestCase;
eb3bd7ef 6use Doctrine\ORM\AbstractQuery;
93fd4692 7
3b815d2d 8class EntryControllerTest extends WallabagTestCase
93fd4692 9{
3b815d2d
J
10 public function testLogin()
11 {
12 $client = $this->getClient();
13
eb3bd7ef 14 $client->request('GET', '/new');
3b815d2d
J
15
16 $this->assertEquals(302, $client->getResponse()->getStatusCode());
17 $this->assertContains('login', $client->getResponse()->headers->get('location'));
18 }
19
9c0c8820 20 public function testGetNew()
93fd4692 21 {
eb3bd7ef 22 $this->logInAs('admin');
3b815d2d 23 $client = $this->getClient();
93fd4692 24
aa6e27cf 25 $crawler = $client->request('GET', '/new');
93fd4692
NL
26
27 $this->assertEquals(200, $client->getResponse()->getStatusCode());
9c0c8820
J
28
29 $this->assertCount(1, $crawler->filter('input[type=url]'));
30 $this->assertCount(1, $crawler->filter('button[type=submit]'));
31 }
32
33 public function testPostNewEmpty()
34 {
eb3bd7ef 35 $this->logInAs('admin');
3b815d2d 36 $client = $this->getClient();
9c0c8820
J
37
38 $crawler = $client->request('GET', '/new');
39
40 $this->assertEquals(200, $client->getResponse()->getStatusCode());
41
42 $form = $crawler->filter('button[type=submit]')->form();
43
44 $crawler = $client->submit($form);
45
46 $this->assertEquals(200, $client->getResponse()->getStatusCode());
47 $this->assertCount(1, $alert = $crawler->filter('form ul li')->extract(array('_text')));
48 $this->assertEquals('This value should not be blank.', $alert[0]);
49 }
50
51 public function testPostNewOk()
52 {
eb3bd7ef 53 $this->logInAs('admin');
3b815d2d 54 $client = $this->getClient();
9c0c8820
J
55
56 $crawler = $client->request('GET', '/new');
57
58 $this->assertEquals(200, $client->getResponse()->getStatusCode());
59
60 $form = $crawler->filter('button[type=submit]')->form();
61
62 $data = array(
34c06cab 63 'entry[url]' => 'http://www.lemonde.fr/pixels/article/2015/03/28/plongee-dans-l-univers-d-ingress-le-jeu-de-google-aux-frontieres-du-reel_4601155_4408996.html',
9c0c8820
J
64 );
65
66 $client->submit($form, $data);
67
68 $this->assertEquals(302, $client->getResponse()->getStatusCode());
69
70 $crawler = $client->followRedirect();
71
3b815d2d 72 $this->assertGreaterThan(1, $alert = $crawler->filter('h2 a')->extract(array('_text')));
34c06cab 73 $this->assertContains('Google', $alert[0]);
9c0c8820
J
74 }
75
76 public function testArchive()
77 {
eb3bd7ef 78 $this->logInAs('admin');
3b815d2d 79 $client = $this->getClient();
9c0c8820 80
eb3bd7ef 81 $client->request('GET', '/archive');
9c0c8820
J
82
83 $this->assertEquals(200, $client->getResponse()->getStatusCode());
84 }
85
86 public function testStarred()
87 {
eb3bd7ef 88 $this->logInAs('admin');
3b815d2d 89 $client = $this->getClient();
9c0c8820 90
eb3bd7ef 91 $client->request('GET', '/starred');
9c0c8820
J
92
93 $this->assertEquals(200, $client->getResponse()->getStatusCode());
94 }
95
96 public function testView()
97 {
eb3bd7ef 98 $this->logInAs('admin');
3b815d2d 99 $client = $this->getClient();
9c0c8820
J
100
101 $content = $client->getContainer()
102 ->get('doctrine.orm.entity_manager')
103 ->getRepository('WallabagCoreBundle:Entry')
104 ->findOneByIsArchived(false);
105
eb3bd7ef 106 $client->request('GET', '/view/'.$content->getId());
9c0c8820
J
107
108 $this->assertEquals(200, $client->getResponse()->getStatusCode());
109 $this->assertContains($content->getTitle(), $client->getResponse()->getContent());
93fd4692 110 }
eb3bd7ef
J
111
112 public function testToggleArchive()
113 {
114 $this->logInAs('admin');
115 $client = $this->getClient();
116
117 $content = $client->getContainer()
118 ->get('doctrine.orm.entity_manager')
119 ->getRepository('WallabagCoreBundle:Entry')
120 ->findOneByIsArchived(false);
121
122 $client->request('GET', '/archive/'.$content->getId());
123
124 $this->assertEquals(302, $client->getResponse()->getStatusCode());
125
126 $res = $client->getContainer()
127 ->get('doctrine.orm.entity_manager')
128 ->getRepository('WallabagCoreBundle:Entry')
129 ->findOneById($content->getId());
130
131 $this->assertEquals($res->isArchived(), true);
132 }
133
134 public function testToggleStar()
135 {
136 $this->logInAs('admin');
137 $client = $this->getClient();
138
139 $content = $client->getContainer()
140 ->get('doctrine.orm.entity_manager')
141 ->getRepository('WallabagCoreBundle:Entry')
142 ->findOneByIsStarred(false);
143
144 $client->request('GET', '/star/'.$content->getId());
145
146 $this->assertEquals(302, $client->getResponse()->getStatusCode());
147
148 $res = $client->getContainer()
149 ->get('doctrine.orm.entity_manager')
150 ->getRepository('WallabagCoreBundle:Entry')
151 ->findOneById($content->getId());
152
153 $this->assertEquals($res->isStarred(), true);
154 }
155
156 public function testDelete()
157 {
158 $this->logInAs('admin');
159 $client = $this->getClient();
160
161 $content = $client->getContainer()
162 ->get('doctrine.orm.entity_manager')
163 ->getRepository('WallabagCoreBundle:Entry')
1d147791 164 ->findOneById(1);
eb3bd7ef
J
165
166 $client->request('GET', '/delete/'.$content->getId());
167
168 $this->assertEquals(302, $client->getResponse()->getStatusCode());
169
1d147791 170 $client->request('GET', '/delete/'.$content->getId());
eb3bd7ef 171
1d147791 172 $this->assertEquals(404, $client->getResponse()->getStatusCode());
eb3bd7ef 173 }
3d2b2d62
J
174
175 public function testViewOtherUserEntry()
176 {
177 $this->logInAs('bob');
178 $client = $this->getClient();
179
180 $content = $client->getContainer()
181 ->get('doctrine.orm.entity_manager')
182 ->getRepository('WallabagCoreBundle:Entry')
183 ->createQueryBuilder('e')
184 ->select('e.id')
185 ->leftJoin('e.user', 'u')
186 ->where('u.username != :username')->setParameter('username', 'bob')
187 ->setMaxResults(1)
188 ->getQuery()
189 ->getSingleResult(AbstractQuery::HYDRATE_ARRAY);
190
191 $client->request('GET', '/view/'.$content['id']);
192
193 $this->assertEquals(403, $client->getResponse()->getStatusCode());
194 }
93fd4692 195}