set(Security::class, 'login_url', 'Security/login') ->set(Security::class, 'lost_password_url', 'Security/lostpassword'); $this->logOut(); } public function testExpiredOrInvalidTokenProvidesLostPasswordAndLoginLink() { $request = new HTTPRequest('GET', '/Security/changepassword', [ 'm' => $this->idFromFixture(Member::class, 'sarah'), 't' => 'an-old-or-expired-hash', ]); $request->setSession(new Session([])); /** @var ChangePasswordHandler $handler */ $handler = $this->getMockBuilder(ChangePasswordHandler::class) ->disableOriginalConstructor() ->setMethods(null) ->getMock(); $result = $handler->setRequest($request)->changepassword(); $this->assertIsArray($result, 'An array is returned'); $this->assertStringContainsString('Security/lostpassword', $result['Content'], 'Lost password URL is included'); $this->assertStringContainsString('Security/login', $result['Content'], 'Login URL is included'); } }