summaryrefslogtreecommitdiffstats
path: root/tests/Core
diff options
context:
space:
mode:
authorBjoern Schiessle <bjoern@schiessle.org>2016-12-08 11:38:23 +0100
committerBjoern Schiessle <bjoern@schiessle.org>2016-12-08 12:08:05 +0100
commit16bbd3fd7c3956b48a0f85d9479a27ccc5d9ecf2 (patch)
tree32c573d0cc5afca95ee6551ed4be974a7638f407 /tests/Core
parent74d1b0bada1b291038c88cf1e289d6696c65bfb7 (diff)
downloadnextcloud-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.php39
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);
+ }
+
}