diff options
author | Paulino Michelazzo <paulino@michelazzo.com.br> | 2016-10-18 22:48:23 +0200 |
---|---|---|
committer | Paulino Michelazzo <paulino@michelazzo.com.br> | 2016-10-18 22:48:23 +0200 |
commit | 99731f0bb1f6fd2815eeb9af504ce86df927657b (patch) | |
tree | b080efc608d2bbd52b77a4a0067402007f50c5a8 /tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php | |
parent | 3a3c6b866b52721431bed22426d9abfcd0d2dfe0 (diff) | |
parent | 7180aaed45dce62e40620a9e4b202526ebd6a3bb (diff) | |
download | wallabag-99731f0bb1f6fd2815eeb9af504ce86df927657b.tar.gz wallabag-99731f0bb1f6fd2815eeb9af504ce86df927657b.tar.zst wallabag-99731f0bb1f6fd2815eeb9af504ce86df927657b.zip |
Merge remote-tracking branch 'wallabag/master'
Diffstat (limited to 'tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php')
-rw-r--r-- | tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php | 130 |
1 files changed, 115 insertions, 15 deletions
diff --git a/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php b/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php index 5c739c78..9b03a519 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'); |
@@ -287,22 +341,23 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
287 | $this->logInAs('admin'); | 341 | $this->logInAs('admin'); |
288 | $client = $this->getClient(); | 342 | $client = $this->getClient(); |
289 | 343 | ||
290 | $content = $client->getContainer() | 344 | $em = $client->getContainer() |
291 | ->get('doctrine.orm.entity_manager') | 345 | ->get('doctrine.orm.entity_manager'); |
346 | |||
347 | $content = $em | ||
292 | ->getRepository('WallabagCoreBundle:Entry') | 348 | ->getRepository('WallabagCoreBundle:Entry') |
293 | ->findByUrlAndUserId($this->url, $this->getLoggedInUserId()); | 349 | ->findByUrlAndUserId($this->url, $this->getLoggedInUserId()); |
294 | 350 | ||
295 | // empty content | 351 | // empty content |
296 | $content->setContent(''); | 352 | $content->setContent(''); |
297 | $client->getContainer()->get('doctrine.orm.entity_manager')->persist($content); | 353 | $em->persist($content); |
298 | $client->getContainer()->get('doctrine.orm.entity_manager')->flush(); | 354 | $em->flush(); |
299 | 355 | ||
300 | $client->request('GET', '/reload/'.$content->getId()); | 356 | $client->request('GET', '/reload/'.$content->getId()); |
301 | 357 | ||
302 | $this->assertEquals(302, $client->getResponse()->getStatusCode()); | 358 | $this->assertEquals(302, $client->getResponse()->getStatusCode()); |
303 | 359 | ||
304 | $content = $client->getContainer() | 360 | $content = $em |
305 | ->get('doctrine.orm.entity_manager') | ||
306 | ->getRepository('WallabagCoreBundle:Entry') | 361 | ->getRepository('WallabagCoreBundle:Entry') |
307 | ->findByUrlAndUserId($this->url, $this->getLoggedInUserId()); | 362 | ->findByUrlAndUserId($this->url, $this->getLoggedInUserId()); |
308 | 363 | ||
@@ -432,9 +487,11 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
432 | $this->logInAs('admin'); | 487 | $this->logInAs('admin'); |
433 | $client = $this->getClient(); | 488 | $client = $this->getClient(); |
434 | 489 | ||
490 | $em = $client->getContainer() | ||
491 | ->get('doctrine.orm.entity_manager'); | ||
492 | |||
435 | // add a new content to be removed later | 493 | // add a new content to be removed later |
436 | $user = $client->getContainer() | 494 | $user = $em |
437 | ->get('doctrine.orm.entity_manager') | ||
438 | ->getRepository('WallabagUserBundle:User') | 495 | ->getRepository('WallabagUserBundle:User') |
439 | ->findOneByUserName('admin'); | 496 | ->findOneByUserName('admin'); |
440 | 497 | ||
@@ -448,12 +505,8 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
448 | $content->setArchived(true); | 505 | $content->setArchived(true); |
449 | $content->setLanguage('fr'); | 506 | $content->setLanguage('fr'); |
450 | 507 | ||
451 | $client->getContainer() | 508 | $em->persist($content); |
452 | ->get('doctrine.orm.entity_manager') | 509 | $em->flush(); |
453 | ->persist($content); | ||
454 | $client->getContainer() | ||
455 | ->get('doctrine.orm.entity_manager') | ||
456 | ->flush(); | ||
457 | 510 | ||
458 | $client->request('GET', '/view/'.$content->getId()); | 511 | $client->request('GET', '/view/'.$content->getId()); |
459 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); | 512 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); |
@@ -698,4 +751,51 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
698 | $crawler = $client->submit($form, $data); | 751 | $crawler = $client->submit($form, $data); |
699 | $this->assertCount(2, $crawler->filter('div[class=entry]')); | 752 | $this->assertCount(2, $crawler->filter('div[class=entry]')); |
700 | } | 753 | } |
754 | |||
755 | public function testShareEntryPublicly() | ||
756 | { | ||
757 | $this->logInAs('admin'); | ||
758 | $client = $this->getClient(); | ||
759 | |||
760 | $content = $client->getContainer() | ||
761 | ->get('doctrine.orm.entity_manager') | ||
762 | ->getRepository('WallabagCoreBundle:Entry') | ||
763 | ->findOneByUser($this->getLoggedInUserId()); | ||
764 | |||
765 | // no uuid | ||
766 | $client->request('GET', '/share/'.$content->getUuid()); | ||
767 | $this->assertEquals(404, $client->getResponse()->getStatusCode()); | ||
768 | |||
769 | // generating the uuid | ||
770 | $client->request('GET', '/share/'.$content->getId()); | ||
771 | $this->assertEquals(302, $client->getResponse()->getStatusCode()); | ||
772 | |||
773 | // follow link with uuid | ||
774 | $crawler = $client->followRedirect(); | ||
775 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); | ||
776 | $this->assertContains('max-age=25200', $client->getResponse()->headers->get('cache-control')); | ||
777 | $this->assertContains('public', $client->getResponse()->headers->get('cache-control')); | ||
778 | $this->assertContains('s-maxage=25200', $client->getResponse()->headers->get('cache-control')); | ||
779 | $this->assertNotContains('no-cache', $client->getResponse()->headers->get('cache-control')); | ||
780 | $this->assertContains('og:title', $client->getResponse()->getContent()); | ||
781 | $this->assertContains('og:type', $client->getResponse()->getContent()); | ||
782 | $this->assertContains('og:url', $client->getResponse()->getContent()); | ||
783 | $this->assertContains('og:image', $client->getResponse()->getContent()); | ||
784 | |||
785 | // sharing is now disabled | ||
786 | $client->getContainer()->get('craue_config')->set('share_public', 0); | ||
787 | $client->request('GET', '/share/'.$content->getUuid()); | ||
788 | $this->assertEquals(404, $client->getResponse()->getStatusCode()); | ||
789 | |||
790 | $client->request('GET', '/view/'.$content->getId()); | ||
791 | $this->assertContains('no-cache', $client->getResponse()->headers->get('cache-control')); | ||
792 | |||
793 | // removing the share | ||
794 | $client->request('GET', '/share/delete/'.$content->getId()); | ||
795 | $this->assertEquals(302, $client->getResponse()->getStatusCode()); | ||
796 | |||
797 | // share is now disable | ||
798 | $client->request('GET', '/share/'.$content->getUuid()); | ||
799 | $this->assertEquals(404, $client->getResponse()->getStatusCode()); | ||
800 | } | ||
701 | } | 801 | } |