aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/lib/plugins/authpdo/_test
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2016-01-30 12:16:05 +0100
committerAndreas Gohr <andi@splitbrain.org>2016-01-30 12:16:05 +0100
commit5de3a6a5ad40cfd5f62c9a028f248d53e3f9da6d (patch)
tree4a377a166235edce739e15ac599c2b8ceff1f6be /lib/plugins/authpdo/_test
parent70a89417b85aed070861be4f936ffa8844eb63dd (diff)
downloaddokuwiki-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.php61
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());
}
+
}