From c93237777938ec497b0dcb887832db03e7f036a5 Mon Sep 17 00:00:00 2001 From: Manu Date: Tue, 5 Dec 2023 10:20:37 +0100 Subject: [PATCH 1/2] tests: add test for token creation without specific expiration date --- tests/Manager/PasswordTokenManagerTest.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/Manager/PasswordTokenManagerTest.php b/tests/Manager/PasswordTokenManagerTest.php index 915f2c9..4196e5b 100755 --- a/tests/Manager/PasswordTokenManagerTest.php +++ b/tests/Manager/PasswordTokenManagerTest.php @@ -63,6 +63,21 @@ public function testCreatePasswordToken(): void $this->manager->createPasswordToken($this->userMock, new \DateTime('2016-10-11 10:00:00')); } + public function testCreatePasswordTokenWithoutExpirationDate(): void + { + $this->managerMock->expects($this->once())->method('persist')->with($this->callback(function ($object) { + return $object instanceof AbstractPasswordToken + && preg_match('/^[A-z\d]{50}$/', $object->getToken()) + && $this->userMock === $object->getUser(); + })); + + $this->providerChainMock->expects($this->once())->method('get')->willReturn($this->providerMock); + $this->providerMock->expects($this->once())->method('getPasswordTokenClass')->willReturn(PasswordToken::class); + $this->providerMock->expects($this->once())->method('getManager')->willReturn($this->managerMock); + + $this->manager->createPasswordToken($this->userMock); + } + public function testFindOneByToken(): void { $this->managerMock->expects($this->once())->method('findOneBy')->with(PasswordToken::class, ['token' => 'foo'])->willReturn('bar'); From 27e9f9e2b6d22e4ec28fed14b13a004c9c45cdb0 Mon Sep 17 00:00:00 2001 From: Manu Date: Tue, 5 Dec 2023 10:23:50 +0100 Subject: [PATCH 2/2] fix: typo in PasswordTokenManager --- src/Manager/PasswordTokenManager.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Manager/PasswordTokenManager.php b/src/Manager/PasswordTokenManager.php index cf0f679..a673ea0 100644 --- a/src/Manager/PasswordTokenManager.php +++ b/src/Manager/PasswordTokenManager.php @@ -44,8 +44,8 @@ public function createPasswordToken($user, \DateTime $expiresAt = null, Provider } if (!$expiresAt) { - $expiredAt = new \DateTime($provider->getPasswordTokenExpiredIn()); - $expiredAt->setTime((int) $expiredAt->format('H'), (int) $expiredAt->format('i'), (int) $expiredAt->format('s'), 0); + $expiresAt = new \DateTime($provider->getPasswordTokenExpiredIn()); + $expiresAt->setTime((int) $expiresAt->format('H'), (int) $expiresAt->format('i'), (int) $expiresAt->format('s'), 0); } $tokenClass = $provider->getPasswordTokenClass();