From 16bbd3fd7c3956b48a0f85d9479a27ccc5d9ecf2 Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Thu, 8 Dec 2016 11:38:23 +0100 Subject: fix password reset if encryption is enabled Signed-off-by: Bjoern Schiessle --- tests/Core/Controller/LostControllerTest.php | 39 ++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'tests/Core') diff --git a/tests/Core/Controller/LostControllerTest.php b/tests/Core/Controller/LostControllerTest.php index 605298b66cf..3e7456648e4 100644 --- a/tests/Core/Controller/LostControllerTest.php +++ b/tests/Core/Controller/LostControllerTest.php @@ -23,6 +23,7 @@ namespace Tests\Core\Controller; use OC\Core\Controller\LostController; use OC\Mail\Message; +use OCA\Encryption\Exceptions\PrivateKeyMissingException; use OCP\AppFramework\Http\TemplateResponse; use OCP\AppFramework\Utility\ITimeFactory; use OCP\Encryption\IManager; @@ -590,4 +591,42 @@ class LostControllerTest extends \Test\TestCase { $this->assertSame($expectedResponse, $response); } + public function testSetPasswordEncryptionProceed() { + + /** @var LostController | PHPUnit_Framework_MockObject_MockObject $lostController */ + $lostController = $this->getMockBuilder(LostController::class) + ->setConstructorArgs( + [ + 'Core', + $this->request, + $this->urlGenerator, + $this->userManager, + $this->defaults, + $this->l10n, + $this->config, + $this->secureRandom, + 'lostpassword-noreply@localhost', + $this->encryptionManager, + $this->mailer, + $this->timeFactory, + $this->crypto + ] + )->setMethods(['checkPasswordResetToken'])->getMock(); + + $lostController->expects($this->once())->method('checkPasswordResetToken')->willReturn(true); + + $user = $this->createMock(IUser::class); + $user->method('setPassword')->willReturnCallback( + function() { + throw new PrivateKeyMissingException('user'); + } + ); + $this->userManager->method('get')->with('user')->willReturn($user); + + $response = $lostController->setPassword('myToken', 'user', 'newpass', true); + + $expectedResponse = ['status' => 'success']; + $this->assertSame($expectedResponse, $response); + } + } -- cgit v1.2.3