]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Update unit test for Redirect
authorJeremy Benoist <jeremy.benoist@gmail.com>
Wed, 16 Nov 2016 22:07:00 +0000 (23:07 +0100)
committerJeremy Benoist <jeremy.benoist@gmail.com>
Wed, 16 Nov 2016 22:07:34 +0000 (23:07 +0100)
tests/Wallabag/CoreBundle/Helper/RedirectTest.php

index 3dcdf8de6cb2ab68278de5e6132a36299bc2d861..6aa5964481c0d2b1754407418d32d21ea3945955 100644 (file)
@@ -2,7 +2,11 @@
 
 namespace Tests\Wallabag\CoreBundle\Helper;
 
+use Wallabag\CoreBundle\Entity\Config;
+use Wallabag\UserBundle\Entity\User;
 use Wallabag\CoreBundle\Helper\Redirect;
+use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
+use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
 
 class RedirectTest extends \PHPUnit_Framework_TestCase
 {
@@ -17,9 +21,37 @@ class RedirectTest extends \PHPUnit_Framework_TestCase
 
     public function setUp()
     {
-        $this->routerMock = $this->getRouterMock();
-        $user = $this->createUser();
-        $tokenStorage = $this->createTokenStorage($user);
+        $this->routerMock = $this->getMockBuilder('Symfony\Component\Routing\Router')
+            ->disableOriginalConstructor()
+            ->getMock();
+
+        $this->routerMock->expects($this->any())
+            ->method('generate')
+            ->with('homepage')
+            ->willReturn('homepage');
+
+        $user = new User();
+        $user->setName('youpi');
+        $user->setEmail('youpi@youpi.org');
+        $user->setUsername('youpi');
+        $user->setPlainPassword('youpi');
+        $user->setEnabled(true);
+        $user->addRole('ROLE_SUPER_ADMIN');
+
+        $config = new Config($user);
+        $config->setTheme('material');
+        $config->setItemsPerPage(30);
+        $config->setReadingSpeed(1);
+        $config->setLanguage('en');
+        $config->setPocketConsumerKey('xxxxx');
+        $config->setActionMarkAsRead(Config::REDIRECT_TO_CURRENT_PAGE);
+
+        $user->setConfig($config);
+
+        $this->token = new UsernamePasswordToken($user, 'password', 'key');
+        $tokenStorage = new TokenStorage();
+        $tokenStorage->setToken($this->token);
+
         $this->redirect = new Redirect($this->routerMock, $tokenStorage);
     }
 
@@ -44,70 +76,20 @@ class RedirectTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals('/unread/list', $redirectUrl);
     }
 
-    private function getRouterMock()
-    {
-        $mock = $this->getMockBuilder('Symfony\Component\Routing\Router')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $mock->expects($this->any())
-            ->method('generate')
-            ->with('homepage')
-            ->willReturn('homepage');
-
-        return $mock;
-    }
-
-    protected function createTokenStorage($user = null)
+    public function testWithNotLoggedUser()
     {
-        $token = $this->createAuthenticationToken($user);
-
-        $mock = $this->getMockBuilder('Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface')
-            ->disableOriginalConstructor()
-            ->getMock();
+        $redirect = new Redirect($this->routerMock, new TokenStorage());
+        $redirectUrl = $redirect->to('/unread/list');
 
-        $mock
-            ->expects($this->any())
-            ->method('getToken')
-            ->will($this->returnValue($token))
-        ;
-
-        return $mock;
-    }
-
-    protected function createUser()
-    {
-        $mock = $this->getMockBuilder('Symfony\Component\Security\Core\User\UserInterface')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $mock
-            ->expects($this->any())
-            ->method('getPassword')
-            ->will($this->returnValue(static::PASSWORD))
-        ;
-
-        $mock
-            ->expects($this->any())
-            ->method('getSalt')
-            ->will($this->returnValue(static::SALT))
-        ;
-
-        return $mock;
+        $this->assertEquals('/unread/list', $redirectUrl);
     }
 
-    protected function createAuthenticationToken($user = null)
+    public function testUserForRedirectToHomepage()
     {
-        $mock = $this->getMockBuilder('Symfony\Component\Security\Core\Authentication\Token\TokenInterface')
-            ->disableOriginalConstructor()
-            ->getMock();
+        $this->token->getUser()->getConfig()->setActionMarkAsRead(Config::REDIRECT_TO_HOMEPAGE);
 
-        $mock
-            ->expects($this->any())
-            ->method('getUser')
-            ->will($this->returnValue($user))
-        ;
+        $redirectUrl = $this->redirect->to('/unread/list');
 
-        return $mock;
+        $this->assertEquals($this->routerMock->generate('homepage'), $redirectUrl);
     }
 }