From 8798fa139ab07c2876d8691a6f22c44dd6d54925 Mon Sep 17 00:00:00 2001 From: Andrew Paxley Date: Tue, 28 Jan 2025 21:52:40 +1300 Subject: [PATCH] unit test for unique_identifier_field lostpassword form --- tests/php/Security/MemberTest.yml | 3 +++ tests/php/Security/SecurityTest.php | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/tests/php/Security/MemberTest.yml b/tests/php/Security/MemberTest.yml index ddcdd7458ab..d0bde6c389b 100644 --- a/tests/php/Security/MemberTest.yml +++ b/tests/php/Security/MemberTest.yml @@ -92,3 +92,6 @@ delocalemember: Email: delocalemember@test.com Locale: de_DE + username-member: + Email: username@member.com + Username: username1234 diff --git a/tests/php/Security/SecurityTest.php b/tests/php/Security/SecurityTest.php index bad715f7b7b..51f06ead282 100644 --- a/tests/php/Security/SecurityTest.php +++ b/tests/php/Security/SecurityTest.php @@ -485,6 +485,28 @@ public function testChangePasswordForLoggedInUsers() $this->assertEquals($this->idFromFixture(Member::class, 'test'), $this->session()->get('loggedInAs')); } + public function testLostPasswordFormWithUniqueFieldIdentifier() + { + // override the unique identifier field + Member::config()->set('unique_identifier_field', 'Username'); + + /** @var Member $admin */ + $member = $this->objFromFixture(Member::class, 'username-member'); + $member->FailedLoginCount = 99; + $member->LockedOutUntil = DBDatetime::now()->getValue(); + $member->write(); + + // load lostpassword form + $this->get('Security/lostpassword'); + $labelElement = $this->cssParser()->getBySelector('#LostPasswordForm_lostPasswordForm_Email_Holder > label'); + + $this->assertEquals(1, count($labelElement ?? [])); + $this->assertStringContainsString( + '', + (string)$labelElement[0]->asXML() + ); + } + public function testChangePasswordFromLostPassword() { /** @var Member $admin */