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 public function setUp()
21 $this->routerMock
= $this->getMockBuilder('Symfony\Component\Routing\Router')
22 ->disableOriginalConstructor()
25 $this->routerMock
->expects($this->any())
28 ->willReturn('homepage');
31 $user->setName('youpi');
32 $user->setEmail('youpi@youpi.org');
33 $user->setUsername('youpi');
34 $user->setPlainPassword('youpi');
35 $user->setEnabled(true);
36 $user->addRole('ROLE_SUPER_ADMIN');
38 $config = new Config($user);
39 $config->setTheme('material');
40 $config->setItemsPerPage(30);
41 $config->setReadingSpeed(1);
42 $config->setLanguage('en');
43 $config->setPocketConsumerKey('xxxxx');
44 $config->setActionMarkAsRead(Config
::REDIRECT_TO_CURRENT_PAGE
);
46 $user->setConfig($config);
48 $this->token
= new UsernamePasswordToken($user, 'password', 'key');
49 $tokenStorage = new TokenStorage();
50 $tokenStorage->setToken($this->token
);
52 $this->redirect
= new Redirect($this->routerMock
, $tokenStorage);
55 public function testRedirectToNullWithFallback()
57 $redirectUrl = $this->redirect
->to(null, 'fallback');
59 $this->assertEquals('fallback', $redirectUrl);
62 public function testRedirectToNullWithoutFallback()
64 $redirectUrl = $this->redirect
->to(null);
66 $this->assertEquals($this->routerMock
->generate('homepage'), $redirectUrl);
69 public function testRedirectToValidUrl()
71 $redirectUrl = $this->redirect
->to('/unread/list');
73 $this->assertEquals('/unread/list', $redirectUrl);
76 public function testWithNotLoggedUser()
78 $redirect = new Redirect($this->routerMock
, new TokenStorage());
79 $redirectUrl = $redirect->to('/unread/list');
81 $this->assertEquals('/unread/list', $redirectUrl);
84 public function testUserForRedirectToHomepage()
86 $this->token
->getUser()->getConfig()->setActionMarkAsRead(Config
::REDIRECT_TO_HOMEPAGE
);
88 $redirectUrl = $this->redirect
->to('/unread/list');
90 $this->assertEquals($this->routerMock
->generate('homepage'), $redirectUrl);