diff options
Diffstat (limited to 'src/Wallabag')
-rw-r--r-- | src/Wallabag/CoreBundle/Helper/Redirect.php | 17 | ||||
-rw-r--r-- | src/Wallabag/CoreBundle/Tests/Helper/RedirectTest.php | 12 |
2 files changed, 18 insertions, 11 deletions
diff --git a/src/Wallabag/CoreBundle/Helper/Redirect.php b/src/Wallabag/CoreBundle/Helper/Redirect.php index 0921c3f9..c14c79d1 100644 --- a/src/Wallabag/CoreBundle/Helper/Redirect.php +++ b/src/Wallabag/CoreBundle/Helper/Redirect.php | |||
@@ -4,6 +4,9 @@ namespace Wallabag\CoreBundle\Helper; | |||
4 | 4 | ||
5 | use Symfony\Component\Routing\Router; | 5 | use Symfony\Component\Routing\Router; |
6 | 6 | ||
7 | /** | ||
8 | * Manage redirections to avoid redirecting to empty routes. | ||
9 | */ | ||
7 | class Redirect | 10 | class Redirect |
8 | { | 11 | { |
9 | private $router; | 12 | private $router; |
@@ -21,16 +24,14 @@ class Redirect | |||
21 | */ | 24 | */ |
22 | public function to($url, $fallback = '') | 25 | public function to($url, $fallback = '') |
23 | { | 26 | { |
24 | $returnUrl = $url; | 27 | if (null !== $url) { |
28 | return $url; | ||
29 | } | ||
25 | 30 | ||
26 | if (null === $url) { | 31 | if ('' === $fallback) { |
27 | if ('' !== $fallback) { | 32 | return $this->router->generate('homepage'); |
28 | $returnUrl = $fallback; | ||
29 | } else { | ||
30 | $returnUrl = $this->router->generate('homepage'); | ||
31 | } | ||
32 | } | 33 | } |
33 | 34 | ||
34 | return $returnUrl; | 35 | return $fallback; |
35 | } | 36 | } |
36 | } | 37 | } |
diff --git a/src/Wallabag/CoreBundle/Tests/Helper/RedirectTest.php b/src/Wallabag/CoreBundle/Tests/Helper/RedirectTest.php index da19cf58..f4aecc80 100644 --- a/src/Wallabag/CoreBundle/Tests/Helper/RedirectTest.php +++ b/src/Wallabag/CoreBundle/Tests/Helper/RedirectTest.php | |||
@@ -6,7 +6,7 @@ use Wallabag\CoreBundle\Helper\Redirect; | |||
6 | 6 | ||
7 | class RedirectTest extends \PHPUnit_Framework_TestCase | 7 | class RedirectTest extends \PHPUnit_Framework_TestCase |
8 | { | 8 | { |
9 | /** @var \Symfony\Component\Routing\Router */ | 9 | /** @var \PHPUnit_Framework_MockObject_MockObject */ |
10 | private $routerMock; | 10 | private $routerMock; |
11 | 11 | ||
12 | /** @var Redirect */ | 12 | /** @var Redirect */ |
@@ -41,9 +41,15 @@ class RedirectTest extends \PHPUnit_Framework_TestCase | |||
41 | 41 | ||
42 | private function getRouterMock() | 42 | private function getRouterMock() |
43 | { | 43 | { |
44 | return $this->getMockBuilder('Symfony\Component\Routing\Router') | 44 | $mock = $this->getMockBuilder('Symfony\Component\Routing\Router') |
45 | ->setMethods(['generate']) | ||
46 | ->disableOriginalConstructor() | 45 | ->disableOriginalConstructor() |
47 | ->getMock(); | 46 | ->getMock(); |
47 | |||
48 | $mock->expects($this->any()) | ||
49 | ->method('generate') | ||
50 | ->with('homepage') | ||
51 | ->willReturn('homepage'); | ||
52 | |||
53 | return $mock; | ||
48 | } | 54 | } |
49 | } | 55 | } |