aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/Wallabag/CoreBundle/Event/Listener
diff options
context:
space:
mode:
authorJeremy Benoist <j0k3r@users.noreply.github.com>2017-01-27 09:34:32 +0100
committerGitHub <noreply@github.com>2017-01-27 09:34:32 +0100
commit6fb06904ecde15b1b07d0a2af945338b416cf0e2 (patch)
treee76f3e8142399316ec5660fab8c646b2c34b8336 /tests/Wallabag/CoreBundle/Event/Listener
parent05fa529bcfde01be5d320cb532900d72cf4b0830 (diff)
parent78295b99dd1721c613f1ce52e2debbe6f6db7753 (diff)
downloadwallabag-6fb06904ecde15b1b07d0a2af945338b416cf0e2.tar.gz
wallabag-6fb06904ecde15b1b07d0a2af945338b416cf0e2.tar.zst
wallabag-6fb06904ecde15b1b07d0a2af945338b416cf0e2.zip
Merge pull request #2416 from wallabag/2.2
wallabag 2.2.0
Diffstat (limited to 'tests/Wallabag/CoreBundle/Event/Listener')
-rw-r--r--tests/Wallabag/CoreBundle/Event/Listener/LocaleListenerTest.php86
-rw-r--r--tests/Wallabag/CoreBundle/Event/Listener/UserLocaleListenerTest.php58
2 files changed, 144 insertions, 0 deletions
diff --git a/tests/Wallabag/CoreBundle/Event/Listener/LocaleListenerTest.php b/tests/Wallabag/CoreBundle/Event/Listener/LocaleListenerTest.php
new file mode 100644
index 00000000..84a54d3a
--- /dev/null
+++ b/tests/Wallabag/CoreBundle/Event/Listener/LocaleListenerTest.php
@@ -0,0 +1,86 @@
1<?php
2
3namespace Tests\Wallabag\CoreBundle\Event\Listener;
4
5use Symfony\Component\EventDispatcher\EventDispatcher;
6use Symfony\Component\HttpFoundation\Request;
7use Symfony\Component\HttpFoundation\Session\Session;
8use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
9use Symfony\Component\HttpKernel\Event\GetResponseEvent;
10use Symfony\Component\HttpKernel\HttpKernelInterface;
11use Symfony\Component\HttpKernel\KernelEvents;
12use Wallabag\CoreBundle\Event\Listener\LocaleListener;
13
14class LocaleListenerTest extends \PHPUnit_Framework_TestCase
15{
16 private function getEvent(Request $request)
17 {
18 $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\HttpKernelInterface')
19 ->disableOriginalConstructor()
20 ->getMock();
21
22 return new GetResponseEvent($kernel, $request, HttpKernelInterface::MASTER_REQUEST);
23 }
24
25 public function testWithoutSession()
26 {
27 $request = Request::create('/');
28
29 $listener = new LocaleListener('fr');
30 $event = $this->getEvent($request);
31
32 $listener->onKernelRequest($event);
33 $this->assertEquals('en', $request->getLocale());
34 }
35
36 public function testWithPreviousSession()
37 {
38 $request = Request::create('/');
39 // generate a previous session
40 $request->cookies->set('MOCKSESSID', 'foo');
41 $request->setSession(new Session(new MockArraySessionStorage()));
42
43 $listener = new LocaleListener('fr');
44 $event = $this->getEvent($request);
45
46 $listener->onKernelRequest($event);
47 $this->assertEquals('fr', $request->getLocale());
48 }
49
50 public function testLocaleFromRequestAttribute()
51 {
52 $request = Request::create('/');
53 // generate a previous session
54 $request->cookies->set('MOCKSESSID', 'foo');
55 $request->setSession(new Session(new MockArraySessionStorage()));
56 $request->attributes->set('_locale', 'es');
57
58 $listener = new LocaleListener('fr');
59 $event = $this->getEvent($request);
60
61 $listener->onKernelRequest($event);
62 $this->assertEquals('en', $request->getLocale());
63 $this->assertEquals('es', $request->getSession()->get('_locale'));
64 }
65
66 public function testSubscribedEvents()
67 {
68 $request = Request::create('/');
69 // generate a previous session
70 $request->cookies->set('MOCKSESSID', 'foo');
71 $request->setSession(new Session(new MockArraySessionStorage()));
72
73 $listener = new LocaleListener('fr');
74 $event = $this->getEvent($request);
75
76 $dispatcher = new EventDispatcher();
77 $dispatcher->addSubscriber($listener);
78
79 $dispatcher->dispatch(
80 KernelEvents::REQUEST,
81 $event
82 );
83
84 $this->assertEquals('fr', $request->getLocale());
85 }
86}
diff --git a/tests/Wallabag/CoreBundle/Event/Listener/UserLocaleListenerTest.php b/tests/Wallabag/CoreBundle/Event/Listener/UserLocaleListenerTest.php
new file mode 100644
index 00000000..45aecc63
--- /dev/null
+++ b/tests/Wallabag/CoreBundle/Event/Listener/UserLocaleListenerTest.php
@@ -0,0 +1,58 @@
1<?php
2
3namespace Tests\Wallabag\CoreBundle\Event\Listener;
4
5use Symfony\Component\HttpFoundation\Request;
6use Symfony\Component\HttpFoundation\Session\Session;
7use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
8use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
9use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
10use Wallabag\CoreBundle\Entity\Config;
11use Wallabag\CoreBundle\Event\Listener\UserLocaleListener;
12use Wallabag\UserBundle\Entity\User;
13
14class UserLocaleListenerTest extends \PHPUnit_Framework_TestCase
15{
16 public function testWithLanguage()
17 {
18 $session = new Session(new MockArraySessionStorage());
19 $listener = new UserLocaleListener($session);
20
21 $user = new User();
22 $user->setEnabled(true);
23
24 $config = new Config($user);
25 $config->setLanguage('fr');
26
27 $user->setConfig($config);
28
29 $userToken = new UsernamePasswordToken($user, '', 'test');
30 $request = Request::create('/');
31 $event = new InteractiveLoginEvent($request, $userToken);
32
33 $listener->onInteractiveLogin($event);
34
35 $this->assertEquals('fr', $session->get('_locale'));
36 }
37
38 public function testWithoutLanguage()
39 {
40 $session = new Session(new MockArraySessionStorage());
41 $listener = new UserLocaleListener($session);
42
43 $user = new User();
44 $user->setEnabled(true);
45
46 $config = new Config($user);
47
48 $user->setConfig($config);
49
50 $userToken = new UsernamePasswordToken($user, '', 'test');
51 $request = Request::create('/');
52 $event = new InteractiveLoginEvent($request, $userToken);
53
54 $listener->onInteractiveLogin($event);
55
56 $this->assertEquals('', $session->get('_locale'));
57 }
58}