/** * @param string $url * @param array $cookies * @return MobileContext */ private function makeContext($url = '/', $cookies = array()) { $query = array(); if ($url) { $params = wfParseUrl(wfExpandUrl($url)); if (isset($params['query'])) { $query = wfCgiToArray($params['query']); } } $request = new FauxRequest($query); $request->setRequestURL($url); $request->setCookies($cookies, ''); $context = new DerivativeContext(RequestContext::getMain()); $context->setRequest($request); $context->setOutput(new OutputPage($context)); $instance = unserialize('O:13:"MobileContext":0:{}'); $instance->setContext($context); return $instance; }
public function testGetSessionIdFromCookie() { $this->setMwGlobals('wgCookiePrefix', 'wgCookiePrefix'); $request = new \FauxRequest(); $request->setCookies(array('' => 'empty---------------------------', 'Foo' => 'foo-----------------------------', 'wgCookiePrefixFoo' => 'wgfoo---------------------------', 'BarFoo' => 'foobar--------------------------', 'bad' => 'bad'), ''); $provider = \TestingAccessWrapper::newFromObject($this->getProvider(null)); try { $provider->getSessionIdFromCookie($request); $this->fail('Expected exception not thrown'); } catch (\BadMethodCallException $ex) { $this->assertSame('MediaWiki\\Session\\ImmutableSessionProviderWithCookie::getSessionIdFromCookie ' . 'may not be called when $this->sessionCookieName === null', $ex->getMessage()); } $provider = \TestingAccessWrapper::newFromObject($this->getProvider('Foo')); $this->assertSame('wgfoo---------------------------', $provider->getSessionIdFromCookie($request)); $provider = \TestingAccessWrapper::newFromObject($this->getProvider('Foo', 'Bar')); $this->assertSame('foobar--------------------------', $provider->getSessionIdFromCookie($request)); $provider = \TestingAccessWrapper::newFromObject($this->getProvider('Foo', '')); $this->assertSame('foo-----------------------------', $provider->getSessionIdFromCookie($request)); $provider = \TestingAccessWrapper::newFromObject($this->getProvider('bad', '')); $this->assertSame(null, $provider->getSessionIdFromCookie($request)); $provider = \TestingAccessWrapper::newFromObject($this->getProvider('none', '')); $this->assertSame(null, $provider->getSessionIdFromCookie($request)); }
public function testGetCookie() { $provider = new CookieSessionProvider(['priority' => 1, 'sessionName' => 'MySessionName', 'cookieOptions' => ['prefix' => 'x']]); $provider->setLogger(new \Psr\Log\NullLogger()); $provider->setConfig($this->getConfig()); $provider->setManager(SessionManager::singleton()); $provider = \TestingAccessWrapper::newFromObject($provider); $request = new \FauxRequest(); $request->setCookies(['xFoo' => 'foo!', 'xBar' => 'deleted'], ''); $this->assertSame('foo!', $provider->getCookie($request, 'Foo', 'x')); $this->assertNull($provider->getCookie($request, 'Bar', 'x')); $this->assertNull($provider->getCookie($request, 'Baz', 'x')); }
public function testSetLoggedOutCookie() { $provider = \TestingAccessWrapper::newFromObject(new CookieSessionProvider(array('priority' => 1, 'sessionName' => 'MySessionName', 'cookieOptions' => array('prefix' => 'x')))); $provider->setLogger(new \Psr\Log\NullLogger()); $provider->setConfig($this->getConfig()); $provider->setManager(SessionManager::singleton()); $t1 = time(); $t2 = time() - 86400 * 2; // Set it $request = new \FauxRequest(); $provider->setLoggedOutCookie($t1, $request); $this->assertSame((string) $t1, $request->response()->getCookie('xLoggedOut')); // Too old $request = new \FauxRequest(); $provider->setLoggedOutCookie($t2, $request); $this->assertSame(null, $request->response()->getCookie('xLoggedOut')); // Don't reset if it's already set $request = new \FauxRequest(); $request->setCookies(array('xLoggedOut' => $t1), ''); $provider->setLoggedOutCookie($t1, $request); $this->assertSame(null, $request->response()->getCookie('xLoggedOut')); }
/** * @covers FauxRequest::getCookie * @covers FauxRequest::setCookie * @covers FauxRequest::setCookies */ public function testCookies() { $req = new FauxRequest(); $this->assertSame(null, $req->getCookie('z', '')); $req->setCookie('x', 'Value', ''); $this->assertEquals('Value', $req->getCookie('x', '')); $req->setCookies(['x' => 'One', 'y' => 'Two'], ''); $this->assertEquals('One', $req->getCookie('x', '')); $this->assertEquals('Two', $req->getCookie('y', '')); }