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.php130
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}