X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2FFauxRequestTest.php;h=9fe694da039f5de2ef7b6bd01520652ba900a99c;hb=4d94cc1432759b89b1e90b982c4e27a5157ebca3;hp=4622a3840053cecb4a17fbbbf121c91ee3d431c8;hpb=e3bd13db0c285f312e31bb1b7271af4628cca80c;p=lhc%2Fweb%2Fwiklou.git diff --git a/tests/phpunit/includes/FauxRequestTest.php b/tests/phpunit/includes/FauxRequestTest.php index 4622a38400..9fe694da03 100644 --- a/tests/phpunit/includes/FauxRequestTest.php +++ b/tests/phpunit/includes/FauxRequestTest.php @@ -1,8 +1,175 @@ 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::__construct + */ + public function testConstructWithSession() { + $session = SessionManager::singleton()->getEmptySession( new FauxRequest( [] ) ); + $this->assertInstanceOf( + FauxRequest::class, + new FauxRequest( [], false, $session ) + ); + } + + /** + * @covers FauxRequest::getText + */ + public function testGetText() { + $req = new FauxRequest( [ 'x' => 'Value' ] ); + $this->assertEquals( 'Value', $req->getText( 'x' ) ); + $this->assertEquals( '', $req->getText( 'z' ) ); + } + + // Integration test for parent method. + public function testGetVal() { + $req = new FauxRequest( [ 'crlf' => "A\r\nb" ] ); + $this->assertSame( "A\r\nb", $req->getVal( 'crlf' ), 'CRLF' ); + } + + // Integration test for parent method. + public function testGetRawVal() { + $req = new FauxRequest( [ + 'x' => 'Value', + 'y' => [ 'a' ], + 'crlf' => "A\r\nb" + ] ); + $this->assertSame( 'Value', $req->getRawVal( 'x' ) ); + $this->assertSame( null, $req->getRawVal( 'z' ), 'Not found' ); + $this->assertSame( null, $req->getRawVal( 'y' ), 'Array is ignored' ); + $this->assertSame( "A\r\nb", $req->getRawVal( 'crlf' ), 'CRLF' ); + } + + /** + * @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() { @@ -22,7 +189,7 @@ class FauxRequestTest extends MediaWikiTestCase { } /** - * @covers FauxRequest::getAllHeaders + * @covers FauxRequest::initHeaders */ public function testGetAllHeaders() { $_SERVER['HTTP_TEST'] = 'Example'; @@ -33,19 +200,36 @@ class FauxRequestTest extends MediaWikiTestCase { [], $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() ); } }