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