diff options
author | Derick Alangi <alangiderick@gmail.com> | 2022-07-07 23:54:32 +0100 |
---|---|---|
committer | Derick Alangi <alangiderick@gmail.com> | 2022-07-11 21:15:26 +0100 |
commit | f00cd035808f78b53ad94a40692e323bac10ea08 (patch) | |
tree | cc371dd9d5d574e4f38a28488bb8a3462b2c6043 /tests/phpunit/includes/Permissions/PermissionManagerTest.php | |
parent | b10c2c984a423ca71172603a8415cc6f91cd35e2 (diff) | |
download | mediawikicore-f00cd035808f78b53ad94a40692e323bac10ea08.tar.gz mediawikicore-f00cd035808f78b53ad94a40692e323bac10ea08.zip |
tests: Make use of `overrideConfig(Value|Values)` where needed
As we slowly move away from using globals, overrideConfigValue()
and overrideConfigValues() were introduced as a way to override
test configs between tests.
Under the hood, it just calls setMwGlobals() which resets services,
so take note.
Part 1: Directories covered are: languages/, maintenance/, tests/,
structure/ and includes/Permissions/.
Depends-On: I618b16c6d99c94eb2e7edcf05e888a65f7156754
Change-Id: If56f7d10d79f3a9824a52091a2b544d8653dd7b6
Diffstat (limited to 'tests/phpunit/includes/Permissions/PermissionManagerTest.php')
-rw-r--r-- | tests/phpunit/includes/Permissions/PermissionManagerTest.php | 75 |
1 files changed, 38 insertions, 37 deletions
diff --git a/tests/phpunit/includes/Permissions/PermissionManagerTest.php b/tests/phpunit/includes/Permissions/PermissionManagerTest.php index 2e9eb313dd93..8343a2a891aa 100644 --- a/tests/phpunit/includes/Permissions/PermissionManagerTest.php +++ b/tests/phpunit/includes/Permissions/PermissionManagerTest.php @@ -11,6 +11,7 @@ use MediaWiki\Block\Restriction\NamespaceRestriction; use MediaWiki\Block\Restriction\PageRestriction; use MediaWiki\Block\SystemBlock; use MediaWiki\Cache\CacheKeyHelper; +use MediaWiki\MainConfigNames; use MediaWiki\Permissions\PermissionManager; use MediaWiki\Revision\MutableRevisionRecord; use MediaWiki\Session\SessionId; @@ -55,18 +56,15 @@ class PermissionManagerTest extends MediaWikiLangTestCase { $localZone = 'UTC'; $localOffset = date( 'Z' ) / 60; - $this->setMwGlobals( [ - 'wgLocaltimezone' => $localZone, - 'wgLocalTZoffset' => $localOffset, - 'wgNamespaceProtection' => [ - NS_MEDIAWIKI => 'editinterface', - ], - 'wgRevokePermissions' => [ + $this->overrideConfigValues( [ + MainConfigNames::Localtimezone => $localZone, + MainConfigNames::LocalTZoffset => $localOffset, + MainConfigNames::RevokePermissions => [ 'formertesters' => [ 'runtest' => true ] ], - 'wgAvailableRights' => [ + MainConfigNames::AvailableRights => [ 'test', 'runtest', 'writetest', @@ -172,6 +170,10 @@ class PermissionManagerTest extends MediaWikiLangTestCase { $this->setTitle( $namespace ); $this->mergeMwGlobalArrayValue( 'wgNamespaceProtection', $namespaceProtection ); + $this->overrideConfigValue( + 'NamespaceProtection', + $namespaceProtection + [ NS_MEDIAWIKI => 'editinterface' ] + ); $permissionManager = $this->getServiceContainer()->getPermissionManager(); @@ -416,8 +418,8 @@ class PermissionManagerTest extends MediaWikiLangTestCase { } public function testAutocreatePermissionsHack() { - $this->setMwGlobals( [ - 'wgAutoCreateTempUser' => [ + $this->overrideConfigValues( [ + MainConfigNames::AutoCreateTempUser => [ 'enabled' => true, 'actions' => [ 'edit' ], 'serialProvider' => [ 'type' => 'local' ], @@ -425,7 +427,7 @@ class PermissionManagerTest extends MediaWikiLangTestCase { 'matchPattern' => '*Unregistered $1', 'genPattern' => '*Unregistered $1' ], - 'wgGroupPermissions' => [ + MainConfigNames::GroupPermissions => [ '*' => [ 'edit' => false ], 'user' => [ 'edit' => true, 'createpage' => true ], ] @@ -455,9 +457,9 @@ class PermissionManagerTest extends MediaWikiLangTestCase { * @dataProvider provideTestCheckUserBlockActions */ public function testCheckUserBlockActions( $block, $restriction, $expected ) { - $this->setMwGlobals( [ - 'wgEmailConfirmToEdit' => false, - 'wgEnablePartialActionBlocks' => true, + $this->overrideConfigValues( [ + MainConfigNames::EmailConfirmToEdit => false, + MainConfigNames::EnablePartialActionBlocks => true, ] ); if ( $restriction ) { @@ -621,9 +623,9 @@ class PermissionManagerTest extends MediaWikiLangTestCase { * @dataProvider provideTestCheckUserBlockMessage */ public function testCheckUserBlockMessage( $blockType, $blockParams, $restriction, $expected ) { - $this->setMwGlobals( [ - 'wgEmailConfirmToEdit' => false, - ] ); + $this->overrideConfigValue( + MainConfigNames::EmailConfirmToEdit, false + ); $block = new $blockType( array_merge( [ 'address' => '127.0.8.1', 'by' => $this->user, @@ -700,9 +702,9 @@ class PermissionManagerTest extends MediaWikiLangTestCase { * @dataProvider provideTestCheckUserBlockEmailConfirmToEdit */ public function testCheckUserBlockEmailConfirmToEdit( $emailConfirmToEdit, $assertion ) { - $this->setMwGlobals( [ - 'wgEmailConfirmToEdit' => $emailConfirmToEdit, - 'wgEmailAuthentication' => true, + $this->overrideConfigValues( [ + MainConfigNames::EmailConfirmToEdit => $emailConfirmToEdit, + MainConfigNames::EmailAuthentication => true, ] ); $this->overrideUserPermissions( $this->user, [ @@ -748,11 +750,11 @@ class PermissionManagerTest extends MediaWikiLangTestCase { $tester->method( 'requiresUnblock' ) ->willReturn( false ); - $this->setMwGlobals( [ - 'wgActions' => [ + $this->overrideConfigValues( [ + MainConfigNames::Actions => [ 'tester' => $tester, ], - 'wgGroupPermissions' => [ + MainConfigNames::GroupPermissions => [ '*' => [ 'tester' => true, ], @@ -820,9 +822,10 @@ class PermissionManagerTest extends MediaWikiLangTestCase { * - 'pageRestrictions': (array|null) If non-empty, page restriction titles for the block. */ public function testIsBlockedFrom( $title, $expect, array $options = [] ) { - $this->setMwGlobals( [ - 'wgBlockAllowsUTEdit' => $options['blockAllowsUTEdit'] ?? true, - ] ); + $this->overrideConfigValue( + MainConfigNames::BlockAllowsUTEdit, + $options['blockAllowsUTEdit'] ?? true + ); $user = $this->getTestUser()->getUser(); @@ -1208,8 +1211,8 @@ class PermissionManagerTest extends MediaWikiLangTestCase { * @dataProvider provideGetRestrictionLevels */ public function testGetRestrictionLevels( array $expected, $ns, array $userGroups = null ) { - $this->setMwGlobals( [ - 'wgGroupPermissions' => [ + $this->overrideConfigValues( [ + MainConfigNames::GroupPermissions => [ '*' => [ 'edit' => true ], 'autoconfirmed' => [ 'editsemiprotected' => true ], 'sysop' => [ @@ -1218,16 +1221,16 @@ class PermissionManagerTest extends MediaWikiLangTestCase { ], 'privileged' => [ 'privileged' => true ], ], - 'wgRevokePermissions' => [ + MainConfigNames::RevokePermissions => [ 'noeditsemiprotected' => [ 'editsemiprotected' => true ], ], - 'wgNamespaceProtection' => [ + MainConfigNames::NamespaceProtection => [ NS_MAIN => 'autoconfirmed', NS_USER => 'sysop', 101 => [ 'editsemiprotected', 'privileged' ], ], - 'wgRestrictionLevels' => [ '', 'autoconfirmed', 'sysop' ], - 'wgAutopromote' => [] + MainConfigNames::RestrictionLevels => [ '', 'autoconfirmed', 'sysop' ], + MainConfigNames::Autopromote => [] ] ); $user = $userGroups === null ? null : $this->getTestUser( $userGroups )->getUser(); $this->assertSame( $expected, $this->getServiceContainer() @@ -1236,9 +1239,7 @@ class PermissionManagerTest extends MediaWikiLangTestCase { } public function testGetAllPermissions() { - $this->setMwGlobals( [ - 'wgAvailableRights' => [ 'test_right' ] - ] ); + $this->overrideConfigValue( MainConfigNames::AvailableRights, [ 'test_right' ] ); $this->resetServices(); $this->assertContains( 'test_right', @@ -1327,10 +1328,10 @@ class PermissionManagerTest extends MediaWikiLangTestCase { * @dataProvider provideWhitelistRead */ public function testWhitelistRead( array $whitelist, string $title, bool $shouldAllow ) { - $this->setMwGlobals( 'wgWhitelistRead', $whitelist ); + $this->overrideConfigValue( MainConfigNames::WhitelistRead, $whitelist ); $this->setGroupPermissions( '*', 'read', false ); - $this->setMwGlobals( 'wgLanguageCode', 'es' ); + $this->overrideConfigValue( MainConfigNames::LanguageCode, 'es' ); foreach ( [ 'ContentLanguage', 'MainConfig', |