From 77f43c357c01f43a8136f5def0d4768545fda88a Mon Sep 17 00:00:00 2001 From: Victor Dubiniuk Date: Mon, 7 Oct 2013 22:24:25 +0300 Subject: [PATCH 1/2] User::delete should return bool --- lib/private/user.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/private/user.php b/lib/private/user.php index 04cd06b08bd..b68786c773c 100644 --- a/lib/private/user.php +++ b/lib/private/user.php @@ -198,6 +198,10 @@ class OC_User { // Delete user files in /data/ OC_Helper::rmdirr(OC_Config::getValue('datadirectory', OC::$SERVERROOT . '/data') . '/' . $uid . '/'); + + return true; + } else { + return false; } } From 176c2f150299e9ddc335158b27f4a61e45ef80ac Mon Sep 17 00:00:00 2001 From: Victor Dubiniuk Date: Tue, 8 Oct 2013 16:33:56 +0300 Subject: [PATCH 2/2] Add unit tests --- tests/lib/user.php | 52 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 11 deletions(-) diff --git a/tests/lib/user.php b/tests/lib/user.php index 66c7f3f0d74..fdf9e7a08e0 100644 --- a/tests/lib/user.php +++ b/tests/lib/user.php @@ -12,18 +12,26 @@ namespace Test; use OC\Hooks\PublicEmitter; class User extends \PHPUnit_Framework_TestCase { - + /** + * @var \OC_User_Backend | \PHPUnit_Framework_MockObject_MockObject $backend + */ + private $backend; + + protected function setUp(){ + $this->backend = $this->getMock('\OC_User_Dummy'); + $manager = \OC_User::getManager(); + $manager->registerBackend($this->backend); + } + public function testCheckPassword() { - /** - * @var \OC_User_Backend | \PHPUnit_Framework_MockObject_MockObject $backend - */ - $backend = $this->getMock('\OC_User_Dummy'); - $backend->expects($this->once()) + + $this->backend->expects($this->once()) ->method('checkPassword') ->with($this->equalTo('foo'), $this->equalTo('bar')) - ->will($this->returnValue('foo')); + ->will($this->returnValue('foo')) + ; - $backend->expects($this->any()) + $this->backend->expects($this->any()) ->method('implementsActions') ->will($this->returnCallback(function ($actions) { if ($actions === \OC_USER_BACKEND_CHECK_PASSWORD) { @@ -33,11 +41,33 @@ class User extends \PHPUnit_Framework_TestCase { } })); - $manager = \OC_User::getManager(); - $manager->registerBackend($backend); - $uid = \OC_User::checkPassword('foo', 'bar'); $this->assertEquals($uid, 'foo'); } + + public function testDeleteUser() { + $fail = \OC_User::deleteUser('victim'); + $this->assertFalse($fail); + + $success = \OC_User::createUser('victim', 'password'); + + $success = \OC_User::deleteUser('victim'); + $this->assertTrue($success); + } + + public function testCreateUser(){ + $this->backend->expects($this->any()) + ->method('implementsActions') + ->will($this->returnCallback(function ($actions) { + if ($actions === \OC_USER_BACKEND_CREATE_USER) { + return true; + } else { + return false; + } + })); + + $user = \OC_User::createUser('newuser', 'newpassword'); + $this->assertEquals('newuser', $user->getUid()); + } } \ No newline at end of file