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