Вход Регистрация
Файл: src/vendor/symfony/routing/Tests/RequestContextTest.php
Строк: 170
<?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 SymfonyComponentRoutingTests;

use 
SymfonyComponentHttpFoundationRequest;
use 
SymfonyComponentRoutingRequestContext;

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'));
    }
}
Онлайн: 1
Реклама