aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/Wallabag/CoreBundle/Controller/SecurityControllerTest.php
diff options
context:
space:
mode:
authorNicolas LÅ“uillet <nicolas@loeuillet.org>2016-06-23 09:18:18 +0200
committerGitHub <noreply@github.com>2016-06-23 09:18:18 +0200
commitd37bb05c881bfdbeb1144b327edd4dcc2cbb163f (patch)
tree1b90f7e733a83af4741a8cb7f49edf3e303f8677 /tests/Wallabag/CoreBundle/Controller/SecurityControllerTest.php
parent891a026e31ad54ca90b70f6026f23260cfadb7fd (diff)
parent99451fe4b76051d61922a6beb7ee9e79cc6e7893 (diff)
downloadwallabag-d37bb05c881bfdbeb1144b327edd4dcc2cbb163f.tar.gz
wallabag-d37bb05c881bfdbeb1144b327edd4dcc2cbb163f.tar.zst
wallabag-d37bb05c881bfdbeb1144b327edd4dcc2cbb163f.zip
Merge pull request #2132 from wallabag/sf3.1
Jump to Symfony 3.1
Diffstat (limited to 'tests/Wallabag/CoreBundle/Controller/SecurityControllerTest.php')
-rw-r--r--tests/Wallabag/CoreBundle/Controller/SecurityControllerTest.php72
1 files changed, 72 insertions, 0 deletions
diff --git a/tests/Wallabag/CoreBundle/Controller/SecurityControllerTest.php b/tests/Wallabag/CoreBundle/Controller/SecurityControllerTest.php
new file mode 100644
index 00000000..f503ff4b
--- /dev/null
+++ b/tests/Wallabag/CoreBundle/Controller/SecurityControllerTest.php
@@ -0,0 +1,72 @@
1<?php
2
3namespace Tests\Wallabag\CoreBundle\Controller;
4
5use Tests\Wallabag\CoreBundle\WallabagCoreTestCase;
6
7class SecurityControllerTest extends WallabagCoreTestCase
8{
9 public function testLoginWithout2Factor()
10 {
11 $this->logInAs('admin');
12 $client = $this->getClient();
13 $client->followRedirects();
14
15 $crawler = $client->request('GET', '/config');
16 $this->assertContains('config.form_rss.description', $crawler->filter('body')->extract(['_text'])[0]);
17 }
18
19 public function testLoginWith2Factor()
20 {
21 $client = $this->getClient();
22
23 if (!$client->getContainer()->getParameter('twofactor_auth')) {
24 $this->markTestSkipped('twofactor_auth is not enabled.');
25
26 return;
27 }
28
29 $client->followRedirects();
30
31 $em = $client->getContainer()->get('doctrine.orm.entity_manager');
32 $user = $em
33 ->getRepository('WallabagUserBundle:User')
34 ->findOneByUsername('admin');
35 $user->setTwoFactorAuthentication(true);
36 $em->persist($user);
37 $em->flush();
38
39 $this->logInAs('admin');
40 $crawler = $client->request('GET', '/config');
41 $this->assertContains('scheb_two_factor.trusted', $crawler->filter('body')->extract(['_text'])[0]);
42
43 // restore user
44 $user = $em
45 ->getRepository('WallabagUserBundle:User')
46 ->findOneByUsername('admin');
47 $user->setTwoFactorAuthentication(false);
48 $em->persist($user);
49 $em->flush();
50 }
51
52 public function testTrustedComputer()
53 {
54 $client = $this->getClient();
55
56 if (!$client->getContainer()->getParameter('twofactor_auth')) {
57 $this->markTestSkipped('twofactor_auth is not enabled.');
58
59 return;
60 }
61
62 $em = $client->getContainer()->get('doctrine.orm.entity_manager');
63 $user = $em
64 ->getRepository('WallabagUserBundle:User')
65 ->findOneByUsername('admin');
66
67 $date = new \DateTime();
68 $user->addTrustedComputer('ABCDEF', $date->add(new \DateInterval('P1M')));
69 $this->assertTrue($user->isTrustedComputer('ABCDEF'));
70 $this->assertFalse($user->isTrustedComputer('FEDCBA'));
71 }
72}