X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FFauxRequest.php;h=f049d2ece0d8e769afc6b1969decfb3f2b37cc75;hb=a2ea9f8b9289f197844e3282c2ac39e59c549996;hp=888f853a4d1df29d3ced9ed31435d85180d3c510;hpb=d828147333a7d55f13a8c37a68d2f902749999a8;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/FauxRequest.php b/includes/FauxRequest.php index 888f853a4d..f049d2ece0 100644 --- a/includes/FauxRequest.php +++ b/includes/FauxRequest.php @@ -23,6 +23,8 @@ * @file */ +use MediaWiki\Session\SessionManager; + /** * WebRequest clone which takes values from a provided array. * @@ -30,7 +32,6 @@ */ class FauxRequest extends WebRequest { private $wasPosted = false; - private $session = array(); private $requestUrl; protected $cookies = array(); @@ -38,7 +39,8 @@ class FauxRequest extends WebRequest { * @param array $data Array of *non*-urlencoded key => value pairs, the * fake GET/POST values * @param bool $wasPosted Whether to treat the data as POST - * @param array|null $session Session array or null + * @param MediaWiki\\Session\\Session|array|null $session Session, session + * data array, or null * @param string $protocol 'http' or 'https' * @throws MWException */ @@ -53,8 +55,16 @@ class FauxRequest extends WebRequest { throw new MWException( "FauxRequest() got bogus data" ); } $this->wasPosted = $wasPosted; - if ( $session ) { - $this->session = $session; + if ( $session instanceof MediaWiki\Session\Session ) { + $this->sessionId = $session->getSessionId(); + } elseif ( is_array( $session ) ) { + $mwsession = SessionManager::singleton()->getEmptySession( $this ); + $this->sessionId = $mwsession->getSessionId(); + foreach ( $session as $key => $value ) { + $mwsession->set( $key, $value ); + } + } elseif ( $session !== null ) { + throw new MWException( "FauxRequest() got bogus session" ); } $this->protocol = $protocol; } @@ -140,10 +150,6 @@ class FauxRequest extends WebRequest { } } - public function checkSessionCookie() { - return false; - } - /** * @since 1.25 */ @@ -186,31 +192,15 @@ class FauxRequest extends WebRequest { } /** - * @param string $key * @return array|null */ - public function getSessionData( $key ) { - if ( isset( $this->session[$key] ) ) { - return $this->session[$key]; + public function getSessionArray() { + if ( $this->sessionId !== null ) { + return iterator_to_array( $this->getSession() ); } return null; } - /** - * @param string $key - * @param array $data - */ - public function setSessionData( $key, $data ) { - $this->session[$key] = $data; - } - - /** - * @return array|mixed|null - */ - public function getSessionArray() { - return $this->session; - } - /** * FauxRequests shouldn't depend on raw request data (but that could be implemented here) * @return string