Move FauxResponse class to own file
authorUmherirrender <umherirrender_de.wp@web.de>
Fri, 15 Feb 2019 19:11:49 +0000 (20:11 +0100)
committerReedy <reedy@wikimedia.org>
Sat, 2 Mar 2019 18:55:13 +0000 (18:55 +0000)
Similar to FauxRequest

Change-Id: Ia9e4e7287ade605899d935db7c9f1f017e0bcb85

.phpcs.xml
autoload.php
includes/FauxResponse.php [new file with mode: 0644]
includes/WebResponse.php

index 99afa3b..a091fcc 100644 (file)
                <exclude-pattern>*/includes/StubObject\.php</exclude-pattern>
                <exclude-pattern>*/includes/upload/UploadStash\.php</exclude-pattern>
                <exclude-pattern>*/includes/utils/AutoloadGenerator\.php</exclude-pattern>
-               <exclude-pattern>*/includes/WebResponse\.php</exclude-pattern>
                <exclude-pattern>*/maintenance/dumpIterator\.php</exclude-pattern>
                <exclude-pattern>*/maintenance/Maintenance\.php</exclude-pattern>
                <exclude-pattern>*/maintenance/findDeprecated\.php</exclude-pattern>
index aaf6f51..3bf4582 100644 (file)
@@ -498,7 +498,7 @@ $wgAutoloadLocalClasses = [
        'FakeResultWrapper' => __DIR__ . '/includes/libs/rdbms/database/resultwrapper/FakeResultWrapper.php',
        'FatalError' => __DIR__ . '/includes/exception/FatalError.php',
        'FauxRequest' => __DIR__ . '/includes/FauxRequest.php',
-       'FauxResponse' => __DIR__ . '/includes/WebResponse.php',
+       'FauxResponse' => __DIR__ . '/includes/FauxResponse.php',
        'FeedItem' => __DIR__ . '/includes/Feed.php',
        'FeedUtils' => __DIR__ . '/includes/FeedUtils.php',
        'FetchText' => __DIR__ . '/maintenance/fetchText.php',
diff --git a/includes/FauxResponse.php b/includes/FauxResponse.php
new file mode 100644 (file)
index 0000000..24c396e
--- /dev/null
@@ -0,0 +1,150 @@
+<?php
+/**
+ * Classes used to send headers and cookies back to the user
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+/**
+ * @ingroup HTTP
+ */
+class FauxResponse extends WebResponse {
+       private $headers;
+       private $cookies = [];
+       private $code;
+
+       /**
+        * Stores a HTTP header
+        * @param string $string Header to output
+        * @param bool $replace Replace current similar header
+        * @param null|int $http_response_code Forces the HTTP response code to the specified value.
+        */
+       public function header( $string, $replace = true, $http_response_code = null ) {
+               if ( substr( $string, 0, 5 ) == 'HTTP/' ) {
+                       $parts = explode( ' ', $string, 3 );
+                       $this->code = intval( $parts[1] );
+               } else {
+                       list( $key, $val ) = array_map( 'trim', explode( ":", $string, 2 ) );
+
+                       $key = strtoupper( $key );
+
+                       if ( $replace || !isset( $this->headers[$key] ) ) {
+                               $this->headers[$key] = $val;
+                       }
+               }
+
+               if ( $http_response_code !== null ) {
+                       $this->code = intval( $http_response_code );
+               }
+       }
+
+       /**
+        * @since 1.26
+        * @param int $code Status code
+        */
+       public function statusHeader( $code ) {
+               $this->code = intval( $code );
+       }
+
+       public function headersSent() {
+               return false;
+       }
+
+       /**
+        * @param string $key The name of the header to get (case insensitive).
+        * @return string|null The header value (if set); null otherwise.
+        */
+       public function getHeader( $key ) {
+               $key = strtoupper( $key );
+
+               return $this->headers[$key] ?? null;
+       }
+
+       /**
+        * Get the HTTP response code, null if not set
+        *
+        * @return int|null
+        */
+       public function getStatusCode() {
+               return $this->code;
+       }
+
+       /**
+        * @param string $name The name of the cookie.
+        * @param string $value The value to be stored in the cookie.
+        * @param int|null $expire Ignored in this faux subclass.
+        * @param array $options Ignored in this faux subclass.
+        */
+       public function setCookie( $name, $value, $expire = 0, $options = [] ) {
+               global $wgCookiePath, $wgCookiePrefix, $wgCookieDomain;
+               global $wgCookieSecure, $wgCookieExpiration, $wgCookieHttpOnly;
+
+               $options = array_filter( $options, function ( $a ) {
+                       return $a !== null;
+               } ) + [
+                       'prefix' => $wgCookiePrefix,
+                       'domain' => $wgCookieDomain,
+                       'path' => $wgCookiePath,
+                       'secure' => $wgCookieSecure,
+                       'httpOnly' => $wgCookieHttpOnly,
+                       'raw' => false,
+               ];
+
+               if ( $expire === null ) {
+                       $expire = 0; // Session cookie
+               } elseif ( $expire == 0 && $wgCookieExpiration != 0 ) {
+                       $expire = time() + $wgCookieExpiration;
+               }
+
+               $this->cookies[$options['prefix'] . $name] = [
+                       'value' => (string)$value,
+                       'expire' => (int)$expire,
+                       'path' => (string)$options['path'],
+                       'domain' => (string)$options['domain'],
+                       'secure' => (bool)$options['secure'],
+                       'httpOnly' => (bool)$options['httpOnly'],
+                       'raw' => (bool)$options['raw'],
+               ];
+       }
+
+       /**
+        * @param string $name
+        * @return string|null
+        */
+       public function getCookie( $name ) {
+               if ( isset( $this->cookies[$name] ) ) {
+                       return $this->cookies[$name]['value'];
+               }
+               return null;
+       }
+
+       /**
+        * @param string $name
+        * @return array|null
+        */
+       public function getCookieData( $name ) {
+               return $this->cookies[$name] ?? null;
+       }
+
+       /**
+        * @return array
+        */
+       public function getCookies() {
+               return $this->cookies;
+       }
+}
index 3a4faf0..9396a41 100644 (file)
@@ -235,132 +235,3 @@ class WebResponse {
                return (bool)self::$setCookies;
        }
 }
-
-/**
- * @ingroup HTTP
- */
-class FauxResponse extends WebResponse {
-       private $headers;
-       private $cookies = [];
-       private $code;
-
-       /**
-        * Stores a HTTP header
-        * @param string $string Header to output
-        * @param bool $replace Replace current similar header
-        * @param null|int $http_response_code Forces the HTTP response code to the specified value.
-        */
-       public function header( $string, $replace = true, $http_response_code = null ) {
-               if ( substr( $string, 0, 5 ) == 'HTTP/' ) {
-                       $parts = explode( ' ', $string, 3 );
-                       $this->code = intval( $parts[1] );
-               } else {
-                       list( $key, $val ) = array_map( 'trim', explode( ":", $string, 2 ) );
-
-                       $key = strtoupper( $key );
-
-                       if ( $replace || !isset( $this->headers[$key] ) ) {
-                               $this->headers[$key] = $val;
-                       }
-               }
-
-               if ( $http_response_code !== null ) {
-                       $this->code = intval( $http_response_code );
-               }
-       }
-
-       /**
-        * @since 1.26
-        * @param int $code Status code
-        */
-       public function statusHeader( $code ) {
-               $this->code = intval( $code );
-       }
-
-       public function headersSent() {
-               return false;
-       }
-
-       /**
-        * @param string $key The name of the header to get (case insensitive).
-        * @return string|null The header value (if set); null otherwise.
-        */
-       public function getHeader( $key ) {
-               $key = strtoupper( $key );
-
-               return $this->headers[$key] ?? null;
-       }
-
-       /**
-        * Get the HTTP response code, null if not set
-        *
-        * @return int|null
-        */
-       public function getStatusCode() {
-               return $this->code;
-       }
-
-       /**
-        * @param string $name The name of the cookie.
-        * @param string $value The value to be stored in the cookie.
-        * @param int|null $expire Ignored in this faux subclass.
-        * @param array $options Ignored in this faux subclass.
-        */
-       public function setCookie( $name, $value, $expire = 0, $options = [] ) {
-               global $wgCookiePath, $wgCookiePrefix, $wgCookieDomain;
-               global $wgCookieSecure, $wgCookieExpiration, $wgCookieHttpOnly;
-
-               $options = array_filter( $options, function ( $a ) {
-                       return $a !== null;
-               } ) + [
-                       'prefix' => $wgCookiePrefix,
-                       'domain' => $wgCookieDomain,
-                       'path' => $wgCookiePath,
-                       'secure' => $wgCookieSecure,
-                       'httpOnly' => $wgCookieHttpOnly,
-                       'raw' => false,
-               ];
-
-               if ( $expire === null ) {
-                       $expire = 0; // Session cookie
-               } elseif ( $expire == 0 && $wgCookieExpiration != 0 ) {
-                       $expire = time() + $wgCookieExpiration;
-               }
-
-               $this->cookies[$options['prefix'] . $name] = [
-                       'value' => (string)$value,
-                       'expire' => (int)$expire,
-                       'path' => (string)$options['path'],
-                       'domain' => (string)$options['domain'],
-                       'secure' => (bool)$options['secure'],
-                       'httpOnly' => (bool)$options['httpOnly'],
-                       'raw' => (bool)$options['raw'],
-               ];
-       }
-
-       /**
-        * @param string $name
-        * @return string|null
-        */
-       public function getCookie( $name ) {
-               if ( isset( $this->cookies[$name] ) ) {
-                       return $this->cookies[$name]['value'];
-               }
-               return null;
-       }
-
-       /**
-        * @param string $name
-        * @return array|null
-        */
-       public function getCookieData( $name ) {
-               return $this->cookies[$name] ?? null;
-       }
-
-       /**
-        * @return array
-        */
-       public function getCookies() {
-               return $this->cookies;
-       }
-}