Merge "Revert "Gallery: Use intrinsic width for gallery to center caption""
[lhc/web/wiklou.git] / tests / phpunit / includes / FauxRequestTest.php
1 <?php
2
3 class FauxRequestTest extends PHPUnit_Framework_TestCase {
4 /**
5 * @covers FauxRequest::__construct
6 */
7 public function testConstructInvalidData() {
8 $this->setExpectedException( MWException::class, 'bogus data' );
9 $req = new FauxRequest( 'x' );
10 }
11
12 /**
13 * @covers FauxRequest::__construct
14 */
15 public function testConstructInvalidSession() {
16 $this->setExpectedException( MWException::class, 'bogus session' );
17 $req = new FauxRequest( [], false, 'x' );
18 }
19
20 /**
21 * @covers FauxRequest::getText
22 */
23 public function testGetText() {
24 $req = new FauxRequest( [ 'x' => 'Value' ] );
25 $this->assertEquals( 'Value', $req->getText( 'x' ) );
26 $this->assertEquals( '', $req->getText( 'z' ) );
27 }
28
29 // Integration test for parent method.
30 public function testGetVal() {
31 $req = new FauxRequest( [ 'crlf' => "A\r\nb" ] );
32 $this->assertSame( "A\r\nb", $req->getVal( 'crlf' ), 'CRLF' );
33 }
34
35 // Integration test for parent method.
36 public function testGetRawVal() {
37 $req = new FauxRequest( [
38 'x' => 'Value',
39 'y' => [ 'a' ],
40 'crlf' => "A\r\nb"
41 ] );
42 $this->assertSame( 'Value', $req->getRawVal( 'x' ) );
43 $this->assertSame( null, $req->getRawVal( 'z' ), 'Not found' );
44 $this->assertSame( null, $req->getRawVal( 'y' ), 'Array is ignored' );
45 $this->assertSame( "A\r\nb", $req->getRawVal( 'crlf' ), 'CRLF' );
46 }
47
48 /**
49 * @covers FauxRequest::getValues
50 */
51 public function testGetValues() {
52 $values = [ 'x' => 'Value', 'y' => '' ];
53 $req = new FauxRequest( $values );
54 $this->assertEquals( $values, $req->getValues() );
55 }
56
57 /**
58 * @covers FauxRequest::getQueryValues
59 */
60 public function testGetQueryValues() {
61 $values = [ 'x' => 'Value', 'y' => '' ];
62
63 $req = new FauxRequest( $values );
64 $this->assertEquals( $values, $req->getQueryValues() );
65 $req = new FauxRequest( $values, /*wasPosted*/ true );
66 $this->assertEquals( [], $req->getQueryValues() );
67 }
68
69 /**
70 * @covers FauxRequest::getMethod
71 */
72 public function testGetMethod() {
73 $req = new FauxRequest( [] );
74 $this->assertEquals( 'GET', $req->getMethod() );
75 $req = new FauxRequest( [], /*wasPosted*/ true );
76 $this->assertEquals( 'POST', $req->getMethod() );
77 }
78
79 /**
80 * @covers FauxRequest::wasPosted
81 */
82 public function testWasPosted() {
83 $req = new FauxRequest( [] );
84 $this->assertFalse( $req->wasPosted() );
85 $req = new FauxRequest( [], /*wasPosted*/ true );
86 $this->assertTrue( $req->wasPosted() );
87 }
88
89 /**
90 * @covers FauxRequest::getCookie
91 * @covers FauxRequest::setCookie
92 * @covers FauxRequest::setCookies
93 */
94 public function testCookies() {
95 $req = new FauxRequest();
96 $this->assertSame( null, $req->getCookie( 'z', '' ) );
97
98 $req->setCookie( 'x', 'Value', '' );
99 $this->assertEquals( 'Value', $req->getCookie( 'x', '' ) );
100
101 $req->setCookies( [ 'x' => 'One', 'y' => 'Two' ], '' );
102 $this->assertEquals( 'One', $req->getCookie( 'x', '' ) );
103 $this->assertEquals( 'Two', $req->getCookie( 'y', '' ) );
104 }
105
106 /**
107 * @covers FauxRequest::getCookie
108 * @covers FauxRequest::setCookie
109 * @covers FauxRequest::setCookies
110 */
111 public function testCookiesDefaultPrefix() {
112 global $wgCookiePrefix;
113 $oldPrefix = $wgCookiePrefix;
114 $wgCookiePrefix = '_';
115
116 $req = new FauxRequest();
117 $this->assertSame( null, $req->getCookie( 'z' ) );
118
119 $req->setCookie( 'x', 'Value' );
120 $this->assertEquals( 'Value', $req->getCookie( 'x' ) );
121
122 $wgCookiePrefix = $oldPrefix;
123 }
124
125 /**
126 * @covers FauxRequest::getRequestURL
127 */
128 public function testGetRequestURL() {
129 $req = new FauxRequest();
130 $this->setExpectedException( MWException::class );
131 $req->getRequestURL();
132 }
133
134 /**
135 * @covers FauxRequest::setRequestURL
136 * @covers FauxRequest::getRequestURL
137 */
138 public function testSetRequestURL() {
139 $req = new FauxRequest();
140 $req->setRequestURL( 'https://example.org' );
141 $this->assertEquals( 'https://example.org', $req->getRequestURL() );
142 }
143
144 /**
145 * @covers FauxRequest::__construct
146 * @covers FauxRequest::getProtocol
147 */
148 public function testProtocol() {
149 $req = new FauxRequest();
150 $this->assertEquals( 'http', $req->getProtocol() );
151 $req = new FauxRequest( [], false, null, 'http' );
152 $this->assertEquals( 'http', $req->getProtocol() );
153 $req = new FauxRequest( [], false, null, 'https' );
154 $this->assertEquals( 'https', $req->getProtocol() );
155 }
156
157 /**
158 * @covers FauxRequest::setHeader
159 * @covers FauxRequest::setHeaders
160 * @covers FauxRequest::getHeader
161 */
162 public function testGetSetHeader() {
163 $value = 'text/plain, text/html';
164
165 $request = new FauxRequest();
166 $request->setHeader( 'Accept', $value );
167
168 $this->assertEquals( $request->getHeader( 'Nonexistent' ), false );
169 $this->assertEquals( $request->getHeader( 'Accept' ), $value );
170 $this->assertEquals( $request->getHeader( 'ACCEPT' ), $value );
171 $this->assertEquals( $request->getHeader( 'accept' ), $value );
172 $this->assertEquals(
173 $request->getHeader( 'Accept', WebRequest::GETHEADER_LIST ),
174 [ 'text/plain', 'text/html' ]
175 );
176 }
177
178 /**
179 * @covers FauxRequest::initHeaders
180 */
181 public function testGetAllHeaders() {
182 $_SERVER['HTTP_TEST'] = 'Example';
183
184 $request = new FauxRequest();
185
186 $this->assertEquals(
187 [],
188 $request->getAllHeaders()
189 );
190
191 $this->assertEquals(
192 false,
193 $request->getHeader( 'test' )
194 );
195 }
196
197 /**
198 * @covers FauxRequest::__construct
199 * @covers FauxRequest::getSessionArray
200 */
201 public function testSessionData() {
202 $values = [ 'x' => 'Value', 'y' => '' ];
203
204 $req = new FauxRequest( [], false, /*session*/ $values );
205 $this->assertEquals( $values, $req->getSessionArray() );
206
207 $req = new FauxRequest();
208 $this->assertSame( null, $req->getSessionArray() );
209 }
210
211 /**
212 * @covers FauxRequest::getRawQueryString
213 * @covers FauxRequest::getRawPostString
214 * @covers FauxRequest::getRawInput
215 */
216 public function testDummies() {
217 $req = new FauxRequest();
218 $this->assertEquals( '', $req->getRawQueryString() );
219 $this->assertEquals( '', $req->getRawPostString() );
220 $this->assertEquals( '', $req->getRawInput() );
221 }
222 }