use Symfony\Component\Routing\Router;
+/**
+ * Manage redirections to avoid redirecting to empty routes.
+ */
class Redirect
{
private $router;
*/
public function to($url, $fallback = '')
{
- $returnUrl = $url;
+ if (null !== $url) {
+ return $url;
+ }
- if (null === $url) {
- if ('' !== $fallback) {
- $returnUrl = $fallback;
- } else {
- $returnUrl = $this->router->generate('homepage');
- }
+ if ('' === $fallback) {
+ return $this->router->generate('homepage');
}
- return $returnUrl;
+ return $fallback;
}
}
class RedirectTest extends \PHPUnit_Framework_TestCase
{
- /** @var \Symfony\Component\Routing\Router */
+ /** @var \PHPUnit_Framework_MockObject_MockObject */
private $routerMock;
/** @var Redirect */
private function getRouterMock()
{
- return $this->getMockBuilder('Symfony\Component\Routing\Router')
- ->setMethods(['generate'])
+ $mock = $this->getMockBuilder('Symfony\Component\Routing\Router')
->disableOriginalConstructor()
->getMock();
+
+ $mock->expects($this->any())
+ ->method('generate')
+ ->with('homepage')
+ ->willReturn('homepage');
+
+ return $mock;
}
}