Passed
Pull Request — master (#38)
by Simon
01:47
created

SiteConfigExtensionTest::testOnBeforeWrite()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 27
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 13
nc 1
nop 0
dl 0
loc 27
rs 9.8333
c 0
b 0
f 0
1
<?php
2
3
namespace Firesphere\BootstrapMFA\Tests;
4
5
use Firesphere\BootstrapMFA\Extensions\SiteConfigExtension;
6
use SilverStripe\Dev\SapphireTest;
7
use SilverStripe\Forms\CheckboxField;
8
use SilverStripe\Forms\ReadonlyField;
9
use SilverStripe\SiteConfig\SiteConfig;
10
11
class SiteConfigExtensionTest extends SapphireTest
12
{
13
    public function testOnBeforeWrite()
14
    {
15
        /** @var SiteConfig|SiteConfigExtension $config */
16
        $config = SiteConfig::current_site_config();
17
18
        $config->EnforceMFA = false;
19
        $config->ForceMFA = '0000-00-00';
20
21
        $config->write();
22
23
        $config = SiteConfig::current_site_config();
24
25
        $this->assertNull($config->ForceMFA);
26
27
        $config->EnforceMFA = true;
28
29
        $config->write();
30
31
        $config = SiteConfig::current_site_config();
32
33
        $this->assertEquals(date('Y-m-d'), $config->ForceMFA);
34
35
        $config->EnforceMFA = false;
36
37
        $config->write();
38
39
        $this->assertNull($config->ForceMFA);
40
    }
41
42
    public function testUpdateCMSFields()
43
    {
44
        $fields = SiteConfig::current_site_config()->getCMSFields();
45
46
        $this->assertInstanceOf(CheckboxField::class, $fields->dataFieldByName('EnforceMFA'));
47
        $this->assertNull($fields->dataFieldByName('ForceMFA'));
48
49
        $config = SiteConfig::current_site_config();
50
51
        $config->EnforceMFA = true;
52
53
        $config->write();
54
55
        $fields = SiteConfig::current_site_config()->getCMSFields();
56
57
        $this->assertInstanceOf(ReadonlyField::class, $fields->dataFieldByName('ForceMFA'));
58
    }
59
}
60