3 namespace Tests\Wallabag\CoreBundle\Helper
;
5 use Wallabag\CoreBundle\Entity\Config
;
6 use Wallabag\UserBundle\Entity\User
;
7 use Wallabag\CoreBundle\Helper\Redirect
;
8 use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken
;
9 use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage
;
11 class RedirectTest
extends \PHPUnit_Framework_TestCase
13 /** @var \PHPUnit_Framework_MockObject_MockObject */
19 const PASSWORD
= 's3Cr3t';
20 const SALT
= '^S4lt$';
22 public function setUp()
24 $this->routerMock = $this->getMockBuilder('Symfony\Component\Routing\Router
')
25 ->disableOriginalConstructor()
28 $this->routerMock->expects($this->any())
31 ->willReturn('homepage
');
34 $user->setName('youpi
');
35 $user->setEmail('youpi
@youpi
.org
');
36 $user->setUsername('youpi
');
37 $user->setPlainPassword('youpi
');
38 $user->setEnabled(true);
39 $user->addRole('ROLE_SUPER_ADMIN
');
41 $config = new Config($user);
42 $config->setTheme('material
');
43 $config->setItemsPerPage(30);
44 $config->setReadingSpeed(1);
45 $config->setLanguage('en
');
46 $config->setPocketConsumerKey('xxxxx
');
47 $config->setActionMarkAsRead(Config::REDIRECT_TO_CURRENT_PAGE);
49 $user->setConfig($config);
51 $this->token = new UsernamePasswordToken($user, 'password
', 'key
');
52 $tokenStorage = new TokenStorage();
53 $tokenStorage->setToken($this->token);
55 $this->redirect = new Redirect($this->routerMock, $tokenStorage);
58 public function testRedirectToNullWithFallback()
60 $redirectUrl = $this->redirect->to(null, 'fallback
');
62 $this->assertEquals('fallback
', $redirectUrl);
65 public function testRedirectToNullWithoutFallback()
67 $redirectUrl = $this->redirect->to(null);
69 $this->assertEquals($this->routerMock->generate('homepage
'), $redirectUrl);
72 public function testRedirectToValidUrl()
74 $redirectUrl = $this->redirect->to('/unread
/list');
76 $this->assertEquals('/unread
/list', $redirectUrl);
79 public function testWithNotLoggedUser()
81 $redirect = new Redirect($this->routerMock, new TokenStorage());
82 $redirectUrl = $redirect->to('/unread
/list');
84 $this->assertEquals('/unread
/list', $redirectUrl);
87 public function testUserForRedirectToHomepage()
89 $this->token->getUser()->getConfig()->setActionMarkAsRead(Config::REDIRECT_TO_HOMEPAGE);
91 $redirectUrl = $this->redirect->to('/unread
/list');
93 $this->assertEquals($this->routerMock->generate('homepage
'), $redirectUrl);