fix tests for cached isAdmin/isManager

This commit is contained in:
Andreas Gohr 2020-05-11 15:27:59 +02:00
parent 96348f2713
commit 8d43d15e48
1 changed files with 52 additions and 45 deletions

View File

@ -1,122 +1,129 @@
<?php
use dokuwiki\test\mock\AuthPlugin;
use dokuwiki\test\mock\AuthCaseInsensitivePlugin;
use dokuwiki\test\mock\AuthPlugin;
class auth_admin_test extends DokuWikiTest {
class auth_admin_test extends DokuWikiTest
{
private $oldauth;
function setUp() {
function setUp()
{
parent::setUp();
global $auth;
$this->oldauth = $auth;
}
function setSensitive() {
function setSensitive()
{
global $auth;
$auth = new AuthPlugin();
}
function setInSensitive() {
function setInSensitive()
{
global $auth;
$auth = new AuthCaseInsensitivePlugin();
}
function teardown() {
function teardown()
{
global $auth;
global $AUTH_ACL;
unset($AUTH_ACL);
$auth = $this->oldauth;
}
function test_ismanager_insensitive(){
function test_ismanager_insensitive()
{
$this->setInSensitive();
global $conf;
$conf['superuser'] = 'john,@admin,@Mötly Görls, Dörte';
$conf['manager'] = 'john,@managers,doe, @Mötly Böys, Dänny';
// anonymous user
$this->assertEquals(auth_ismanager('jill', null,false), false);
$this->assertFalse(auth_ismanager('jill', null, false, true));
// admin or manager users
$this->assertEquals(auth_ismanager('john', null,false), true);
$this->assertEquals(auth_ismanager('doe', null,false), true);
$this->assertTrue(auth_ismanager('john', null, false, true));
$this->assertTrue(auth_ismanager('doe', null, false, true));
$this->assertEquals(auth_ismanager('dörte', null,false), true);
$this->assertEquals(auth_ismanager('dänny', null,false), true);
$this->assertTrue(auth_ismanager('dörte', null, false, true));
$this->assertTrue(auth_ismanager('dänny', null, false, true));
// admin or manager groups
$this->assertEquals(auth_ismanager('jill', array('admin'),false), true);
$this->assertEquals(auth_ismanager('jill', array('managers'),false), true);
$this->assertTrue(auth_ismanager('jill', array('admin'), false, true));
$this->assertTrue(auth_ismanager('jill', array('managers'), false, true));
$this->assertEquals(auth_ismanager('jill', array('mötly görls'),false), true);
$this->assertEquals(auth_ismanager('jill', array('mötly böys'),false), true);
$this->assertTrue(auth_ismanager('jill', array('mötly görls'), false, true));
$this->assertTrue(auth_ismanager('jill', array('mötly böys'), false, true));
}
function test_isadmin_insensitive(){
function test_isadmin_insensitive()
{
$this->setInSensitive();
global $conf;
$conf['superuser'] = 'john,@admin,doe,@roots';
// anonymous user
$this->assertEquals(auth_ismanager('jill', null,true), false);
$this->assertFalse(auth_ismanager('jill', null, true, true));
// admin user
$this->assertEquals(auth_ismanager('john', null,true), true);
$this->assertEquals(auth_ismanager('doe', null,true), true);
$this->assertTrue(auth_ismanager('john', null, true, true));
$this->assertTrue(auth_ismanager('doe', null, true, true));
// admin groups
$this->assertEquals(auth_ismanager('jill', array('admin'),true), true);
$this->assertEquals(auth_ismanager('jill', array('roots'),true), true);
$this->assertEquals(auth_ismanager('john', array('admin'),true), true);
$this->assertEquals(auth_ismanager('doe', array('admin'),true), true);
$this->assertTrue(auth_ismanager('jill', array('admin'), true, true));
$this->assertTrue(auth_ismanager('jill', array('roots'), true, true));
$this->assertTrue(auth_ismanager('john', array('admin'), true, true));
$this->assertTrue(auth_ismanager('doe', array('admin'), true, true));
}
function test_ismanager_sensitive(){
function test_ismanager_sensitive()
{
$this->setSensitive();
global $conf;
$conf['superuser'] = 'john,@admin,@Mötly Görls, Dörte';
$conf['manager'] = 'john,@managers,doe, @Mötly Böys, Dänny';
// anonymous user
$this->assertEquals(auth_ismanager('jill', null,false), false);
$this->assertFalse(auth_ismanager('jill', null, false, true));
// admin or manager users
$this->assertEquals(auth_ismanager('john', null,false), true);
$this->assertEquals(auth_ismanager('doe', null,false), true);
$this->assertTrue(auth_ismanager('john', null, false, true));
$this->assertTrue(auth_ismanager('doe', null, false, true));
$this->assertEquals(auth_ismanager('dörte', null,false), false);
$this->assertEquals(auth_ismanager('dänny', null,false), false);
$this->assertFalse(auth_ismanager('dörte', null, false, true));
$this->assertFalse(auth_ismanager('dänny', null, false, true));
// admin or manager groups
$this->assertEquals(auth_ismanager('jill', array('admin'),false), true);
$this->assertEquals(auth_ismanager('jill', array('managers'),false), true);
$this->assertTrue(auth_ismanager('jill', array('admin'), false, true));
$this->assertTrue(auth_ismanager('jill', array('managers'), false, true));
$this->assertEquals(auth_ismanager('jill', array('mötly görls'),false), false);
$this->assertEquals(auth_ismanager('jill', array('mötly böys'),false), false);
$this->assertFalse(auth_ismanager('jill', array('mötly görls'), false, true));
$this->assertFalse(auth_ismanager('jill', array('mötly böys'), false, true));
}
function test_isadmin_sensitive(){
function test_isadmin_sensitive()
{
$this->setSensitive();
global $conf;
$conf['superuser'] = 'john,@admin,doe,@roots';
// anonymous user
$this->assertEquals(auth_ismanager('jill', null,true), false);
$this->assertFalse(auth_ismanager('jill', null, true, true));
// admin user
$this->assertEquals(auth_ismanager('john', null,true), true);
$this->assertEquals(auth_ismanager('Doe', null,true), false);
$this->assertTrue(auth_ismanager('john', null, true, true));
$this->assertFalse(auth_ismanager('Doe', null, true, true));
// admin groups
$this->assertEquals(auth_ismanager('jill', array('admin'),true), true);
$this->assertEquals(auth_ismanager('jill', array('roots'),true), true);
$this->assertEquals(auth_ismanager('john', array('admin'),true), true);
$this->assertEquals(auth_ismanager('doe', array('admin'),true), true);
$this->assertEquals(auth_ismanager('Doe', array('admin'),true), true);
$this->assertTrue(auth_ismanager('jill', array('admin'), true, true));
$this->assertTrue(auth_ismanager('jill', array('roots'), true, true));
$this->assertTrue(auth_ismanager('john', array('admin'), true, true));
$this->assertTrue(auth_ismanager('doe', array('admin'), true, true));
$this->assertTrue(auth_ismanager('Doe', array('admin'), true, true));
}
}
//Setup VIM: ex: et ts=4 :