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