X-Git-Url: https://scripts.mit.edu/gitweb/autoinstallsdev/mediawiki.git/blobdiff_plain/19e297c21b10b1b8a3acad5e73fc71dcb35db44a..6932310fd58ebef145fa01eb76edf7150284d8ea:/tests/phpunit/includes/utils/MWGrantsTest.php diff --git a/tests/phpunit/includes/utils/MWGrantsTest.php b/tests/phpunit/includes/utils/MWGrantsTest.php new file mode 100644 index 00000000..eae9c15d --- /dev/null +++ b/tests/phpunit/includes/utils/MWGrantsTest.php @@ -0,0 +1,117 @@ +setMwGlobals( [ + 'wgGrantPermissions' => [ + 'hidden1' => [ 'read' => true, 'autoconfirmed' => false ], + 'hidden2' => [ 'autoconfirmed' => true ], + 'normal' => [ 'edit' => true ], + 'normal2' => [ 'edit' => true, 'create' => true ], + 'admin' => [ 'protect' => true, 'delete' => true ], + ], + 'wgGrantPermissionGroups' => [ + 'hidden1' => 'hidden', + 'hidden2' => 'hidden', + 'normal' => 'normal-group', + 'admin' => 'admin', + ], + ] ); + } + + /** + * @covers MWGrants::getValidGrants + */ + public function testGetValidGrants() { + $this->assertSame( + [ 'hidden1', 'hidden2', 'normal', 'normal2', 'admin' ], + MWGrants::getValidGrants() + ); + } + + /** + * @covers MWGrants::getRightsByGrant + */ + public function testGetRightsByGrant() { + $this->assertSame( + [ + 'hidden1' => [ 'read' ], + 'hidden2' => [ 'autoconfirmed' ], + 'normal' => [ 'edit' ], + 'normal2' => [ 'edit', 'create' ], + 'admin' => [ 'protect', 'delete' ], + ], + MWGrants::getRightsByGrant() + ); + } + + /** + * @dataProvider provideGetGrantRights + * @covers MWGrants::getGrantRights + * @param array|string $grants + * @param array $rights + */ + public function testGetGrantRights( $grants, $rights ) { + $this->assertSame( $rights, MWGrants::getGrantRights( $grants ) ); + } + + public static function provideGetGrantRights() { + return [ + [ 'hidden1', [ 'read' ] ], + [ [ 'hidden1', 'hidden2', 'hidden3' ], [ 'read', 'autoconfirmed' ] ], + [ [ 'normal1', 'normal2' ], [ 'edit', 'create' ] ], + ]; + } + + /** + * @dataProvider provideGrantsAreValid + * @covers MWGrants::grantsAreValid + * @param array $grants + * @param bool $valid + */ + public function testGrantsAreValid( $grants, $valid ) { + $this->assertSame( $valid, MWGrants::grantsAreValid( $grants ) ); + } + + public static function provideGrantsAreValid() { + return [ + [ [ 'hidden1', 'hidden2' ], true ], + [ [ 'hidden1', 'hidden3' ], false ], + ]; + } + + /** + * @dataProvider provideGetGrantGroups + * @covers MWGrants::getGrantGroups + * @param array|null $grants + * @param array $expect + */ + public function testGetGrantGroups( $grants, $expect ) { + $this->assertSame( $expect, MWGrants::getGrantGroups( $grants ) ); + } + + public static function provideGetGrantGroups() { + return [ + [ null, [ + 'hidden' => [ 'hidden1', 'hidden2' ], + 'normal-group' => [ 'normal' ], + 'other' => [ 'normal2' ], + 'admin' => [ 'admin' ], + ] ], + [ [ 'hidden1', 'normal' ], [ + 'hidden' => [ 'hidden1' ], + 'normal-group' => [ 'normal' ], + ] ], + ]; + } + + /** + * @covers MWGrants::getHiddenGrants + */ + public function testGetHiddenGrants() { + $this->assertSame( [ 'hidden1', 'hidden2' ], MWGrants::getHiddenGrants() ); + } + +}