diff options
author | Robin Appelman <icewind@owncloud.com> | 2012-04-13 22:52:06 +0200 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2012-04-14 10:43:28 +0200 |
commit | d8e54acbf3856b3917912a73481ffb482a1a25e8 (patch) | |
tree | 3e5f3c7acd9848eed8a1017d3c48baad02307ad8 /tests | |
parent | 9ef34cd8316a456d29ae3871f70f098c3a141bd9 (diff) | |
download | nextcloud-server-d8e54acbf3856b3917912a73481ffb482a1a25e8.tar.gz nextcloud-server-d8e54acbf3856b3917912a73481ffb482a1a25e8.zip |
test cases for user backends
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lib/user/backend.php | 89 | ||||
-rw-r--r-- | tests/lib/user/database.php | 45 | ||||
-rw-r--r-- | tests/lib/user/dummy.php | 27 |
3 files changed, 161 insertions, 0 deletions
diff --git a/tests/lib/user/backend.php b/tests/lib/user/backend.php new file mode 100644 index 00000000000..5dab5afb186 --- /dev/null +++ b/tests/lib/user/backend.php @@ -0,0 +1,89 @@ +<?php +/** +* ownCloud +* +* @author Robin Appelman +* @copyright 2012 Robin Appelman icewind@owncloud.com +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE +* License as published by the Free Software Foundation; either +* version 3 of the License, or any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU AFFERO GENERAL PUBLIC LICENSE for more details. +* +* You should have received a copy of the GNU Affero General Public +* License along with this library. If not, see <http://www.gnu.org/licenses/>. +* +*/ + +abstract class Test_User_Backend extends UnitTestCase { + /** + * @var OC_User_Backend $backend + */ + protected $backend; + + /** + * get a new unique user name + * test cases can override this in order to clean up created user + * @return array + */ + public function getUser(){ + return uniqid('test_'); + } + + public function testAddRemove(){ + //get the number of groups we start with, in case there are exising groups + $startCount=count($this->backend->getUsers()); + + $name1=$this->getUser(); + $name2=$this->getUser(); + $this->backend->createUser($name1,''); + $count=count($this->backend->getUsers())-$startCount; + $this->assertEqual(1,$count); + $this->assertTrue((array_search($name1,$this->backend->getUsers())!==false)); + $this->assertFalse((array_search($name2,$this->backend->getUsers())!==false)); + $this->backend->createUser($name2,''); + $count=count($this->backend->getUsers())-$startCount; + $this->assertEqual(2,$count); + $this->assertTrue((array_search($name1,$this->backend->getUsers())!==false)); + $this->assertTrue((array_search($name2,$this->backend->getUsers())!==false)); + + $this->backend->deleteUser($name2); + $count=count($this->backend->getUsers())-$startCount; + $this->assertEqual(1,$count); + $this->assertTrue((array_search($name1,$this->backend->getUsers())!==false)); + $this->assertFalse((array_search($name2,$this->backend->getUsers())!==false)); + } + + public function testLogin(){ + $name1=$this->getUser(); + $name2=$this->getUser(); + + $this->assertFalse($this->backend->userExists($name1)); + $this->assertFalse($this->backend->userExists($name2)); + + $this->backend->createUser($name1,'pass1'); + $this->backend->createUser($name2,'pass2'); + + $this->assertTrue($this->backend->userExists($name1)); + $this->assertTrue($this->backend->userExists($name2)); + + $this->assertTrue($this->backend->checkPassword($name1,'pass1')); + $this->assertTrue($this->backend->checkPassword($name2,'pass2')); + + $this->assertFalse($this->backend->checkPassword($name1,'pass2')); + $this->assertFalse($this->backend->checkPassword($name2,'pass1')); + + $this->assertFalse($this->backend->checkPassword($name1,'dummy')); + $this->assertFalse($this->backend->checkPassword($name2,'foobar')); + + $this->backend->setPassword($name1,'newpass1'); + $this->assertFalse($this->backend->checkPassword($name1,'pass1')); + $this->assertTrue($this->backend->checkPassword($name1,'newpass1')); + $this->assertFalse($this->backend->checkPassword($name2,'newpass1')); + } +} diff --git a/tests/lib/user/database.php b/tests/lib/user/database.php new file mode 100644 index 00000000000..b2fcce93c5b --- /dev/null +++ b/tests/lib/user/database.php @@ -0,0 +1,45 @@ +<?php +/** +* ownCloud +* +* @author Robin Appelman +* @copyright 2012 Robin Appelman icewind@owncloud.com +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE +* License as published by the Free Software Foundation; either +* version 3 of the License, or any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU AFFERO GENERAL PUBLIC LICENSE for more details. +* +* You should have received a copy of the GNU Affero General Public +* License along with this library. If not, see <http://www.gnu.org/licenses/>. +* +*/ + +class Test_User_Database extends Test_User_Backend { + private $user=array(); + /** + * get a new unique user name + * test cases can override this in order to clean up created user + * @return array + */ + public function getUser(){ + $user=uniqid('test_'); + $this->users[]=$user; + return $user; + } + + public function setUp(){ + $this->backend=new OC_User_Dummy(); + } + + public function tearDown(){ + foreach($this->users as $user){ + $this->backend->deleteUser($user); + } + } +} diff --git a/tests/lib/user/dummy.php b/tests/lib/user/dummy.php new file mode 100644 index 00000000000..062f55ba079 --- /dev/null +++ b/tests/lib/user/dummy.php @@ -0,0 +1,27 @@ +<?php +/** +* ownCloud +* +* @author Robin Appelman +* @copyright 2012 Robin Appelman icewind@owncloud.com +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE +* License as published by the Free Software Foundation; either +* version 3 of the License, or any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU AFFERO GENERAL PUBLIC LICENSE for more details. +* +* You should have received a copy of the GNU Affero General Public +* License along with this library. If not, see <http://www.gnu.org/licenses/>. +* +*/ + +class Test_User_Dummy extends Test_User_Backend { + public function setUp(){ + $this->backend=new OC_User_Dummy(); + } +} |