xref: /dokuwiki/_test/tests/inc/auth_admincheck.test.php (revision f9f54ce2bb33d8bd5881929e1dea07520f704600)
1<?php
2
3class auth_admin_test_AuthInSensitive extends DokuWiki_Auth_Plugin {
4    function isCaseSensitive(){
5        return false;
6    }
7}
8
9class auth_admin_test extends DokuWikiTest {
10
11    private $oldauth;
12
13    function setUp() {
14        parent::setUp();
15        global $auth;
16        $this->oldauth = $auth;
17    }
18
19    function setSensitive() {
20        global $auth;
21        $auth = new DokuWiki_Auth_Plugin();
22    }
23
24    function setInSensitive() {
25        global $auth;
26        $auth = new auth_admin_test_AuthInSensitive();
27    }
28
29    function teardown() {
30        global $auth;
31        global $AUTH_ACL;
32        unset($AUTH_ACL);
33        $auth = $this->oldauth;
34    }
35
36    function test_ismanager_insensitive(){
37        $this->setInSensitive();
38        global $conf;
39        $conf['superuser'] = 'john,@admin,@Mötly Görls, Dörte';
40        $conf['manager'] = 'john,@managers,doe, @Mötly Böys, Dänny';
41
42        // anonymous user
43        $this->assertEquals(auth_ismanager('jill', null,false), false);
44
45        // admin or manager users
46        $this->assertEquals(auth_ismanager('john', null,false), true);
47        $this->assertEquals(auth_ismanager('doe',  null,false), true);
48
49        $this->assertEquals(auth_ismanager('dörte', null,false), true);
50        $this->assertEquals(auth_ismanager('dänny', null,false), true);
51
52        // admin or manager groups
53        $this->assertEquals(auth_ismanager('jill', array('admin'),false), true);
54        $this->assertEquals(auth_ismanager('jill', array('managers'),false), true);
55
56        $this->assertEquals(auth_ismanager('jill', array('mötly görls'),false), true);
57        $this->assertEquals(auth_ismanager('jill', array('mötly böys'),false), true);
58    }
59
60    function test_isadmin_insensitive(){
61        $this->setInSensitive();
62        global $conf;
63        $conf['superuser'] = 'john,@admin,doe,@roots';
64
65        // anonymous user
66        $this->assertEquals(auth_ismanager('jill', null,true), false);
67
68        // admin user
69        $this->assertEquals(auth_ismanager('john', null,true), true);
70        $this->assertEquals(auth_ismanager('doe',  null,true), true);
71
72        // admin groups
73        $this->assertEquals(auth_ismanager('jill', array('admin'),true), true);
74        $this->assertEquals(auth_ismanager('jill', array('roots'),true), true);
75        $this->assertEquals(auth_ismanager('john', array('admin'),true), true);
76        $this->assertEquals(auth_ismanager('doe',  array('admin'),true), true);
77    }
78
79    function test_ismanager_sensitive(){
80        $this->setSensitive();
81        global $conf;
82        $conf['superuser'] = 'john,@admin,@Mötly Görls, Dörte';
83        $conf['manager'] = 'john,@managers,doe, @Mötly Böys, Dänny';
84
85        // anonymous user
86        $this->assertEquals(auth_ismanager('jill', null,false), false);
87
88        // admin or manager users
89        $this->assertEquals(auth_ismanager('john', null,false), true);
90        $this->assertEquals(auth_ismanager('doe',  null,false), true);
91
92        $this->assertEquals(auth_ismanager('dörte', null,false), false);
93        $this->assertEquals(auth_ismanager('dänny', null,false), false);
94
95        // admin or manager groups
96        $this->assertEquals(auth_ismanager('jill', array('admin'),false), true);
97        $this->assertEquals(auth_ismanager('jill', array('managers'),false), true);
98
99        $this->assertEquals(auth_ismanager('jill', array('mötly görls'),false), false);
100        $this->assertEquals(auth_ismanager('jill', array('mötly böys'),false), false);
101    }
102
103    function test_isadmin_sensitive(){
104        $this->setSensitive();
105        global $conf;
106        $conf['superuser'] = 'john,@admin,doe,@roots';
107
108        // anonymous user
109        $this->assertEquals(auth_ismanager('jill', null,true), false);
110
111        // admin user
112        $this->assertEquals(auth_ismanager('john', null,true), true);
113        $this->assertEquals(auth_ismanager('Doe',  null,true), false);
114
115        // admin groups
116        $this->assertEquals(auth_ismanager('jill', array('admin'),true), true);
117        $this->assertEquals(auth_ismanager('jill', array('roots'),true), true);
118        $this->assertEquals(auth_ismanager('john', array('admin'),true), true);
119        $this->assertEquals(auth_ismanager('doe',  array('admin'),true), true);
120        $this->assertEquals(auth_ismanager('Doe',  array('admin'),true), true);
121    }
122
123}
124
125//Setup VIM: ex: et ts=4 :
126