diff options
author | Bjoern Schiessle <bjoern@schiessle.org> | 2016-12-08 11:38:23 +0100 |
---|---|---|
committer | Bjoern Schiessle <bjoern@schiessle.org> | 2016-12-08 12:08:05 +0100 |
commit | 16bbd3fd7c3956b48a0f85d9479a27ccc5d9ecf2 (patch) | |
tree | 32c573d0cc5afca95ee6551ed4be974a7638f407 /tests/Core | |
parent | 74d1b0bada1b291038c88cf1e289d6696c65bfb7 (diff) | |
download | nextcloud-server-16bbd3fd7c3956b48a0f85d9479a27ccc5d9ecf2.tar.gz nextcloud-server-16bbd3fd7c3956b48a0f85d9479a27ccc5d9ecf2.zip |
fix password reset if encryption is enabled
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
Diffstat (limited to 'tests/Core')
-rw-r--r-- | tests/Core/Controller/LostControllerTest.php | 39 |
1 files changed, 39 insertions, 0 deletions
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); + } + } |