<?php
-class FauxRequestTest extends MediaWikiTestCase {
+class FauxRequestTest extends PHPUnit_Framework_TestCase {
+ /**
+ * @covers FauxRequest::__construct
+ */
+ public function testConstructInvalidData() {
+ $this->setExpectedException( MWException::class, 'bogus data' );
+ $req = new FauxRequest( 'x' );
+ }
+
+ /**
+ * @covers FauxRequest::__construct
+ */
+ public function testConstructInvalidSession() {
+ $this->setExpectedException( MWException::class, 'bogus session' );
+ $req = new FauxRequest( [], false, 'x' );
+ }
+
+ /**
+ * @covers FauxRequest::getText
+ */
+ public function testGetText() {
+ $req = new FauxRequest( [ 'x' => 'Value' ] );
+ $this->assertEquals( 'Value', $req->getText( 'x' ) );
+ $this->assertEquals( '', $req->getText( 'z' ) );
+ }
+
+ /**
+ * @covers FauxRequest::getValues
+ */
+ public function testGetValues() {
+ $values = [ 'x' => 'Value', 'y' => '' ];
+ $req = new FauxRequest( $values );
+ $this->assertEquals( $values, $req->getValues() );
+ }
+
+ /**
+ * @covers FauxRequest::getQueryValues
+ */
+ public function testGetQueryValues() {
+ $values = [ 'x' => 'Value', 'y' => '' ];
+
+ $req = new FauxRequest( $values );
+ $this->assertEquals( $values, $req->getQueryValues() );
+ $req = new FauxRequest( $values, /*wasPosted*/ true );
+ $this->assertEquals( [], $req->getQueryValues() );
+ }
+
+ /**
+ * @covers FauxRequest::getMethod
+ */
+ public function testGetMethod() {
+ $req = new FauxRequest( [] );
+ $this->assertEquals( 'GET', $req->getMethod() );
+ $req = new FauxRequest( [], /*wasPosted*/ true );
+ $this->assertEquals( 'POST', $req->getMethod() );
+ }
+
+ /**
+ * @covers FauxRequest::wasPosted
+ */
+ public function testWasPosted() {
+ $req = new FauxRequest( [] );
+ $this->assertFalse( $req->wasPosted() );
+ $req = new FauxRequest( [], /*wasPosted*/ true );
+ $this->assertTrue( $req->wasPosted() );
+ }
+
+ /**
+ * @covers FauxRequest::getCookie
+ * @covers FauxRequest::setCookie
+ * @covers FauxRequest::setCookies
+ */
+ public function testCookies() {
+ $req = new FauxRequest();
+ $this->assertSame( null, $req->getCookie( 'z', '' ) );
+
+ $req->setCookie( 'x', 'Value', '' );
+ $this->assertEquals( 'Value', $req->getCookie( 'x', '' ) );
+
+ $req->setCookies( [ 'x' => 'One', 'y' => 'Two' ], '' );
+ $this->assertEquals( 'One', $req->getCookie( 'x', '' ) );
+ $this->assertEquals( 'Two', $req->getCookie( 'y', '' ) );
+ }
+
+ /**
+ * @covers FauxRequest::getCookie
+ * @covers FauxRequest::setCookie
+ * @covers FauxRequest::setCookies
+ */
+ public function testCookiesDefaultPrefix() {
+ global $wgCookiePrefix;
+ $oldPrefix = $wgCookiePrefix;
+ $wgCookiePrefix = '_';
+
+ $req = new FauxRequest();
+ $this->assertSame( null, $req->getCookie( 'z' ) );
+
+ $req->setCookie( 'x', 'Value' );
+ $this->assertEquals( 'Value', $req->getCookie( 'x' ) );
+
+ $wgCookiePrefix = $oldPrefix;
+ }
+
+ /**
+ * @covers FauxRequest::getRequestURL
+ */
+ public function testGetRequestURL() {
+ $req = new FauxRequest();
+ $this->setExpectedException( MWException::class );
+ $req->getRequestURL();
+ }
+
+ /**
+ * @covers FauxRequest::setRequestURL
+ * @covers FauxRequest::getRequestURL
+ */
+ public function testSetRequestURL() {
+ $req = new FauxRequest();
+ $req->setRequestURL( 'https://example.org' );
+ $this->assertEquals( 'https://example.org', $req->getRequestURL() );
+ }
+
+ /**
+ * @covers FauxRequest::__construct
+ * @covers FauxRequest::getProtocol
+ */
+ public function testProtocol() {
+ $req = new FauxRequest();
+ $this->assertEquals( 'http', $req->getProtocol() );
+ $req = new FauxRequest( [], false, null, 'http' );
+ $this->assertEquals( 'http', $req->getProtocol() );
+ $req = new FauxRequest( [], false, null, 'https' );
+ $this->assertEquals( 'https', $req->getProtocol() );
+ }
+
/**
* @covers FauxRequest::setHeader
+ * @covers FauxRequest::setHeaders
* @covers FauxRequest::getHeader
*/
public function testGetSetHeader() {
}
/**
- * @covers FauxRequest::getAllHeaders
+ * @covers FauxRequest::initHeaders
*/
public function testGetAllHeaders() {
$_SERVER['HTTP_TEST'] = 'Example';
[],
$request->getAllHeaders()
);
+
+ $this->assertEquals(
+ false,
+ $request->getHeader( 'test' )
+ );
}
/**
- * @covers FauxRequest::getHeader
+ * @covers FauxRequest::__construct
+ * @covers FauxRequest::getSessionArray
*/
- public function testGetHeader() {
- $_SERVER['HTTP_TEST'] = 'Example';
+ public function testSessionData() {
+ $values = [ 'x' => 'Value', 'y' => '' ];
- $request = new FauxRequest();
+ $req = new FauxRequest( [], false, /*session*/ $values );
+ $this->assertEquals( $values, $req->getSessionArray() );
- $this->assertEquals(
- false,
- $request->getHeader( 'test' )
- );
+ $req = new FauxRequest();
+ $this->assertSame( null, $req->getSessionArray() );
+ }
+
+ /**
+ * @covers FauxRequest::getRawQueryString
+ * @covers FauxRequest::getRawPostString
+ * @covers FauxRequest::getRawInput
+ */
+ public function testDummies() {
+ $req = new FauxRequest();
+ $this->assertEquals( '', $req->getRawQueryString() );
+ $this->assertEquals( '', $req->getRawPostString() );
+ $this->assertEquals( '', $req->getRawInput() );
}
}