]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - tests/Wallabag/CoreBundle/Event/Listener/UserLocaleListenerTest.php
Merge remote-tracking branch 'origin/master' into 2.4
[github/wallabag/wallabag.git] / tests / Wallabag / CoreBundle / Event / Listener / UserLocaleListenerTest.php
index 5ffe1ca6d85468e6f3dd9c90e036ae488912ff54..ff0a9602b73b8c9fe5c2630042df96b0600b4930 100644 (file)
@@ -2,6 +2,7 @@
 
 namespace Tests\Wallabag\CoreBundle\Event\Listener;
 
+use PHPUnit\Framework\TestCase;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Session\Session;
 use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
@@ -11,7 +12,7 @@ use Wallabag\CoreBundle\Entity\Config;
 use Wallabag\CoreBundle\Event\Listener\UserLocaleListener;
 use Wallabag\UserBundle\Entity\User;
 
-class UserLocaleListenerTest extends \PHPUnit_Framework_TestCase
+class UserLocaleListenerTest extends TestCase
 {
     public function testWithLanguage()
     {
@@ -55,4 +56,27 @@ class UserLocaleListenerTest extends \PHPUnit_Framework_TestCase
 
         $this->assertNull($session->get('_locale'));
     }
+
+    public function testWithLanguageFromSession()
+    {
+        $session = new Session(new MockArraySessionStorage());
+        $listener = new UserLocaleListener($session);
+        $session->set('_locale', 'de');
+
+        $user = new User();
+        $user->setEnabled(true);
+
+        $config = new Config($user);
+        $config->setLanguage('fr');
+
+        $user->setConfig($config);
+
+        $userToken = new UsernamePasswordToken($user, '', 'test');
+        $request = Request::create('/');
+        $event = new InteractiveLoginEvent($request, $userToken);
+
+        $listener->onInteractiveLogin($event);
+
+        $this->assertSame('de', $session->get('_locale'));
+    }
 }