3 class FauxRequestTest
extends PHPUnit_Framework_TestCase
{
5 * @covers FauxRequest::__construct
7 public function testConstructInvalidData() {
8 $this->setExpectedException( MWException
::class, 'bogus data' );
9 $req = new FauxRequest( 'x' );
13 * @covers FauxRequest::__construct
15 public function testConstructInvalidSession() {
16 $this->setExpectedException( MWException
::class, 'bogus session' );
17 $req = new FauxRequest( [], false, 'x' );
21 * @covers FauxRequest::getText
23 public function testGetText() {
24 $req = new FauxRequest( [ 'x' => 'Value' ] );
25 $this->assertEquals( 'Value', $req->getText( 'x' ) );
26 $this->assertEquals( '', $req->getText( 'z' ) );
30 * @covers FauxRequest::getValues
32 public function testGetValues() {
33 $values = [ 'x' => 'Value', 'y' => '' ];
34 $req = new FauxRequest( $values );
35 $this->assertEquals( $values, $req->getValues() );
39 * @covers FauxRequest::getQueryValues
41 public function testGetQueryValues() {
42 $values = [ 'x' => 'Value', 'y' => '' ];
44 $req = new FauxRequest( $values );
45 $this->assertEquals( $values, $req->getQueryValues() );
46 $req = new FauxRequest( $values, /*wasPosted*/ true );
47 $this->assertEquals( [], $req->getQueryValues() );
51 * @covers FauxRequest::getMethod
53 public function testGetMethod() {
54 $req = new FauxRequest( [] );
55 $this->assertEquals( 'GET', $req->getMethod() );
56 $req = new FauxRequest( [], /*wasPosted*/ true );
57 $this->assertEquals( 'POST', $req->getMethod() );
61 * @covers FauxRequest::wasPosted
63 public function testWasPosted() {
64 $req = new FauxRequest( [] );
65 $this->assertFalse( $req->wasPosted() );
66 $req = new FauxRequest( [], /*wasPosted*/ true );
67 $this->assertTrue( $req->wasPosted() );
71 * @covers FauxRequest::getCookie
72 * @covers FauxRequest::setCookie
73 * @covers FauxRequest::setCookies
75 public function testCookies() {
76 $req = new FauxRequest();
77 $this->assertSame( null, $req->getCookie( 'z', '' ) );
79 $req->setCookie( 'x', 'Value', '' );
80 $this->assertEquals( 'Value', $req->getCookie( 'x', '' ) );
82 $req->setCookies( [ 'x' => 'One', 'y' => 'Two' ], '' );
83 $this->assertEquals( 'One', $req->getCookie( 'x', '' ) );
84 $this->assertEquals( 'Two', $req->getCookie( 'y', '' ) );
88 * @covers FauxRequest::getCookie
89 * @covers FauxRequest::setCookie
90 * @covers FauxRequest::setCookies
92 public function testCookiesDefaultPrefix() {
93 global $wgCookiePrefix;
94 $oldPrefix = $wgCookiePrefix;
95 $wgCookiePrefix = '_';
97 $req = new FauxRequest();
98 $this->assertSame( null, $req->getCookie( 'z' ) );
100 $req->setCookie( 'x', 'Value' );
101 $this->assertEquals( 'Value', $req->getCookie( 'x' ) );
103 $wgCookiePrefix = $oldPrefix;
107 * @covers FauxRequest::getRequestURL
109 public function testGetRequestURL() {
110 $req = new FauxRequest();
111 $this->setExpectedException( MWException
::class );
112 $req->getRequestURL();
116 * @covers FauxRequest::setRequestURL
117 * @covers FauxRequest::getRequestURL
119 public function testSetRequestURL() {
120 $req = new FauxRequest();
121 $req->setRequestURL( 'https://example.org' );
122 $this->assertEquals( 'https://example.org', $req->getRequestURL() );
126 * @covers FauxRequest::__construct
127 * @covers FauxRequest::getProtocol
129 public function testProtocol() {
130 $req = new FauxRequest();
131 $this->assertEquals( 'http', $req->getProtocol() );
132 $req = new FauxRequest( [], false, null, 'http' );
133 $this->assertEquals( 'http', $req->getProtocol() );
134 $req = new FauxRequest( [], false, null, 'https' );
135 $this->assertEquals( 'https', $req->getProtocol() );
139 * @covers FauxRequest::setHeader
140 * @covers FauxRequest::setHeaders
141 * @covers FauxRequest::getHeader
143 public function testGetSetHeader() {
144 $value = 'text/plain, text/html';
146 $request = new FauxRequest();
147 $request->setHeader( 'Accept', $value );
149 $this->assertEquals( $request->getHeader( 'Nonexistent' ), false );
150 $this->assertEquals( $request->getHeader( 'Accept' ), $value );
151 $this->assertEquals( $request->getHeader( 'ACCEPT' ), $value );
152 $this->assertEquals( $request->getHeader( 'accept' ), $value );
154 $request->getHeader( 'Accept', WebRequest
::GETHEADER_LIST
),
155 [ 'text/plain', 'text/html' ]
160 * @covers FauxRequest::initHeaders
162 public function testGetAllHeaders() {
163 $_SERVER['HTTP_TEST'] = 'Example';
165 $request = new FauxRequest();
169 $request->getAllHeaders()
174 $request->getHeader( 'test' )
179 * @covers FauxRequest::__construct
180 * @covers FauxRequest::getSessionArray
182 public function testSessionData() {
183 $values = [ 'x' => 'Value', 'y' => '' ];
185 $req = new FauxRequest( [], false, /*session*/ $values );
186 $this->assertEquals( $values, $req->getSessionArray() );
188 $req = new FauxRequest();
189 $this->assertSame( null, $req->getSessionArray() );
193 * @covers FauxRequest::getRawQueryString
194 * @covers FauxRequest::getRawPostString
195 * @covers FauxRequest::getRawInput
197 public function testDummies() {
198 $req = new FauxRequest();
199 $this->assertEquals( '', $req->getRawQueryString() );
200 $this->assertEquals( '', $req->getRawPostString() );
201 $this->assertEquals( '', $req->getRawInput() );