<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\Routing\Tests\Matcher;
use Symfony\Component\Routing\Route;
use Symfony\Component\Routing\RouteCollection;
use Symfony\Component\Routing\RequestContext;
class RedirectableUrlMatcherTest extends \PHPUnit_Framework_TestCase {
public function testRedirectWhenNoSlash() {
$coll = new RouteCollection();
$coll
->add('foo', new Route('/foo/'));
$matcher = $this
->getMockForAbstractClass('Symfony\\Component\\Routing\\Matcher\\RedirectableUrlMatcher', array(
$coll,
new RequestContext(),
));
$matcher
->expects($this
->once())
->method('redirect');
$matcher
->match('/foo');
}
/**
* @expectedException Symfony\Component\Routing\Exception\ResourceNotFoundException
*/
public function testRedirectWhenNoSlashForNonSafeMethod() {
$coll = new RouteCollection();
$coll
->add('foo', new Route('/foo/'));
$context = new RequestContext();
$context
->setMethod('POST');
$matcher = $this
->getMockForAbstractClass('Symfony\\Component\\Routing\\Matcher\\RedirectableUrlMatcher', array(
$coll,
$context,
));
$matcher
->match('/foo');
}
public function testSchemeRedirect() {
$coll = new RouteCollection();
$coll
->add('foo', new Route('/foo', array(), array(
'_scheme' => 'https',
)));
$matcher = $this
->getMockForAbstractClass('Symfony\\Component\\Routing\\Matcher\\RedirectableUrlMatcher', array(
$coll,
new RequestContext(),
));
$matcher
->expects($this
->once())
->method('redirect')
->with('/foo', 'foo', 'https')
->will($this
->returnValue(array(
'_route' => 'foo',
)));
$matcher
->match('/foo');
}
}
Name | Description |
---|---|
RedirectableUrlMatcherTest |