From: Aryeh Gregor Date: Mon, 6 Aug 2018 16:03:03 +0000 (+0300) Subject: Clean up AuthManagerTest a bit X-Git-Tag: 1.34.0-rc.0~4492^2 X-Git-Url: http://git.cyclocoop.org/%7B%24admin_url%7Dmes_infos.php?a=commitdiff_plain;h=0d6cb475c78f887fedb2585f5d7e45613384c344;p=lhc%2Fweb%2Fwiklou.git Clean up AuthManagerTest a bit Change-Id: I7ff08d4e9c8bd716da8c1ba6e004ea9cf874a64b --- diff --git a/tests/phpunit/includes/auth/AuthManagerTest.php b/tests/phpunit/includes/auth/AuthManagerTest.php index 7170e557fe..0c5d02671c 100644 --- a/tests/phpunit/includes/auth/AuthManagerTest.php +++ b/tests/phpunit/includes/auth/AuthManagerTest.php @@ -38,7 +38,6 @@ class AuthManagerTest extends \MediaWikiTestCase { parent::setUp(); $this->setMwGlobals( [ 'wgAuth' => null ] ); - $this->stashMwGlobals( [ 'wgHooks' ] ); } /** @@ -48,11 +47,10 @@ class AuthManagerTest extends \MediaWikiTestCase { * @return object $mock->expects( $expect )->method( ... ). */ protected function hook( $hook, $expect ) { - global $wgHooks; $mock = $this->getMockBuilder( __CLASS__ ) ->setMethods( [ "on$hook" ] ) ->getMock(); - $wgHooks[$hook] = [ $mock ]; + $this->setTemporaryHook( $hook, $mock ); return $mock->expects( $expect )->method( "on$hook" ); } @@ -613,42 +611,35 @@ class AuthManagerTest extends \MediaWikiTestCase { ); } - public function testSetDefaultUserOptions() { + /** + * @dataProvider provideSetDefaultUserOptions + */ + public function testSetDefaultUserOptions( + $contLang, $useContextLang, $expectedLang, $expectedVariant + ) { $this->initializeManager(); + $this->setContentLang( $contLang ); $context = \RequestContext::getMain(); $reset = new ScopedCallback( [ $context, 'setLanguage' ], [ $context->getLanguage() ] ); $context->setLanguage( 'de' ); - $this->setContentLang( 'zh' ); - - $user = \User::newFromName( self::usernameForCreation() ); - $user->addToDatabase(); - $oldToken = $user->getToken(); - $this->managerPriv->setDefaultUserOptions( $user, false ); - $user->saveSettings(); - $this->assertNotEquals( $oldToken, $user->getToken() ); - $this->assertSame( 'zh', $user->getOption( 'language' ) ); - $this->assertSame( 'zh', $user->getOption( 'variant' ) ); $user = \User::newFromName( self::usernameForCreation() ); $user->addToDatabase(); $oldToken = $user->getToken(); - $this->managerPriv->setDefaultUserOptions( $user, true ); + $this->managerPriv->setDefaultUserOptions( $user, $useContextLang ); $user->saveSettings(); $this->assertNotEquals( $oldToken, $user->getToken() ); - $this->assertSame( 'de', $user->getOption( 'language' ) ); - $this->assertSame( 'zh', $user->getOption( 'variant' ) ); - - $this->setContentLang( 'fr' ); + $this->assertSame( $expectedLang, $user->getOption( 'language' ) ); + $this->assertSame( $expectedVariant, $user->getOption( 'variant' ) ); + } - $user = \User::newFromName( self::usernameForCreation() ); - $user->addToDatabase(); - $oldToken = $user->getToken(); - $this->managerPriv->setDefaultUserOptions( $user, true ); - $user->saveSettings(); - $this->assertNotEquals( $oldToken, $user->getToken() ); - $this->assertSame( 'de', $user->getOption( 'language' ) ); - $this->assertSame( null, $user->getOption( 'variant' ) ); + public function provideSetDefaultUserOptions() { + return [ + [ 'zh', false, 'zh', 'zh' ], + [ 'zh', true, 'de', 'zh' ], + [ 'fr', true, 'de', null ], + ]; } public function testForcePrimaryAuthenticationProviders() { @@ -2380,7 +2371,8 @@ class AuthManagerTest extends \MediaWikiTestCase { $wgGroupPermissions['*']['createaccount'] = true; $wgGroupPermissions['*']['autocreateaccount'] = false; - \ObjectCache::$instances[__METHOD__] = new \HashBagOStuff(); + $this->mergeMwGlobalArrayValue( 'wgObjectCaches', + [ __METHOD__ => [ 'class' => 'HashBagOStuff' ] ] ); $this->setMwGlobals( [ 'wgMainCacheType' => __METHOD__ ] ); // Set up lots of mocks...