$logger = new \TestLogger();
$config = new \HashConfig();
- $provider = $this->getMockForAbstractClass( 'MediaWiki\\Session\\SessionProvider' );
+ $provider = $this->getMockForAbstractClass( SessionProvider::class );
$priv = \TestingAccessWrapper::newFromObject( $provider );
$provider->setConfig( $config );
$this->assertSame( $manager, $priv->manager );
$this->assertSame( $manager, $provider->getManager() );
- $this->assertSame( array(), $provider->getVaryHeaders() );
- $this->assertSame( array(), $provider->getVaryCookies() );
+ $provider->invalidateSessionsForUser( new \User );
+
+ $this->assertSame( [], $provider->getVaryHeaders() );
+ $this->assertSame( [], $provider->getVaryCookies() );
$this->assertSame( null, $provider->suggestLoginUsername( new \FauxRequest ) );
$this->assertSame( get_class( $provider ), (string)$provider );
+ $this->assertNull( $provider->getRememberUserDuration() );
+
$this->assertNull( $provider->whyNoSession() );
- $info = new SessionInfo( SessionInfo::MIN_PRIORITY, array(
+ $info = new SessionInfo( SessionInfo::MIN_PRIORITY, [
'id' => 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
'provider' => $provider,
- ) );
- $metadata = array( 'foo' );
+ ] );
+ $metadata = [ 'foo' ];
$this->assertTrue( $provider->refreshSessionInfo( $info, new \FauxRequest, $metadata ) );
- $this->assertSame( array( 'foo' ), $metadata );
+ $this->assertSame( [ 'foo' ], $metadata );
}
/**
public function testNewSessionInfo( $persistId, $persistUser, $ok ) {
$manager = new SessionManager();
- $provider = $this->getMockBuilder( 'MediaWiki\\Session\\SessionProvider' )
- ->setMethods( array( 'canChangeUser', 'persistsSessionId' ) )
+ $provider = $this->getMockBuilder( SessionProvider::class )
+ ->setMethods( [ 'canChangeUser', 'persistsSessionId' ] )
->getMockForAbstractClass();
$provider->expects( $this->any() )->method( 'persistsSessionId' )
->will( $this->returnValue( $persistId ) );
}
public function testMergeMetadata() {
- $provider = $this->getMockBuilder( 'MediaWiki\\Session\\SessionProvider' )
+ $provider = $this->getMockBuilder( SessionProvider::class )
->getMockForAbstractClass();
try {
$provider->mergeMetadata(
- array( 'foo' => 1, 'baz' => 3 ),
- array( 'bar' => 2, 'baz' => '3' )
+ [ 'foo' => 1, 'baz' => 3 ],
+ [ 'bar' => 2, 'baz' => '3' ]
);
$this->fail( 'Expected exception not thrown' );
- } catch ( \UnexpectedValueException $ex ) {
+ } catch ( MetadataMergeException $ex ) {
$this->assertSame( 'Key "baz" changed', $ex->getMessage() );
+ $this->assertSame(
+ [ 'old_value' => 3, 'new_value' => '3' ], $ex->getContext() );
}
$res = $provider->mergeMetadata(
- array( 'foo' => 1, 'baz' => 3 ),
- array( 'bar' => 2, 'baz' => 3 )
+ [ 'foo' => 1, 'baz' => 3 ],
+ [ 'bar' => 2, 'baz' => 3 ]
);
- $this->assertSame( array( 'bar' => 2, 'baz' => 3 ), $res );
+ $this->assertSame( [ 'bar' => 2, 'baz' => 3 ], $res );
}
public static function provideNewSessionInfo() {
- return array(
- array( false, false, false ),
- array( true, false, false ),
- array( false, true, false ),
- array( true, true, true ),
- );
+ return [
+ [ false, false, false ],
+ [ true, false, false ],
+ [ false, true, false ],
+ [ true, true, true ],
+ ];
}
public function testImmutableSessions() {
- $provider = $this->getMockBuilder( 'MediaWiki\\Session\\SessionProvider' )
- ->setMethods( array( 'canChangeUser', 'persistsSessionId' ) )
+ $provider = $this->getMockBuilder( SessionProvider::class )
+ ->setMethods( [ 'canChangeUser', 'persistsSessionId' ] )
->getMockForAbstractClass();
$provider->expects( $this->any() )->method( 'canChangeUser' )
->will( $this->returnValue( true ) );
$provider->preventSessionsForUser( 'Foo' );
- $provider = $this->getMockBuilder( 'MediaWiki\\Session\\SessionProvider' )
- ->setMethods( array( 'canChangeUser', 'persistsSessionId' ) )
+ $provider = $this->getMockBuilder( SessionProvider::class )
+ ->setMethods( [ 'canChangeUser', 'persistsSessionId' ] )
->getMockForAbstractClass();
$provider->expects( $this->any() )->method( 'canChangeUser' )
->will( $this->returnValue( false ) );
$provider->preventSessionsForUser( 'Foo' );
$this->fail( 'Expected exception not thrown' );
} catch ( \BadMethodCallException $ex ) {
+ $this->assertSame(
+ 'MediaWiki\\Session\\SessionProvider::preventSessionsForUser must be implmented ' .
+ 'when canChangeUser() is false',
+ $ex->getMessage()
+ );
}
-
}
public function testHashToSessionId() {
- $config = new \HashConfig( array(
+ $config = new \HashConfig( [
'SecretKey' => 'Shhh!',
- ) );
+ ] );
- $provider = $this->getMockForAbstractClass( 'MediaWiki\\Session\\SessionProvider',
- array(), 'MockSessionProvider' );
+ $provider = $this->getMockForAbstractClass( SessionProvider::class,
+ [], 'MockSessionProvider' );
$provider->setConfig( $config );
$priv = \TestingAccessWrapper::newFromObject( $provider );
$priv->hashToSessionId( 'foobar', 'secret' ) );
try {
- $priv->hashToSessionId( array() );
+ $priv->hashToSessionId( [] );
$this->fail( 'Expected exception not thrown' );
} catch ( \InvalidArgumentException $ex ) {
$this->assertSame(
}
public function testDescribe() {
- $provider = $this->getMockForAbstractClass( 'MediaWiki\\Session\\SessionProvider',
- array(), 'MockSessionProvider' );
+ $provider = $this->getMockForAbstractClass( SessionProvider::class,
+ [], 'MockSessionProvider' );
$this->assertSame(
'MockSessionProvider sessions',
}
public function testGetAllowedUserRights() {
- $provider = $this->getMockForAbstractClass( 'MediaWiki\\Session\\SessionProvider' );
+ $provider = $this->getMockForAbstractClass( SessionProvider::class );
$backend = TestUtils::getDummySessionBackend();
try {