1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
<?php
class MWGrantsTest extends MediaWikiTestCase {
protected function setUp() {
parent::setUp();
$this->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() );
}
}
|