/**
  * @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'));
 }
Ejemplo n.º 4
0
 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'));
 }
Ejemplo n.º 5
0
 /**
  * @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', ''));
 }