Merge "Preserve font size in ApiSandbox when going fullscreen"
[lhc/web/wiklou.git] / tests / phpunit / includes / session / CookieSessionProviderTest.php
index b35b685..da4b06e 100644 (file)
@@ -22,7 +22,6 @@ class CookieSessionProviderTest extends MediaWikiTestCase {
                        'CookieHttpOnly' => true,
                        'SessionName' => false,
                        'CookieExpiration' => 100,
-                       'ExtendedLoginCookies' => [ 'UserID', 'Token' ],
                        'ExtendedLoginCookieExpiration' => 200,
                ] );
        }
@@ -148,6 +147,14 @@ class CookieSessionProviderTest extends MediaWikiTestCase {
                $this->assertTrue( $provider->persistsSessionId() );
                $this->assertTrue( $provider->canChangeUser() );
 
+               $extendedCookies = [ 'UserID', 'UserName', 'Token' ];
+
+               $this->assertEquals(
+                       $extendedCookies,
+                       \TestingAccessWrapper::newFromObject( $provider )->getExtendedLoginCookies(),
+                       'List of extended cookies (subclasses can add values, but we\'re calling the core one here)'
+               );
+
                $msg = $provider->whyNoSession();
                $this->assertInstanceOf( 'Message', $msg );
                $this->assertSame( 'sessionprovider-nocookies', $msg->getKey() );
@@ -506,10 +513,10 @@ class CookieSessionProviderTest extends MediaWikiTestCase {
                        'httpOnly' => $config->get( 'CookieHttpOnly' ),
                        'raw' => false,
                ];
+
+               $normalExpiry = $config->get( 'CookieExpiration' );
                $extendedExpiry = $config->get( 'ExtendedLoginCookieExpiration' );
                $extendedExpiry = (int)( $extendedExpiry === null ? 0 : $extendedExpiry );
-               $this->assertEquals( [ 'UserID', 'Token' ], $config->get( 'ExtendedLoginCookies' ),
-                       'sanity check' );
                $expect = [
                        'MySessionName' => [
                                'value' => (string)$sessionId,
@@ -517,10 +524,11 @@ class CookieSessionProviderTest extends MediaWikiTestCase {
                        ] + $defaults,
                        'xUserID' => [
                                'value' => (string)$user->getId(),
-                               'expire' => $extendedExpiry,
+                               'expire' => $remember ? $extendedExpiry : $normalExpiry,
                        ] + $defaults,
                        'xUserName' => [
                                'value' => $user->getName(),
+                               'expire' => $remember ? $extendedExpiry : $normalExpiry
                        ] + $defaults,
                        'xToken' => [
                                'value' => $remember ? $user->getToken() : '',
@@ -807,12 +815,20 @@ class CookieSessionProviderTest extends MediaWikiTestCase {
                $provider->setConfig( $config );
                $provider->setManager( SessionManager::singleton() );
 
-               $this->assertSame( 200, $provider->getLoginCookieExpiration( 'Token' ) );
-               $this->assertSame( 100, $provider->getLoginCookieExpiration( 'User' ) );
+               // First cookie is an extended cookie, remember me true
+               $this->assertSame( 200, $provider->getLoginCookieExpiration( 'Token', true ) );
+               $this->assertSame( 100, $provider->getLoginCookieExpiration( 'User', true ) );
+
+               // First cookie is an extended cookie, remember me false
+               $this->assertSame( 100, $provider->getLoginCookieExpiration( 'UserID', false ) );
+               $this->assertSame( 100, $provider->getLoginCookieExpiration( 'User', false ) );
 
                $config->set( 'ExtendedLoginCookieExpiration', null );
 
-               $this->assertSame( 100, $provider->getLoginCookieExpiration( 'Token' ) );
-               $this->assertSame( 100, $provider->getLoginCookieExpiration( 'User' ) );
+               $this->assertSame( 100, $provider->getLoginCookieExpiration( 'Token', true ) );
+               $this->assertSame( 100, $provider->getLoginCookieExpiration( 'User', true ) );
+
+               $this->assertSame( 100, $provider->getLoginCookieExpiration( 'Token', false ) );
+               $this->assertSame( 100, $provider->getLoginCookieExpiration( 'User', false ) );
        }
 }