aboutsummaryrefslogtreecommitdiffstats
path: root/tests/phpunit/includes/api/ApiBlockTest.php
diff options
context:
space:
mode:
authorPetr Pchelko <ppchelko@wikimedia.org>2021-06-01 16:06:18 -0700
committerPetr Pchelko <ppchelko@wikimedia.org>2021-06-07 11:50:42 -0700
commitedb3a9a692b5a73c910041ccca30b2dff84b5674 (patch)
tree9095af2c614b21cff042120d9859c80a2769d0d9 /tests/phpunit/includes/api/ApiBlockTest.php
parent5bc6425976414b17ecffe92dad4385dbf3802121 (diff)
downloadmediawikicore-edb3a9a692b5a73c910041ccca30b2dff84b5674.tar.gz
mediawikicore-edb3a9a692b5a73c910041ccca30b2dff84b5674.zip
Allow passing mock Authority in API integration tests
This is a demo, a lot of tests could be rewritten as a followup to pass proper Authority when executing tests instead of writing globals. Much cleaner imho. An improvement idea is to allow overriding 'default permissions' when creating a mock Authority. Change-Id: I38570024e0d5a67a8e1c52f7456c458090ec2b6e
Diffstat (limited to 'tests/phpunit/includes/api/ApiBlockTest.php')
-rw-r--r--tests/phpunit/includes/api/ApiBlockTest.php26
1 files changed, 11 insertions, 15 deletions
diff --git a/tests/phpunit/includes/api/ApiBlockTest.php b/tests/phpunit/includes/api/ApiBlockTest.php
index a9037f9d1dfc..2004e6d80a41 100644
--- a/tests/phpunit/includes/api/ApiBlockTest.php
+++ b/tests/phpunit/includes/api/ApiBlockTest.php
@@ -5,6 +5,8 @@ use MediaWiki\Block\Restriction\ActionRestriction;
use MediaWiki\Block\Restriction\NamespaceRestriction;
use MediaWiki\Block\Restriction\PageRestriction;
use MediaWiki\MediaWikiServices;
+use MediaWiki\Permissions\Authority;
+use MediaWiki\Tests\Unit\Permissions\MockAuthorityTrait;
/**
* @group API
@@ -14,6 +16,8 @@ use MediaWiki\MediaWikiServices;
* @covers ApiBlock
*/
class ApiBlockTest extends ApiTestCase {
+ use MockAuthorityTrait;
+
protected $mUser = null;
protected function setUp() : void {
@@ -36,14 +40,10 @@ class ApiBlockTest extends ApiTestCase {
/**
* @param array $extraParams Extra API parameters to pass to doApiRequest
- * @param User|null $blocker User to do the blocking, null to pick arbitrarily
+ * @param Authority|null $blocker User to do the blocking, null to pick arbitrarily
* @return array result of doApiRequest
*/
- private function doBlock( array $extraParams = [], User $blocker = null ) {
- if ( $blocker === null ) {
- $blocker = self::$users['sysop']->getUser();
- }
-
+ private function doBlock( array $extraParams = [], Authority $blocker = null ) {
$tokens = $this->getTokens();
$this->assertNotNull( $this->mUser, 'Sanity check' );
@@ -162,16 +162,12 @@ class ApiBlockTest extends ApiTestCase {
}
public function testBlockWithHide() {
- global $wgGroupPermissions;
- $newPermissions = $wgGroupPermissions['sysop'];
- $newPermissions['hideuser'] = true;
- $this->mergeMwGlobalArrayValue( 'wgGroupPermissions',
- [ 'sysop' => $newPermissions ] );
-
- $res = $this->doBlock( [ 'hidename' => '' ] );
+ $res = $this->doBlock(
+ [ 'hidename' => '' ],
+ $this->mockRegisteredAuthorityWithPermissions( [ 'hideuser', 'writeapi', 'block' ] )
+ );
- $dbw = wfGetDB( DB_PRIMARY );
- $this->assertSame( '1', $dbw->selectField(
+ $this->assertSame( '1', $this->db->selectField(
'ipblocks',
'ipb_deleted',
[ 'ipb_id' => $res[0]['block']['id'] ],