Passed
Pull Request — master (#12)
by Matthew
01:46
created

SettingsTest::testGetCMSActions()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 0
dl 0
loc 6
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Dynamic\Foxy\Test\Model;
4
5
use Dynamic\Foxy\Model\Setting;
6
use SilverStripe\Dev\SapphireTest;
7
use SilverStripe\Forms\FieldList;
8
use SilverStripe\Security\Member;
9
10
/**
11
 * Class SettingsTest
12
 * @package Dynamic\Foxy\Test\Model
13
 */
14
class SettingsTest extends SapphireTest
15
{
16
17
    /**
18
     * @var string
19
     */
20
    protected static $fixture_file = '../fixtures.yml';
21
22
    /**
23
     *
24
     */
25
    public function testGetCMSFields()
26
    {
27
        /** @var Setting $object */
28
        $object = singleton(Setting::class);
29
        $fields = $object->getCMSFields();
30
        $this->assertInstanceOf(FieldList::class, $fields);
31
    }
32
33
    /**
34
     *
35
     */
36
    public function testGetCMSActions()
37
    {
38
        /** @var Setting $object */
39
        $object = singleton(Setting::class);
40
        $fields = $object->getCMSActions();
41
        $this->assertInstanceOf(FieldList::class, $fields);
42
    }
43
44
    /**
45
     *
46
     */
47
    public function testGenerateStoreKey()
48
    {
49
        /** @var Setting $object */
50
        $object = singleton(Setting::class);
51
        $key = $object->generateStoreKey();
52
        $this->assertEquals(60, strlen($key));
53
        $this->assertEquals('dYnm1c', substr($key, 0, 6));
54
    }
55
56
    /**
57
     *
58
     */
59
    public function testCanEdit()
60
    {
61
        /** @var Setting $object */
62
        $object = singleton(Setting::class);
63
        /** @var \SilverStripe\Security\Member $admin */
64
        $admin = $this->objFromFixture(Member::class, 'admin');
65
        /** @var \SilverStripe\Security\Member $siteOwner */
66
        $siteOwner = $this->objFromFixture(Member::class, 'site-owner');
67
        /** @var \SilverStripe\Security\Member $default */
68
        $default = $this->objFromFixture(Member::class, 'default');
69
70
        $this->assertFalse($object->canEdit($default));
71
        $this->assertTrue($object->canEdit($admin));
72
        $this->assertTrue($object->canEdit($siteOwner));
73
    }
74
75
    /**
76
     *
77
     */
78
    public function testProvidePermissions()
79
    {
80
        /** @var Setting $object */
81
        $object = singleton(Setting::class);
82
        $this->assertInternalType('array', $object->providePermissions());
83
        $this->assertArrayHasKey('EDIT_FOXY_SETTING', $object->providePermissions());
84
    }
85
86
    /**
87
     *
88
     */
89
    public function testGetTemplateGlobalVariables()
90
    {
91
        $this->assertInternalType('array', Setting::get_template_global_variables());
92
        $this->assertArrayHasKey('FoxyStripe', Setting::get_template_global_variables());
93
    }
94
}
95