From 3ab5510ef751d5c9e720fb299dc0163cdf2b4d39 Mon Sep 17 00:00:00 2001 From: umherirrender Date: Wed, 16 Sep 2015 18:35:37 +0200 Subject: [PATCH] FauxRequest: Avoid header leak Actually override initHeaders to avoid init of the header, if no header was set. The tests was taken from I4c06369968e. Follows-up 578a0c082f. Change-Id: I86b2a9bae2f5938374fd9e5e46997c3fdfe87e39 --- includes/WebRequest.php | 9 ++++++- tests/phpunit/includes/FauxRequestTest.php | 28 ++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/includes/WebRequest.php b/includes/WebRequest.php index 850f10103f..b4b8be9b15 100644 --- a/includes/WebRequest.php +++ b/includes/WebRequest.php @@ -871,7 +871,7 @@ class WebRequest { /** * Initialise the header list */ - private function initHeaders() { + protected function initHeaders() { if ( count( $this->headers ) ) { return; } @@ -1324,6 +1324,13 @@ class FauxRequest extends WebRequest { $this->protocol = $protocol; } + /** + * Initialise the header list + */ + protected function initHeaders() { + // Nothing to init + } + /** * @param string $name * @param string $default diff --git a/tests/phpunit/includes/FauxRequestTest.php b/tests/phpunit/includes/FauxRequestTest.php index eca5b395fb..07214b215c 100644 --- a/tests/phpunit/includes/FauxRequestTest.php +++ b/tests/phpunit/includes/FauxRequestTest.php @@ -20,4 +20,32 @@ class FauxRequestTest extends MediaWikiTestCase { array( 'text/plain', 'text/html' ) ); } + + /** + * @covers FauxRequest::getAllHeaders + */ + public function testGetAllHeaders() { + $_SERVER['HTTP_TEST'] = 'Example'; + + $request = new FauxRequest(); + + $this->assertEquals( + array(), + $request->getAllHeaders() + ); + } + + /** + * @covers FauxRequest::getHeader + */ + public function testGetHeader() { + $_SERVER['HTTP_TEST'] = 'Example'; + + $request = new FauxRequest(); + + $this->assertEquals( + false, + $request->getHeader( 'test' ) + ); + } } -- 2.20.1