Blame | Last modification | View Log | RSS feed
<?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'));}}