Completed
Push — master ( 5b503b...fb127a )
by Ben
03:39
created

SimpleStyleguideControllerTest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 82
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
wmc 5
lcom 1
cbo 1
dl 0
loc 82
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A testGetStyleguideData() 0 15 1
A testGetStyleguideDataExtension() 0 11 1
A testGetTestForm() 0 7 1
A testGetContent() 0 8 1
B testGetColorSwatches() 0 26 1
1
<?php
2
3
namespace BenManu\SimpleStyleguide;
4
5
use BenManu\SimpleStyleguide\SimpleStyleguideController;
6
use SilverStripe\Dev\SapphireTest;
7
use SilverStripe\Core\Config\Config;
8
9
/**
10
 * @package simple-styleguide
11
 * @subpackage tests
12
 */
13
class SimpleStyleguideControllerTest extends SapphireTest
14
{
15
    protected static $fixture_file = 'SimpleStyleguideControllerTest.yml';
16
17
    protected $requiredExtensions = [
18
        SimpleStyleguideController::class => [
19
            SimpleStyleguideControllerTest_data::class
20
        ],
21
    ];
22
23
    public function testGetStyleguideData()
24
    {
25
        $controller = SimpleStyleguideController::create();
26
        $data = $controller->getStyleguideData();
27
28
        $this->assertInstanceOf('SilverStripe\View\ArrayData', $data);
29
        $this->assertEquals('Styleguide', $data->Title);
30
        $this->assertEquals(
31
            '<p>This controller is only accessible to developers and admin users.</p>',
32
            $data->Message->getValue()
33
        );
34
        $this->assertInstanceOf('SilverStripe\Forms\Form', $data->TestForm);
35
        $this->assertInstanceOf('SilverStripe\ORM\FieldType\DBHTMLText', $data->Content);
36
        $this->assertInstanceOf('SilverStripe\ORM\ArrayList', $data->ColorSwatches);
37
    }
38
39
    public function testGetStyleguideDataExtension()
40
    {
41
        SimpleStyleguideController::add_extension(
42
            SimpleStyleguideControllerTest_data::class
43
        );
44
45
        $controller = SimpleStyleguideController::create();
46
47
        $data = $controller->getStyleguideData();
48
        $this->assertTrue($data->hasField('CustomData'));
49
    }
50
51
    public function testGetTestForm()
52
    {
53
        $controller = SimpleStyleguideController::create();
54
        $form = $controller->getTestForm();
55
56
        $this->assertInstanceOf('SilverStripe\Forms\Form', $form);
57
    }
58
59
    public function testGetContent()
60
    {
61
        $controller = SimpleStyleguideController::create();
62
        $content = $controller->getContent();
63
64
        $this->assertInstanceOf('SilverStripe\ORM\FieldType\DBHTMLText', $content);
65
        $this->assertNotNull($content->getValue());
66
    }
67
68
    public function testGetColorSwatches()
69
    {
70
        $controller = SimpleStyleguideController::create();
71
        $swatchesFixture = [
72
            [
73
                'Name' => 'Black',
74
                'Description' => 'This color is rather dark',
75
                'CSSColor' => '#000000',
76
                'TextColor' => '#ffffff',
77
            ],
78
            [
79
                'Name' => 'Grey',
80
                'Description' => 'This color is grey',
81
                'CSSColor' => '#666666',
82
                'TextColor' => '#000000',
83
            ],
84
        ];
85
86
        SimpleStyleguideController::config()->remove('color_swatches');
87
        SimpleStyleguideController::config()->update('color_swatches', $swatchesFixture);
88
89
        $swatches = $controller->getColorSwatches();
90
91
        $this->assertInstanceOf('SilverStripe\ORM\ArrayList', $swatches);
92
        $this->assertEquals(count($swatchesFixture), $swatches->count());
93
    }
94
}
95