You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
159 lines
5.5 KiB
159 lines
5.5 KiB
<?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; |
|
|
|
use Symfony\Component\HttpFoundation\Request; |
|
use Symfony\Component\Routing\RequestContext; |
|
|
|
class RequestContextTest extends \PHPUnit_Framework_TestCase |
|
{ |
|
public function testConstruct() |
|
{ |
|
$requestContext = new RequestContext( |
|
'foo', |
|
'post', |
|
'foo.bar', |
|
'HTTPS', |
|
8080, |
|
444, |
|
'/baz', |
|
'bar=foobar' |
|
); |
|
|
|
$this->assertEquals('foo', $requestContext->getBaseUrl()); |
|
$this->assertEquals('POST', $requestContext->getMethod()); |
|
$this->assertEquals('foo.bar', $requestContext->getHost()); |
|
$this->assertEquals('https', $requestContext->getScheme()); |
|
$this->assertSame(8080, $requestContext->getHttpPort()); |
|
$this->assertSame(444, $requestContext->getHttpsPort()); |
|
$this->assertEquals('/baz', $requestContext->getPathInfo()); |
|
$this->assertEquals('bar=foobar', $requestContext->getQueryString()); |
|
} |
|
|
|
public function testFromRequest() |
|
{ |
|
$request = Request::create('https://test.com:444/foo?bar=baz'); |
|
$requestContext = new RequestContext(); |
|
$requestContext->setHttpPort(123); |
|
$requestContext->fromRequest($request); |
|
|
|
$this->assertEquals('', $requestContext->getBaseUrl()); |
|
$this->assertEquals('GET', $requestContext->getMethod()); |
|
$this->assertEquals('test.com', $requestContext->getHost()); |
|
$this->assertEquals('https', $requestContext->getScheme()); |
|
$this->assertEquals('/foo', $requestContext->getPathInfo()); |
|
$this->assertEquals('bar=baz', $requestContext->getQueryString()); |
|
$this->assertSame(123, $requestContext->getHttpPort()); |
|
$this->assertSame(444, $requestContext->getHttpsPort()); |
|
|
|
$request = Request::create('http://test.com:8080/foo?bar=baz'); |
|
$requestContext = new RequestContext(); |
|
$requestContext->setHttpsPort(567); |
|
$requestContext->fromRequest($request); |
|
|
|
$this->assertSame(8080, $requestContext->getHttpPort()); |
|
$this->assertSame(567, $requestContext->getHttpsPort()); |
|
} |
|
|
|
public function testGetParameters() |
|
{ |
|
$requestContext = new RequestContext(); |
|
$this->assertEquals(array(), $requestContext->getParameters()); |
|
|
|
$requestContext->setParameters(array('foo' => 'bar')); |
|
$this->assertEquals(array('foo' => 'bar'), $requestContext->getParameters()); |
|
} |
|
|
|
public function testHasParameter() |
|
{ |
|
$requestContext = new RequestContext(); |
|
$requestContext->setParameters(array('foo' => 'bar')); |
|
|
|
$this->assertTrue($requestContext->hasParameter('foo')); |
|
$this->assertFalse($requestContext->hasParameter('baz')); |
|
} |
|
|
|
public function testGetParameter() |
|
{ |
|
$requestContext = new RequestContext(); |
|
$requestContext->setParameters(array('foo' => 'bar')); |
|
|
|
$this->assertEquals('bar', $requestContext->getParameter('foo')); |
|
$this->assertNull($requestContext->getParameter('baz')); |
|
} |
|
|
|
public function testSetParameter() |
|
{ |
|
$requestContext = new RequestContext(); |
|
$requestContext->setParameter('foo', 'bar'); |
|
|
|
$this->assertEquals('bar', $requestContext->getParameter('foo')); |
|
} |
|
|
|
public function testMethod() |
|
{ |
|
$requestContext = new RequestContext(); |
|
$requestContext->setMethod('post'); |
|
|
|
$this->assertSame('POST', $requestContext->getMethod()); |
|
} |
|
|
|
public function testScheme() |
|
{ |
|
$requestContext = new RequestContext(); |
|
$requestContext->setScheme('HTTPS'); |
|
|
|
$this->assertSame('https', $requestContext->getScheme()); |
|
} |
|
|
|
public function testHost() |
|
{ |
|
$requestContext = new RequestContext(); |
|
$requestContext->setHost('eXampLe.com'); |
|
|
|
$this->assertSame('example.com', $requestContext->getHost()); |
|
} |
|
|
|
public function testQueryString() |
|
{ |
|
$requestContext = new RequestContext(); |
|
$requestContext->setQueryString(null); |
|
|
|
$this->assertSame('', $requestContext->getQueryString()); |
|
} |
|
|
|
public function testPort() |
|
{ |
|
$requestContext = new RequestContext(); |
|
$requestContext->setHttpPort('123'); |
|
$requestContext->setHttpsPort('456'); |
|
|
|
$this->assertSame(123, $requestContext->getHttpPort()); |
|
$this->assertSame(456, $requestContext->getHttpsPort()); |
|
} |
|
|
|
public function testFluentInterface() |
|
{ |
|
$requestContext = new RequestContext(); |
|
|
|
$this->assertSame($requestContext, $requestContext->setBaseUrl('/app.php')); |
|
$this->assertSame($requestContext, $requestContext->setPathInfo('/index')); |
|
$this->assertSame($requestContext, $requestContext->setMethod('POST')); |
|
$this->assertSame($requestContext, $requestContext->setScheme('https')); |
|
$this->assertSame($requestContext, $requestContext->setHost('example.com')); |
|
$this->assertSame($requestContext, $requestContext->setQueryString('foo=bar')); |
|
$this->assertSame($requestContext, $requestContext->setHttpPort(80)); |
|
$this->assertSame($requestContext, $requestContext->setHttpsPort(443)); |
|
$this->assertSame($requestContext, $requestContext->setParameters(array())); |
|
$this->assertSame($requestContext, $requestContext->setParameter('foo', 'bar')); |
|
} |
|
}
|
|
|