aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php')
-rw-r--r--tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php99
1 files changed, 98 insertions, 1 deletions
diff --git a/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php b/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php
index 5c739c78..c40e10a5 100644
--- a/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php
+++ b/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php
@@ -29,7 +29,7 @@ class EntryControllerTest extends WallabagCoreTestCase
29 29
30 $this->assertEquals(200, $client->getResponse()->getStatusCode()); 30 $this->assertEquals(200, $client->getResponse()->getStatusCode());
31 $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text'])); 31 $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text']));
32 $this->assertContains('quickstart.intro.paragraph_1', $body[0]); 32 $this->assertContains('quickstart.intro.title', $body[0]);
33 33
34 // Test if quickstart is disabled when user has 1 entry 34 // Test if quickstart is disabled when user has 1 entry
35 $crawler = $client->request('GET', '/new'); 35 $crawler = $client->request('GET', '/new');
@@ -160,6 +160,50 @@ class EntryControllerTest extends WallabagCoreTestCase
160 $this->assertContains('/view/', $client->getResponse()->getTargetUrl()); 160 $this->assertContains('/view/', $client->getResponse()->getTargetUrl());
161 } 161 }
162 162
163 public function testPostNewOkUrlExistWithAccent()
164 {
165 $this->logInAs('admin');
166 $client = $this->getClient();
167
168 $url = 'http://www.aritylabs.com/post/106091708292/des-contr%C3%B4leurs-optionnels-gr%C3%A2ce-%C3%A0-constmissing';
169
170 $crawler = $client->request('GET', '/new');
171
172 $this->assertEquals(200, $client->getResponse()->getStatusCode());
173
174 $form = $crawler->filter('form[name=entry]')->form();
175
176 $data = [
177 'entry[url]' => $url,
178 ];
179
180 $client->submit($form, $data);
181
182 $crawler = $client->request('GET', '/new');
183
184 $this->assertEquals(200, $client->getResponse()->getStatusCode());
185
186 $form = $crawler->filter('form[name=entry]')->form();
187
188 $data = [
189 'entry[url]' => $url,
190 ];
191
192 $client->submit($form, $data);
193
194 $this->assertEquals(302, $client->getResponse()->getStatusCode());
195 $this->assertContains('/view/', $client->getResponse()->getTargetUrl());
196
197 $em = $client->getContainer()
198 ->get('doctrine.orm.entity_manager');
199 $entry = $em
200 ->getRepository('WallabagCoreBundle:Entry')
201 ->findOneByUrl(urldecode($url));
202
203 $em->remove($entry);
204 $em->flush();
205 }
206
163 /** 207 /**
164 * This test will require an internet connection. 208 * This test will require an internet connection.
165 */ 209 */
@@ -236,6 +280,16 @@ class EntryControllerTest extends WallabagCoreTestCase
236 $this->assertEquals(200, $client->getResponse()->getStatusCode()); 280 $this->assertEquals(200, $client->getResponse()->getStatusCode());
237 } 281 }
238 282
283 public function testUntagged()
284 {
285 $this->logInAs('admin');
286 $client = $this->getClient();
287
288 $client->request('GET', '/untagged/list');
289
290 $this->assertEquals(200, $client->getResponse()->getStatusCode());
291 }
292
239 public function testStarred() 293 public function testStarred()
240 { 294 {
241 $this->logInAs('admin'); 295 $this->logInAs('admin');
@@ -698,4 +752,47 @@ class EntryControllerTest extends WallabagCoreTestCase
698 $crawler = $client->submit($form, $data); 752 $crawler = $client->submit($form, $data);
699 $this->assertCount(2, $crawler->filter('div[class=entry]')); 753 $this->assertCount(2, $crawler->filter('div[class=entry]'));
700 } 754 }
755
756 public function testCache()
757 {
758 $this->logInAs('admin');
759 $client = $this->getClient();
760
761 $content = $client->getContainer()
762 ->get('doctrine.orm.entity_manager')
763 ->getRepository('WallabagCoreBundle:Entry')
764 ->findOneByUser($this->getLoggedInUserId());
765
766 // no uuid
767 $client->request('GET', '/share/'.$content->getUuid());
768 $this->assertEquals(404, $client->getResponse()->getStatusCode());
769
770 // generating the uuid
771 $client->request('GET', '/share/'.$content->getId());
772 $this->assertEquals(302, $client->getResponse()->getStatusCode());
773
774 // follow link with uuid
775 $crawler = $client->followRedirect();
776 $this->assertEquals(200, $client->getResponse()->getStatusCode());
777 $this->assertContains('max-age=25200', $client->getResponse()->headers->get('cache-control'));
778 $this->assertContains('public', $client->getResponse()->headers->get('cache-control'));
779 $this->assertContains('s-maxage=25200', $client->getResponse()->headers->get('cache-control'));
780 $this->assertNotContains('no-cache', $client->getResponse()->headers->get('cache-control'));
781
782 // sharing is now disabled
783 $client->getContainer()->get('craue_config')->set('share_public', 0);
784 $client->request('GET', '/share/'.$content->getUuid());
785 $this->assertEquals(404, $client->getResponse()->getStatusCode());
786
787 $client->request('GET', '/view/'.$content->getId());
788 $this->assertContains('no-cache', $client->getResponse()->headers->get('cache-control'));
789
790 // removing the share
791 $client->request('GET', '/share/delete/'.$content->getId());
792 $this->assertEquals(302, $client->getResponse()->getStatusCode());
793
794 // share is now disable
795 $client->request('GET', '/share/'.$content->getUuid());
796 $this->assertEquals(404, $client->getResponse()->getStatusCode());
797 }
701} 798}