diff options
-rw-r--r-- | lib/private/Share20/Manager.php | 14 | ||||
-rw-r--r-- | tests/lib/Share20/ManagerTest.php | 35 |
2 files changed, 17 insertions, 32 deletions
diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php index b337c3c7108..478643e939b 100644 --- a/lib/private/Share20/Manager.php +++ b/lib/private/Share20/Manager.php @@ -145,25 +145,13 @@ class Manager implements IManager { return; } + // Let others verify the password try { $event = new GenericEvent($password); $this->eventDispatcher->dispatch('OCP\PasswordPolicy::validate', $event); } catch (HintException $e) { throw new \Exception($e->getHint()); } - - // Let others verify the password - $accepted = true; - $message = ''; - \OCP\Util::emitHook('\OC\Share', 'verifyPassword', [ - 'password' => $password, - 'accepted' => &$accepted, - 'message' => &$message - ]); - - if (!$accepted) { - throw new \Exception($message); - } } /** diff --git a/tests/lib/Share20/ManagerTest.php b/tests/lib/Share20/ManagerTest.php index 9f543e51592..5f7579474aa 100644 --- a/tests/lib/Share20/ManagerTest.php +++ b/tests/lib/Share20/ManagerTest.php @@ -20,6 +20,7 @@ */ namespace Test\Share20; +use OC\HintException; use OCP\Files\IRootFolder; use OCP\IUserManager; use OCP\Share\Exceptions\ShareNotFound; @@ -38,6 +39,7 @@ use OCP\Security\IHasher; use OCP\Files\Mount\IMountManager; use OCP\IGroupManager; use Symfony\Component\EventDispatcher\EventDispatcher; +use Symfony\Component\EventDispatcher\GenericEvent; /** * Class ManagerTest @@ -549,16 +551,12 @@ class ManagerTest extends \Test\TestCase { ['core', 'shareapi_enforce_links_password', 'no', 'no'], ])); - $hookListner = $this->getMockBuilder('Dummy')->setMethods(['listner'])->getMock(); - \OCP\Util::connectHook('\OC\Share', 'verifyPassword', $hookListner, 'listner'); - - $hookListner->expects($this->once()) - ->method('listner') - ->with([ - 'password' => 'password', - 'accepted' => true, - 'message' => '' - ]); + $this->eventDispatcher->expects($this->once())->method('dispatch') + ->willReturnCallback(function($eventName, GenericEvent $event) { + $this->assertSame('OCP\PasswordPolicy::validate', $eventName); + $this->assertSame('password', $event->getSubject()); + } + ); $result = $this->invokePrivate($this->manager, 'verifyPassword', ['password']); $this->assertNull($result); @@ -573,8 +571,14 @@ class ManagerTest extends \Test\TestCase { ['core', 'shareapi_enforce_links_password', 'no', 'no'], ])); - $dummy = new DummyPassword(); - \OCP\Util::connectHook('\OC\Share', 'verifyPassword', $dummy, 'listner'); + $this->eventDispatcher->expects($this->once())->method('dispatch') + ->willReturnCallback(function($eventName, GenericEvent $event) { + $this->assertSame('OCP\PasswordPolicy::validate', $eventName); + $this->assertSame('password', $event->getSubject()); + throw new HintException('message', 'password not accepted'); + } + ); + $this->invokePrivate($this->manager, 'verifyPassword', ['password']); } @@ -2539,13 +2543,6 @@ class ManagerTest extends \Test\TestCase { } } -class DummyPassword { - public function listner($array) { - $array['accepted'] = false; - $array['message'] = 'password not accepted'; - } -} - class DummyFactory implements IProviderFactory { /** @var IShareProvider */ |