Passed
Pull Request — 4 (#10028)
by Steve
09:01
created

ChangePasswordHandlerTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 19
dl 0
loc 34
rs 10
c 0
b 0
f 0
wmc 2
1
<?php
2
3
namespace SilverStripe\Security\Tests\MemberAuthenticator;
4
5
use SilverStripe\Control\HTTPRequest;
6
use SilverStripe\Control\Session;
7
use SilverStripe\Core\Config\Config;
8
use SilverStripe\Dev\SapphireTest;
9
use SilverStripe\Security\Member;
10
use SilverStripe\Security\MemberAuthenticator\ChangePasswordHandler;
11
use SilverStripe\Security\MemberAuthenticator\MemberAuthenticator;
12
use SilverStripe\Security\Security;
13
14
class ChangePasswordHandlerTest extends SapphireTest
15
{
16
    protected static $fixture_file = 'ChangePasswordHandlerTest.yml';
17
18
    protected function setUp(): void
19
    {
20
        parent::setUp();
21
22
        Config::modify()
23
            ->set(Security::class, 'login_url', 'Security/login')
24
            ->set(Security::class, 'lost_password_url', 'Security/lostpassword');
25
26
        $this->logOut();
27
    }
28
29
    public function testExpiredOrInvalidTokenProvidesLostPasswordAndLoginLink()
30
    {
31
        $request = new HTTPRequest('GET', '/Security/changepassword', [
32
            'm' => $this->idFromFixture(Member::class, 'sarah'),
33
            't' => 'an-old-or-expired-hash',
34
        ]);
35
        $request->setSession(new Session([]));
36
37
        /** @var ChangePasswordHandler $handler */
38
        $handler = $this->getMockBuilder(ChangePasswordHandler::class)
39
            ->disableOriginalConstructor()
40
            ->setMethods(null)
41
            ->getMock();
42
43
        $result = $handler->setRequest($request)->changepassword();
44
45
        $this->assertInternalType('array', ($result, 'An array is returned');
0 ignored issues
show
Bug introduced by
A parse error occurred: Syntax error, unexpected ',' on line 45 at column 51
Loading history...
46
        $this->assertContains('Security/lostpassword', $result['Content'], 'Lost password URL is included');
47
        $this->assertContains('Security/login', $result['Content'], 'Login URL is included');
48
    }
49
}
50