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