예제 #1
0
 public function testConstructor()
 {
     $backend = TestUtils::getDummySessionBackend();
     \TestingAccessWrapper::newFromObject($backend)->requests = array(-1 => 'dummy');
     \TestingAccessWrapper::newFromObject($backend)->id = new SessionId('abc');
     $session = new Session($backend, 42);
     $priv = \TestingAccessWrapper::newFromObject($session);
     $this->assertSame($backend, $priv->backend);
     $this->assertSame(42, $priv->index);
     $request = new \FauxRequest();
     $priv2 = \TestingAccessWrapper::newFromObject($session->sessionWithRequest($request));
     $this->assertSame($backend, $priv2->backend);
     $this->assertNotSame($priv->index, $priv2->index);
     $this->assertSame($request, $priv2->getRequest());
 }
예제 #2
0
 public function testGetAllowedUserRights()
 {
     $provider = $this->getMockForAbstractClass('MediaWiki\\Session\\SessionProvider');
     $backend = TestUtils::getDummySessionBackend();
     try {
         $provider->getAllowedUserRights($backend);
         $this->fail('Expected exception not thrown');
     } catch (\InvalidArgumentException $ex) {
         $this->assertSame('Backend\'s provider isn\'t $this', $ex->getMessage());
     }
     \TestingAccessWrapper::newFromObject($backend)->provider = $provider;
     $this->assertNull($provider->getAllowedUserRights($backend));
 }
 public function testGetAllowedUserRights()
 {
     $logger = new \TestLogger(true);
     $provider = $this->getProvider();
     $provider->setLogger($logger);
     $backend = TestUtils::getDummySessionBackend();
     $backendPriv = \TestingAccessWrapper::newFromObject($backend);
     try {
         $provider->getAllowedUserRights($backend);
         $this->fail('Expected exception not thrown');
     } catch (\InvalidArgumentException $ex) {
         $this->assertSame('Backend\'s provider isn\'t $this', $ex->getMessage());
     }
     $backendPriv->provider = $provider;
     $backendPriv->providerMetadata = ['rights' => ['foo', 'bar', 'baz']];
     $this->assertSame(['foo', 'bar', 'baz'], $provider->getAllowedUserRights($backend));
     $this->assertSame([], $logger->getBuffer());
     $backendPriv->providerMetadata = ['foo' => 'bar'];
     $this->assertSame([], $provider->getAllowedUserRights($backend));
     $this->assertSame([[LogLevel::DEBUG, 'MediaWiki\\Session\\BotPasswordSessionProvider::getAllowedUserRights: ' . 'No provider metadata, returning no rights allowed']], $logger->getBuffer());
     $logger->clearBuffer();
     $backendPriv->providerMetadata = ['rights' => 'bar'];
     $this->assertSame([], $provider->getAllowedUserRights($backend));
     $this->assertSame([[LogLevel::DEBUG, 'MediaWiki\\Session\\BotPasswordSessionProvider::getAllowedUserRights: ' . 'No provider metadata, returning no rights allowed']], $logger->getBuffer());
     $logger->clearBuffer();
     $backendPriv->providerMetadata = null;
     $this->assertSame([], $provider->getAllowedUserRights($backend));
     $this->assertSame([[LogLevel::DEBUG, 'MediaWiki\\Session\\BotPasswordSessionProvider::getAllowedUserRights: ' . 'No provider metadata, returning no rights allowed']], $logger->getBuffer());
     $logger->clearBuffer();
 }