1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace Firesphere\BootstrapMFA\Tests; |
4
|
|
|
|
5
|
|
|
use Firesphere\BootstrapMFA\Providers\BootstrapMFAProvider; |
6
|
|
|
use Firesphere\BootstrapMFA\Tests\Helpers\CodeHelper; |
7
|
|
|
use SilverStripe\Core\Injector\Injector; |
8
|
|
|
use SilverStripe\Dev\SapphireTest; |
9
|
|
|
use SilverStripe\ORM\ValidationResult; |
10
|
|
|
use SilverStripe\Security\Member; |
11
|
|
|
use SilverStripe\Security\Security; |
12
|
|
|
|
13
|
|
|
class BootstrapMFAProviderTest extends SapphireTest |
14
|
|
|
{ |
15
|
|
|
protected static $fixture_file = '../fixtures/member.yml'; |
16
|
|
|
|
17
|
|
|
public function testUpdateTokens() |
18
|
|
|
{ |
19
|
|
|
$member = $this->objFromFixture(Member::class, 'member1'); |
20
|
|
|
Security::setCurrentUser($member); |
21
|
|
|
/** @var BootstrapMFAProvider $provider */ |
22
|
|
|
$provider = Injector::inst()->get(BootstrapMFAProvider::class); |
23
|
|
|
$provider->setMember($member); |
24
|
|
|
$provider->updateTokens(); |
25
|
|
|
|
26
|
|
|
$this->assertEquals(15, count(CodeHelper::getCodesFromSession())); |
27
|
|
|
} |
28
|
|
|
|
29
|
|
|
public function testUpdateTokensWithoutMember() |
30
|
|
|
{ |
31
|
|
|
/** @var BootstrapMFAProvider $provider */ |
32
|
|
|
$provider = Injector::inst()->get(BootstrapMFAProvider::class); |
33
|
|
|
$provider->updateTokens(); |
34
|
|
|
|
35
|
|
|
$this->assertEquals(0, count(CodeHelper::getCodesFromSession())); |
36
|
|
|
} |
37
|
|
|
|
38
|
|
|
public function testResultCreated() |
39
|
|
|
{ |
40
|
|
|
$result = null; |
41
|
|
|
|
42
|
|
|
$provider = Injector::inst()->get(BootstrapMFAProvider::class); |
43
|
|
|
|
44
|
|
|
$provider->verifyToken('123345', $result); |
45
|
|
|
|
46
|
|
|
$this->assertInstanceOf(ValidationResult::class, $result); |
47
|
|
|
} |
48
|
|
|
} |
49
|
|
|
|