Merge "Remove empty lines at end of functions"
[lhc/web/wiklou.git] / tests / phpunit / includes / session / SessionProviderTest.php
index d7aebcd..8284d05 100644 (file)
@@ -16,7 +16,7 @@ class SessionProviderTest extends MediaWikiTestCase {
                $logger = new \TestLogger();
                $config = new \HashConfig();
 
-               $provider = $this->getMockForAbstractClass( 'MediaWiki\\Session\\SessionProvider' );
+               $provider = $this->getMockForAbstractClass( SessionProvider::class );
                $priv = \TestingAccessWrapper::newFromObject( $provider );
 
                $provider->setConfig( $config );
@@ -27,21 +27,25 @@ class SessionProviderTest extends MediaWikiTestCase {
                $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 );
        }
 
        /**
@@ -53,8 +57,8 @@ class SessionProviderTest extends MediaWikiTestCase {
        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 ) );
@@ -80,45 +84,47 @@ class SessionProviderTest extends MediaWikiTestCase {
        }
 
        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 ) );
@@ -126,17 +132,21 @@ class SessionProviderTest extends MediaWikiTestCase {
                        $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 );
 
@@ -145,7 +155,7 @@ class SessionProviderTest extends MediaWikiTestCase {
                        $priv->hashToSessionId( 'foobar', 'secret' ) );
 
                try {
-                       $priv->hashToSessionId( array() );
+                       $priv->hashToSessionId( [] );
                        $this->fail( 'Expected exception not thrown' );
                } catch ( \InvalidArgumentException $ex ) {
                        $this->assertSame(
@@ -165,8 +175,8 @@ class SessionProviderTest extends MediaWikiTestCase {
        }
 
        public function testDescribe() {
-               $provider = $this->getMockForAbstractClass( 'MediaWiki\\Session\\SessionProvider',
-                       array(), 'MockSessionProvider' );
+               $provider = $this->getMockForAbstractClass( SessionProvider::class,
+                       [], 'MockSessionProvider' );
 
                $this->assertSame(
                        'MockSessionProvider sessions',
@@ -175,7 +185,7 @@ class SessionProviderTest extends MediaWikiTestCase {
        }
 
        public function testGetAllowedUserRights() {
-               $provider = $this->getMockForAbstractClass( 'MediaWiki\\Session\\SessionProvider' );
+               $provider = $this->getMockForAbstractClass( SessionProvider::class );
                $backend = TestUtils::getDummySessionBackend();
 
                try {