FauxRequest: Avoid header leak
authorumherirrender <umherirrender_de.wp@web.de>
Wed, 16 Sep 2015 16:35:37 +0000 (18:35 +0200)
committerKrinkle <krinklemail@gmail.com>
Wed, 16 Sep 2015 16:52:58 +0000 (16:52 +0000)
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
tests/phpunit/includes/FauxRequestTest.php

index 850f101..b4b8be9 100644 (file)
@@ -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
index eca5b39..07214b2 100644 (file)
@@ -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' )
+               );
+       }
 }