]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blob - tests/phpunit/includes/utils/MWGrantsTest.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / tests / phpunit / includes / utils / MWGrantsTest.php
1 <?php
2 class MWGrantsTest extends MediaWikiTestCase {
3
4         protected function setUp() {
5                 parent::setUp();
6
7                 $this->setMwGlobals( [
8                         'wgGrantPermissions' => [
9                                 'hidden1' => [ 'read' => true, 'autoconfirmed' => false ],
10                                 'hidden2' => [ 'autoconfirmed' => true ],
11                                 'normal' => [ 'edit' => true ],
12                                 'normal2' => [ 'edit' => true, 'create' => true ],
13                                 'admin' => [ 'protect' => true, 'delete' => true ],
14                         ],
15                         'wgGrantPermissionGroups' => [
16                                 'hidden1' => 'hidden',
17                                 'hidden2' => 'hidden',
18                                 'normal' => 'normal-group',
19                                 'admin' => 'admin',
20                         ],
21                 ] );
22         }
23
24         /**
25          * @covers MWGrants::getValidGrants
26          */
27         public function testGetValidGrants() {
28                 $this->assertSame(
29                         [ 'hidden1', 'hidden2', 'normal', 'normal2', 'admin' ],
30                         MWGrants::getValidGrants()
31                 );
32         }
33
34         /**
35          * @covers MWGrants::getRightsByGrant
36          */
37         public function testGetRightsByGrant() {
38                 $this->assertSame(
39                         [
40                                 'hidden1' => [ 'read' ],
41                                 'hidden2' => [ 'autoconfirmed' ],
42                                 'normal' => [ 'edit' ],
43                                 'normal2' => [ 'edit', 'create' ],
44                                 'admin' => [ 'protect', 'delete' ],
45                         ],
46                         MWGrants::getRightsByGrant()
47                 );
48         }
49
50         /**
51          * @dataProvider provideGetGrantRights
52          * @covers MWGrants::getGrantRights
53          * @param array|string $grants
54          * @param array $rights
55          */
56         public function testGetGrantRights( $grants, $rights ) {
57                 $this->assertSame( $rights, MWGrants::getGrantRights( $grants ) );
58         }
59
60         public static function provideGetGrantRights() {
61                 return [
62                         [ 'hidden1', [ 'read' ] ],
63                         [ [ 'hidden1', 'hidden2', 'hidden3' ], [ 'read', 'autoconfirmed' ] ],
64                         [ [ 'normal1', 'normal2' ], [ 'edit', 'create' ] ],
65                 ];
66         }
67
68         /**
69          * @dataProvider provideGrantsAreValid
70          * @covers MWGrants::grantsAreValid
71          * @param array $grants
72          * @param bool $valid
73          */
74         public function testGrantsAreValid( $grants, $valid ) {
75                 $this->assertSame( $valid, MWGrants::grantsAreValid( $grants ) );
76         }
77
78         public static function provideGrantsAreValid() {
79                 return [
80                         [ [ 'hidden1', 'hidden2' ], true ],
81                         [ [ 'hidden1', 'hidden3' ], false ],
82                 ];
83         }
84
85         /**
86          * @dataProvider provideGetGrantGroups
87          * @covers MWGrants::getGrantGroups
88          * @param array|null $grants
89          * @param array $expect
90          */
91         public function testGetGrantGroups( $grants, $expect ) {
92                 $this->assertSame( $expect, MWGrants::getGrantGroups( $grants ) );
93         }
94
95         public static function provideGetGrantGroups() {
96                 return [
97                         [ null, [
98                                 'hidden' => [ 'hidden1', 'hidden2' ],
99                                 'normal-group' => [ 'normal' ],
100                                 'other' => [ 'normal2' ],
101                                 'admin' => [ 'admin' ],
102                         ] ],
103                         [ [ 'hidden1', 'normal' ], [
104                                 'hidden' => [ 'hidden1' ],
105                                 'normal-group' => [ 'normal' ],
106                         ] ],
107                 ];
108         }
109
110         /**
111          * @covers MWGrants::getHiddenGrants
112          */
113         public function testGetHiddenGrants() {
114                 $this->assertSame( [ 'hidden1', 'hidden2' ], MWGrants::getHiddenGrants() );
115         }
116
117 }