Use local context to get messages
[lhc/web/wiklou.git] / includes / WebRequest.php
index 8f2bafd..d0430b9 100644 (file)
@@ -1259,15 +1259,26 @@ class FauxRequest extends WebRequest {
                $this->headers[$name] = $val;
        }
 
+       /**
+        * @param $key
+        * @return mixed
+        */
        public function getSessionData( $key ) {
                if( isset( $this->session[$key] ) )
                        return $this->session[$key];
        }
 
+       /**
+        * @param $key
+        * @param $data
+        */
        public function setSessionData( $key, $data ) {
                $this->session[$key] = $data;
        }
 
+       /**
+        * @return array|Mixed|null
+        */
        public function getSessionArray() {
                return $this->session;
        }
@@ -1295,3 +1306,51 @@ class FauxRequest extends WebRequest {
                return '127.0.0.1';
        }
 }
+
+/**
+ * Similar to FauxRequest, but only fakes URL parameters and method
+ * (POST or GET) and use the base request for the remaining stuff
+ * (cookies, session and headers).
+ *
+ * @ingroup HTTP
+ */
+class DerivativeRequest extends FauxRequest {
+       private $base;
+
+       public function __construct( WebRequest $base, $data, $wasPosted = false ) {
+               $this->base = $base;
+               parent::__construct( $data, $wasPosted );
+       }
+
+       public function getCookie( $key, $prefix = null, $default = null ) {
+               return $this->base->getCookie( $key, $prefix, $default );
+       }
+
+       public function checkSessionCookie() {
+               return $this->base->checkSessionCookie();
+       }
+
+       public function getHeader( $name ) {
+               return $this->base->getHeader( $name );
+       }
+
+       public function getAllHeaders() {
+               return $this->base->getAllHeaders();
+       }
+
+       public function getSessionData( $key ) {
+               return $this->base->getSessionData( $key );
+       }
+
+       public function setSessionData( $key, $data ) {
+               return $this->base->setSessionData( $key, $data );
+       }
+
+       public function getAcceptLang() {
+               return $this->base->getAcceptLang();
+       }
+
+       public function getIP() {
+               return $this->base->getIP();
+       }
+}