3 namespace Wallabag\CoreBundle\Tests\EventListener
;
5 use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase
;
6 use Symfony\Component\HttpFoundation\Request
;
7 use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage
;
8 use Symfony\Component\HttpFoundation\Session\Session
;
9 use Symfony\Component\Security\Http\Event\InteractiveLoginEvent
;
10 use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken
;
11 use Wallabag\CoreBundle\EventListener\UserLocaleListener
;
12 use Wallabag\CoreBundle\Entity\Config
;
13 use Wallabag\UserBundle\Entity\User
;
15 class UserLocaleListenerTest
extends KernelTestCase
17 public function testWithLanguage()
19 $session = new Session(new MockArraySessionStorage());
20 $listener = new UserLocaleListener($session);
23 $user->setEnabled(true);
25 $config = new Config($user);
26 $config->setLanguage('fr');
28 $user->setConfig($config);
30 $userToken = new UsernamePasswordToken($user, '', 'test');
31 $request = Request
::create('/');
32 $event = new InteractiveLoginEvent($request, $userToken);
34 $listener->onInteractiveLogin($event);
36 $this->assertEquals('fr', $session->get('_locale'));
39 public function testWithoutLanguage()
41 $session = new Session(new MockArraySessionStorage());
42 $listener = new UserLocaleListener($session);
45 $user->setEnabled(true);
47 $config = new Config($user);
49 $user->setConfig($config);
51 $userToken = new UsernamePasswordToken($user, '', 'test');
52 $request = Request
::create('/');
53 $event = new InteractiveLoginEvent($request, $userToken);
55 $listener->onInteractiveLogin($event);
57 $this->assertEquals('', $session->get('_locale'));