diff options
author | Andreas Gohr <andi@splitbrain.org> | 2016-01-30 12:16:05 +0100 |
---|---|---|
committer | Andreas Gohr <andi@splitbrain.org> | 2016-01-30 12:16:05 +0100 |
commit | 5de3a6a5ad40cfd5f62c9a028f248d53e3f9da6d (patch) | |
tree | 4a377a166235edce739e15ac599c2b8ceff1f6be /lib/plugins/authpdo/_test | |
parent | 70a89417b85aed070861be4f936ffa8844eb63dd (diff) | |
download | dokuwiki-5de3a6a5ad40cfd5f62c9a028f248d53e3f9da6d.tar.gz dokuwiki-5de3a6a5ad40cfd5f62c9a028f248d53e3f9da6d.zip |
user and group creation works now
Diffstat (limited to 'lib/plugins/authpdo/_test')
-rw-r--r-- | lib/plugins/authpdo/_test/sqlite.test.php | 61 |
1 files changed, 55 insertions, 6 deletions
diff --git a/lib/plugins/authpdo/_test/sqlite.test.php b/lib/plugins/authpdo/_test/sqlite.test.php index dd667a5d5..70e8dde98 100644 --- a/lib/plugins/authpdo/_test/sqlite.test.php +++ b/lib/plugins/authpdo/_test/sqlite.test.php @@ -1,5 +1,21 @@ <?php + +class testable_auth_plugin_authpdo extends auth_plugin_authpdo { + public function getPluginName() { + return 'authpdo'; + } + + public function _selectGroups() { + return parent::_selectGroups(); + } + + public function _insertGroup($group) { + return parent::_insertGroup($group); + } + +} + /** * General tests for the authpdo plugin * @@ -18,14 +34,16 @@ class sqlite_plugin_authpdo_test extends DokuWikiTest { global $conf; $conf['plugin']['authpdo']['debug'] = 1; - $conf['plugin']['authpdo']['dsn'] = 'sqlite:' . $this->dbfile; + $conf['plugin']['authpdo']['dsn'] = 'sqlite:' . $this->dbfile; $conf['plugin']['authpdo']['user'] = ''; $conf['plugin']['authpdo']['pass'] = ''; - - $conf['plugin']['authpdo']['select-user'] = 'SELECT id as uid, login as user, name, pass as clear, mail FROM user WHERE login = :user'; + $conf['plugin']['authpdo']['select-user'] = 'SELECT id AS uid, login AS user, name, pass AS clear, mail FROM user WHERE login = :user'; $conf['plugin']['authpdo']['select-user-groups'] = 'SELECT * FROM member AS m, "group" AS g WHERE m.gid = g.id AND m.uid = :uid'; - + $conf['plugin']['authpdo']['select-groups'] = 'SELECT id AS gid, "group" FROM "group"'; + $conf['plugin']['authpdo']['insert-user'] = 'INSERT INTO user (login, pass, name, mail) VALUES (:user, :hash, :name, :mail)'; + $conf['plugin']['authpdo']['insert-group'] = 'INSERT INTO "group" ("group") VALUES (:group)'; + $conf['plugin']['authpdo']['join-group'] = 'INSERT INTO member (uid, gid) VALUES (:uid, :gid)'; } public function tearDown() { @@ -33,6 +51,22 @@ class sqlite_plugin_authpdo_test extends DokuWikiTest { unlink($this->dbfile); } + public function test_internals() { + $auth = new testable_auth_plugin_authpdo(); + + $groups = $auth->_selectGroups(); + $this->assertArrayHasKey('user', $groups); + $this->assertEquals(1, $groups['user']['gid']); + $this->assertArrayHasKey('admin', $groups); + $this->assertEquals(2, $groups['admin']['gid']); + + $ok = $auth->_insertGroup('test'); + $this->assertTrue($ok); + $groups = $auth->_selectGroups(); + $this->assertArrayHasKey('test', $groups); + $this->assertEquals(3, $groups['test']['gid']); + } + public function test_userinfo() { global $conf; $auth = new auth_plugin_authpdo(); @@ -43,7 +77,7 @@ class sqlite_plugin_authpdo_test extends DokuWikiTest { $this->assertTrue($auth->checkPass('admin', 'password')); // now with a hashed password - $conf['plugin']['authpdo']['select-user'] = 'SELECT id as uid, login as user, name, pass as hash, mail FROM user WHERE login = :user'; + $conf['plugin']['authpdo']['select-user'] = 'SELECT id AS uid, login AS user, name, pass AS hash, mail FROM user WHERE login = :user'; $this->assertFalse($auth->checkPass('admin', 'password')); $this->assertFalse($auth->checkPass('user', md5('password'))); @@ -52,6 +86,21 @@ class sqlite_plugin_authpdo_test extends DokuWikiTest { $this->assertEquals('admin', $info['user']); $this->assertEquals('The Admin', $info['name']); $this->assertEquals('admin@example.com', $info['mail']); - $this->assertEquals(array('admin','user'), $info['grps']); + $this->assertEquals(array('admin', 'user'), $info['grps']); + + // group retrieval + $this->assertEquals(array('admin', 'user'), $auth->retrieveGroups()); + $this->assertEquals(array('user'), $auth->retrieveGroups(1)); + $this->assertEquals(array('admin'), $auth->retrieveGroups(0, 1)); + + // user creation + $auth->createUser('test', 'password', 'A Test user', 'test@example.com', array('newgroup')); + $info = $auth->getUserData('test'); + $this->assertEquals('test', $info['user']); + $this->assertEquals('A Test user', $info['name']); + $this->assertEquals('test@example.com', $info['mail']); + $this->assertEquals(array('newgroup', 'user'), $info['grps']); + $this->assertEquals(array('admin', 'newgroup', 'user'), $auth->retrieveGroups()); } + } |