Вход Регистрация
Файл: symfony-2.7/src/Symfony/Component/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'));
    }
}
Онлайн: 2
Реклама