Passed
Pull Request — master (#53)
by Simon
02:05
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 Method

Rating   Name   Duplication   Size   Complexity  
A SiteConfigExtensionTest::testUpdateCMSFields() 0 17 1
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\FieldList;
9
use SilverStripe\ORM\FieldType\DBDatetime;
10
use SilverStripe\SiteConfig\SiteConfig;
11
12
class SiteConfigExtensionTest extends SapphireTest
13
{
14
    public function testUpdateCMSFields()
15
    {
16
        $fields = SiteConfig::current_site_config()->getCMSFields();
17
18
        $this->assertInstanceOf(CheckboxField::class, $fields->dataFieldByName('EnforceMFA'));
19
        $this->assertNull($fields->dataFieldByName('ForceMFA'));
20
21
        $config = SiteConfig::current_site_config();
22
23
        $config->ForceMFA = DBDatetime::now()->Format(DBDatetime::ISO_DATE);
24
25
        $config->write();
26
27
        $fields = SiteConfig::current_site_config()->getCMSFields();
28
29
        $this->assertInstanceOf(CheckboxField::class, $fields->dataFieldByName('EnforceMFA'));
30
        $this->assertContains('MFA enforced since ', $fields->dataFieldByName('EnforceMFA')->getDescription());
31
    }
32
33
    public function testUpdateCheckboxDescription()
34
    {
35
        /** @var SiteConfig|SiteConfigExtension $config */
36
        $config = SiteConfig::current_site_config();
37
        $config->ForceMFA = null;
38
39
        $this->assertNull($config->updateCheckboxDescription());
40
        $this->assertEmpty($config->getCMSFields()->dataFieldByName('EnforceMFA')->getDescription());
41
42
        $config->ForceMFA = DBDatetime::now()->Format(DBDatetime::ISO_DATE);
43
44
        $fields = FieldList::create([
45
            CheckboxField::create(
46
                'EnforceMFA',
47
                _t(self::class . '.ENFORCEMFA', 'Enforce MFA on all users')
48
            )
49
        ]);
50
        $config->updateCheckboxDescription($fields);
51
52
        $this->assertContains('MFA enforced since ', $fields->dataFieldByName('EnforceMFA')->getDescription());
53
    }
54
55
    public function testSaveEnforceMFA()
56
    {
57
        /** @var SiteConfig|SiteConfigExtension $config */
58
        $config = SiteConfig::current_site_config();
59
60
        $date = DBDatetime::now()->Format(DBDatetime::ISO_DATE);
61
62
        $config->saveEnforceMFA($date);
63
64
        $this->assertEquals($date, $config->ForceMFA);
65
66
        $config->saveEnforceMFA(false);
67
68
        $this->assertNull($config->ForceMFA);
69
    }
70
}
71