Subversion Repositories php-qbpwcf

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
3 liveuser 1
<?php
2
 
3
/*
4
 * This file is part of the Symfony package.
5
 *
6
 * (c) Fabien Potencier <fabien@symfony.com>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
 
12
namespace Symfony\Component\Routing\Tests;
13
 
14
use Symfony\Component\HttpFoundation\Request;
15
use Symfony\Component\Routing\RequestContext;
16
 
17
class RequestContextTest extends \PHPUnit_Framework_TestCase
18
{
19
    public function testConstruct()
20
    {
21
        $requestContext = new RequestContext(
22
            'foo',
23
            'post',
24
            'foo.bar',
25
            'HTTPS',
26
            8080,
27
            444,
28
            '/baz',
29
            'bar=foobar'
30
        );
31
 
32
        $this->assertEquals('foo', $requestContext->getBaseUrl());
33
        $this->assertEquals('POST', $requestContext->getMethod());
34
        $this->assertEquals('foo.bar', $requestContext->getHost());
35
        $this->assertEquals('https', $requestContext->getScheme());
36
        $this->assertSame(8080, $requestContext->getHttpPort());
37
        $this->assertSame(444, $requestContext->getHttpsPort());
38
        $this->assertEquals('/baz', $requestContext->getPathInfo());
39
        $this->assertEquals('bar=foobar', $requestContext->getQueryString());
40
    }
41
 
42
    public function testFromRequest()
43
    {
44
        $request = Request::create('https://test.com:444/foo?bar=baz');
45
        $requestContext = new RequestContext();
46
        $requestContext->setHttpPort(123);
47
        $requestContext->fromRequest($request);
48
 
49
        $this->assertEquals('', $requestContext->getBaseUrl());
50
        $this->assertEquals('GET', $requestContext->getMethod());
51
        $this->assertEquals('test.com', $requestContext->getHost());
52
        $this->assertEquals('https', $requestContext->getScheme());
53
        $this->assertEquals('/foo', $requestContext->getPathInfo());
54
        $this->assertEquals('bar=baz', $requestContext->getQueryString());
55
        $this->assertSame(123, $requestContext->getHttpPort());
56
        $this->assertSame(444, $requestContext->getHttpsPort());
57
 
58
        $request = Request::create('http://test.com:8080/foo?bar=baz');
59
        $requestContext = new RequestContext();
60
        $requestContext->setHttpsPort(567);
61
        $requestContext->fromRequest($request);
62
 
63
        $this->assertSame(8080, $requestContext->getHttpPort());
64
        $this->assertSame(567, $requestContext->getHttpsPort());
65
    }
66
 
67
    public function testGetParameters()
68
    {
69
        $requestContext = new RequestContext();
70
        $this->assertEquals(array(), $requestContext->getParameters());
71
 
72
        $requestContext->setParameters(array('foo' => 'bar'));
73
        $this->assertEquals(array('foo' => 'bar'), $requestContext->getParameters());
74
    }
75
 
76
    public function testHasParameter()
77
    {
78
        $requestContext = new RequestContext();
79
        $requestContext->setParameters(array('foo' => 'bar'));
80
 
81
        $this->assertTrue($requestContext->hasParameter('foo'));
82
        $this->assertFalse($requestContext->hasParameter('baz'));
83
    }
84
 
85
    public function testGetParameter()
86
    {
87
        $requestContext = new RequestContext();
88
        $requestContext->setParameters(array('foo' => 'bar'));
89
 
90
        $this->assertEquals('bar', $requestContext->getParameter('foo'));
91
        $this->assertNull($requestContext->getParameter('baz'));
92
    }
93
 
94
    public function testSetParameter()
95
    {
96
        $requestContext = new RequestContext();
97
        $requestContext->setParameter('foo', 'bar');
98
 
99
        $this->assertEquals('bar', $requestContext->getParameter('foo'));
100
    }
101
 
102
    public function testMethod()
103
    {
104
        $requestContext = new RequestContext();
105
        $requestContext->setMethod('post');
106
 
107
        $this->assertSame('POST', $requestContext->getMethod());
108
    }
109
 
110
    public function testScheme()
111
    {
112
        $requestContext = new RequestContext();
113
        $requestContext->setScheme('HTTPS');
114
 
115
        $this->assertSame('https', $requestContext->getScheme());
116
    }
117
 
118
    public function testHost()
119
    {
120
        $requestContext = new RequestContext();
121
        $requestContext->setHost('eXampLe.com');
122
 
123
        $this->assertSame('example.com', $requestContext->getHost());
124
    }
125
 
126
    public function testQueryString()
127
    {
128
        $requestContext = new RequestContext();
129
        $requestContext->setQueryString(null);
130
 
131
        $this->assertSame('', $requestContext->getQueryString());
132
    }
133
 
134
    public function testPort()
135
    {
136
        $requestContext = new RequestContext();
137
        $requestContext->setHttpPort('123');
138
        $requestContext->setHttpsPort('456');
139
 
140
        $this->assertSame(123, $requestContext->getHttpPort());
141
        $this->assertSame(456, $requestContext->getHttpsPort());
142
    }
143
 
144
    public function testFluentInterface()
145
    {
146
        $requestContext = new RequestContext();
147
 
148
        $this->assertSame($requestContext, $requestContext->setBaseUrl('/app.php'));
149
        $this->assertSame($requestContext, $requestContext->setPathInfo('/index'));
150
        $this->assertSame($requestContext, $requestContext->setMethod('POST'));
151
        $this->assertSame($requestContext, $requestContext->setScheme('https'));
152
        $this->assertSame($requestContext, $requestContext->setHost('example.com'));
153
        $this->assertSame($requestContext, $requestContext->setQueryString('foo=bar'));
154
        $this->assertSame($requestContext, $requestContext->setHttpPort(80));
155
        $this->assertSame($requestContext, $requestContext->setHttpsPort(443));
156
        $this->assertSame($requestContext, $requestContext->setParameters(array()));
157
        $this->assertSame($requestContext, $requestContext->setParameter('foo', 'bar'));
158
    }
159
}