[FrameworkBundle] Fix a bug in the RedirectableUrlMatcher
This commit is contained in:
parent
f6b4f89f8f
commit
66d0d3dd4b
@ -11,13 +11,12 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\Routing;
|
||||
|
||||
use Symfony\Component\Routing\Matcher\UrlMatcher;
|
||||
use Symfony\Component\Routing\Matcher\RedirectableUrlMatcherInterface;
|
||||
use Symfony\Component\Routing\Matcher\RedirectableUrlMatcher as BaseMatcher;
|
||||
|
||||
/**
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*/
|
||||
class RedirectableUrlMatcher extends UrlMatcher implements RedirectableUrlMatcherInterface
|
||||
class RedirectableUrlMatcher extends BaseMatcher
|
||||
{
|
||||
/**
|
||||
* Redirects the user to another URL.
|
||||
|
@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony framework.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* This source file is subject to the MIT license that is bundled
|
||||
* with this source code in the file LICENSE.
|
||||
*/
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\Tests\Routing;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Routing\Router;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\Routing\RouteCollection;
|
||||
use Symfony\Bundle\FrameworkBundle\Routing\RedirectableUrlMatcher;
|
||||
use Symfony\Component\Routing\RequestContext;
|
||||
|
||||
class RedirectableUrlMatcherTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testRedirectWhenNoSlash()
|
||||
{
|
||||
$coll = new RouteCollection();
|
||||
$coll->add('foo', new Route('/foo/'));
|
||||
|
||||
$matcher = new RedirectableUrlMatcher($coll, $context = new RequestContext());
|
||||
|
||||
$this->assertEquals(array(
|
||||
'_controller' => 'Symfony\Bundle\FrameworkBundle\Controller\RedirectController::urlRedirectAction',
|
||||
'path' => '/foo/',
|
||||
'permanent' => true,
|
||||
'scheme' => null,
|
||||
'httpPort' => $context->getHttpPort(),
|
||||
'httpsPort' => $context->getHttpsPort(),
|
||||
'_route' => null,
|
||||
),
|
||||
$matcher->match('/foo')
|
||||
);
|
||||
}
|
||||
|
||||
public function testSchemeRedirect()
|
||||
{
|
||||
$coll = new RouteCollection();
|
||||
$coll->add('foo', new Route('/foo', array(), array('_scheme' => 'https')));
|
||||
|
||||
$matcher = new RedirectableUrlMatcher($coll, $context = new RequestContext());
|
||||
|
||||
$this->assertEquals(array(
|
||||
'_controller' => 'Symfony\Bundle\FrameworkBundle\Controller\RedirectController::urlRedirectAction',
|
||||
'path' => '/foo',
|
||||
'permanent' => true,
|
||||
'scheme' => 'https',
|
||||
'httpPort' => $context->getHttpPort(),
|
||||
'httpsPort' => $context->getHttpsPort(),
|
||||
'_route' => 'foo',
|
||||
),
|
||||
$matcher->match('/foo')
|
||||
);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user