Yaffs site version 1.1
[yaffs-website] / vendor / symfony / routing / Tests / RequestContextTest.php
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 PHPUnit\Framework\TestCase;
15 use Symfony\Component\HttpFoundation\Request;
16 use Symfony\Component\Routing\RequestContext;
17
18 class RequestContextTest extends TestCase
19 {
20     public function testConstruct()
21     {
22         $requestContext = new RequestContext(
23             'foo',
24             'post',
25             'foo.bar',
26             'HTTPS',
27             8080,
28             444,
29             '/baz',
30             'bar=foobar'
31         );
32
33         $this->assertEquals('foo', $requestContext->getBaseUrl());
34         $this->assertEquals('POST', $requestContext->getMethod());
35         $this->assertEquals('foo.bar', $requestContext->getHost());
36         $this->assertEquals('https', $requestContext->getScheme());
37         $this->assertSame(8080, $requestContext->getHttpPort());
38         $this->assertSame(444, $requestContext->getHttpsPort());
39         $this->assertEquals('/baz', $requestContext->getPathInfo());
40         $this->assertEquals('bar=foobar', $requestContext->getQueryString());
41     }
42
43     public function testFromRequest()
44     {
45         $request = Request::create('https://test.com:444/foo?bar=baz');
46         $requestContext = new RequestContext();
47         $requestContext->setHttpPort(123);
48         $requestContext->fromRequest($request);
49
50         $this->assertEquals('', $requestContext->getBaseUrl());
51         $this->assertEquals('GET', $requestContext->getMethod());
52         $this->assertEquals('test.com', $requestContext->getHost());
53         $this->assertEquals('https', $requestContext->getScheme());
54         $this->assertEquals('/foo', $requestContext->getPathInfo());
55         $this->assertEquals('bar=baz', $requestContext->getQueryString());
56         $this->assertSame(123, $requestContext->getHttpPort());
57         $this->assertSame(444, $requestContext->getHttpsPort());
58
59         $request = Request::create('http://test.com:8080/foo?bar=baz');
60         $requestContext = new RequestContext();
61         $requestContext->setHttpsPort(567);
62         $requestContext->fromRequest($request);
63
64         $this->assertSame(8080, $requestContext->getHttpPort());
65         $this->assertSame(567, $requestContext->getHttpsPort());
66     }
67
68     public function testGetParameters()
69     {
70         $requestContext = new RequestContext();
71         $this->assertEquals(array(), $requestContext->getParameters());
72
73         $requestContext->setParameters(array('foo' => 'bar'));
74         $this->assertEquals(array('foo' => 'bar'), $requestContext->getParameters());
75     }
76
77     public function testHasParameter()
78     {
79         $requestContext = new RequestContext();
80         $requestContext->setParameters(array('foo' => 'bar'));
81
82         $this->assertTrue($requestContext->hasParameter('foo'));
83         $this->assertFalse($requestContext->hasParameter('baz'));
84     }
85
86     public function testGetParameter()
87     {
88         $requestContext = new RequestContext();
89         $requestContext->setParameters(array('foo' => 'bar'));
90
91         $this->assertEquals('bar', $requestContext->getParameter('foo'));
92         $this->assertNull($requestContext->getParameter('baz'));
93     }
94
95     public function testSetParameter()
96     {
97         $requestContext = new RequestContext();
98         $requestContext->setParameter('foo', 'bar');
99
100         $this->assertEquals('bar', $requestContext->getParameter('foo'));
101     }
102
103     public function testMethod()
104     {
105         $requestContext = new RequestContext();
106         $requestContext->setMethod('post');
107
108         $this->assertSame('POST', $requestContext->getMethod());
109     }
110
111     public function testScheme()
112     {
113         $requestContext = new RequestContext();
114         $requestContext->setScheme('HTTPS');
115
116         $this->assertSame('https', $requestContext->getScheme());
117     }
118
119     public function testHost()
120     {
121         $requestContext = new RequestContext();
122         $requestContext->setHost('eXampLe.com');
123
124         $this->assertSame('example.com', $requestContext->getHost());
125     }
126
127     public function testQueryString()
128     {
129         $requestContext = new RequestContext();
130         $requestContext->setQueryString(null);
131
132         $this->assertSame('', $requestContext->getQueryString());
133     }
134
135     public function testPort()
136     {
137         $requestContext = new RequestContext();
138         $requestContext->setHttpPort('123');
139         $requestContext->setHttpsPort('456');
140
141         $this->assertSame(123, $requestContext->getHttpPort());
142         $this->assertSame(456, $requestContext->getHttpsPort());
143     }
144
145     public function testFluentInterface()
146     {
147         $requestContext = new RequestContext();
148
149         $this->assertSame($requestContext, $requestContext->setBaseUrl('/app.php'));
150         $this->assertSame($requestContext, $requestContext->setPathInfo('/index'));
151         $this->assertSame($requestContext, $requestContext->setMethod('POST'));
152         $this->assertSame($requestContext, $requestContext->setScheme('https'));
153         $this->assertSame($requestContext, $requestContext->setHost('example.com'));
154         $this->assertSame($requestContext, $requestContext->setQueryString('foo=bar'));
155         $this->assertSame($requestContext, $requestContext->setHttpPort(80));
156         $this->assertSame($requestContext, $requestContext->setHttpsPort(443));
157         $this->assertSame($requestContext, $requestContext->setParameters(array()));
158         $this->assertSame($requestContext, $requestContext->setParameter('foo', 'bar'));
159     }
160 }