Add unit tests for $wgGroupPermissions/$wgRevokePermissions
[lhc/web/wiklou.git] / tests / phpunit / includes / UserTest.php
1 <?php
2
3 class UserTest extends MediaWikiTestCase {
4 protected $savedGroupPermissions, $savedRevokedPermissions;
5
6 public function setUp() {
7 parent::setUp();
8
9 $this->savedGroupPermissions = $GLOBALS['wgGroupPermissions'];
10 $this->savedRevokedPermissions = $GLOBALS['wgRevokePermissions'];
11
12 $this->setUpPermissionGlobals();
13 }
14 private function setUpPermissionGlobals() {
15 global $wgGroupPermissions, $wgRevokePermissions;
16
17 $wgGroupPermissions['unittesters'] = array(
18 'runtest' => true,
19 'writetest' => false,
20 'nukeworld' => false,
21 );
22 $wgGroupPermissions['testwriters'] = array(
23 'writetest' => true,
24 'modifytest' => true,
25 );
26
27 $wgRevokePermissions['formertesters'] = array(
28 'runtest' => true,
29 );
30 }
31 public function tearDown() {
32 $GLOBALS['wgGroupPermissions'] = $this->savedGroupPermissions;
33 $GLOBALS['wgRevokePermissions'] = $this->savedRevokedPermissions;
34 }
35
36 public function testGroupPermissions() {
37 $rights = User::getGroupPermissions( array( 'unittesters' ) );
38 $this->assertContains( 'runtest', $rights );
39 $this->assertNotContains( 'writetest', $rights );
40 $this->assertNotContains( 'modifytest', $rights );
41 $this->assertNotContains( 'nukeworld', $rights );
42
43 $rights = User::getGroupPermissions( array( 'unittesters', 'testwriters' ) );
44 $this->assertContains( 'runtest', $rights );
45 $this->assertContains( 'writetest', $rights );
46 $this->assertContains( 'modifytest', $rights );
47 $this->assertNotContains( 'nukeworld', $rights );
48 }
49 public function testRevokePermissions() {
50 $rights = User::getGroupPermissions( array( 'unittesters', 'formertesters' ) );
51 $this->assertNotContains( 'runtest', $rights );
52 $this->assertNotContains( 'writetest', $rights );
53 $this->assertNotContains( 'modifytest', $rights );
54 $this->assertNotContains( 'nukeworld', $rights );
55 }
56 }