Add cookies and improve headers in FauxRequest
For testing, it can be useful for a FauxRequest to actually contain cookies. And for convenience, it's useful to allow setting headers by passing an array rather than by making multiple calls to ->setHeader(). Change-Id: I3b84246e954aae594490927d2b0a57336af2e3a5
This commit is contained in:
parent
0f87becd68
commit
53b0df09ab
1 changed files with 42 additions and 3 deletions
|
|
@ -1297,6 +1297,7 @@ class FauxRequest extends WebRequest {
|
||||||
private $wasPosted = false;
|
private $wasPosted = false;
|
||||||
private $session = array();
|
private $session = array();
|
||||||
private $requestUrl;
|
private $requestUrl;
|
||||||
|
protected $cookies = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array $data Array of *non*-urlencoded key => value pairs, the
|
* @param array $data Array of *non*-urlencoded key => value pairs, the
|
||||||
|
|
@ -1371,7 +1372,36 @@ class FauxRequest extends WebRequest {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getCookie( $key, $prefix = null, $default = null ) {
|
public function getCookie( $key, $prefix = null, $default = null ) {
|
||||||
return $default;
|
if ( $prefix === null ) {
|
||||||
|
global $wgCookiePrefix;
|
||||||
|
$prefix = $wgCookiePrefix;
|
||||||
|
}
|
||||||
|
$name = $prefix . $key;
|
||||||
|
return isset( $this->cookies[$name] ) ? $this->cookies[$name] : $default;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $name Unprefixed name of the cookie to set
|
||||||
|
* @param string|null $value Value of the cookie to set
|
||||||
|
* @param string|null $prefix Cookie prefix. Defaults to $wgCookiePrefix
|
||||||
|
*/
|
||||||
|
public function setCookie( $key, $value, $prefix = null ) {
|
||||||
|
$this->setCookies( array( $key => $value ), $prefix );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array $cookies
|
||||||
|
* @param string|null $prefix Cookie prefix. Defaults to $wgCookiePrefix
|
||||||
|
*/
|
||||||
|
public function setCookies( $cookies, $prefix = null ) {
|
||||||
|
if ( $prefix === null ) {
|
||||||
|
global $wgCookiePrefix;
|
||||||
|
$prefix = $wgCookiePrefix;
|
||||||
|
}
|
||||||
|
foreach ( $cookies as $key => $value ) {
|
||||||
|
$name = $prefix . $key;
|
||||||
|
$this->cookies[$name] = $value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function checkSessionCookie() {
|
public function checkSessionCookie() {
|
||||||
|
|
@ -1402,8 +1432,17 @@ class FauxRequest extends WebRequest {
|
||||||
* @param string $val
|
* @param string $val
|
||||||
*/
|
*/
|
||||||
public function setHeader( $name, $val ) {
|
public function setHeader( $name, $val ) {
|
||||||
$name = strtoupper( $name );
|
$this->setHeaders( array( $name => $val ) );
|
||||||
$this->headers[$name] = $val;
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array $headers
|
||||||
|
*/
|
||||||
|
public function setHeaders( $headers ) {
|
||||||
|
foreach ( $headers as $name => $val ) {
|
||||||
|
$name = strtoupper( $name );
|
||||||
|
$this->headers[$name] = $val;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue