Completed
Pull Request — master (#105)
by Nic
15:17
created

SlideImageTest::testImageSizeLimit()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 14
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 14
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 9
nc 1
nop 0
1
<?php
2
3
namespace Dynamic\FlexSlider\Test\Model;
4
5
use Dynamic\FlexSlider\Test\FlexSliderTest;
6
use Dynamic\FlexSlider\Model\SlideImage;
7
use SilverStripe\Security\Member;
8
use SilverStripe\Core\Config\Config;
9
10
/**
11
 * Class SlideImageTest
12
 * @package Dynamic\FlexSlider\Test\Model
13
 */
14
class SlideImageTest extends FlexSliderTest
15
{
16
    protected static $use_draft_site = true;
17
18
    public function setUp()
19
    {
20
        parent::setUp();
21
    }
22
23
    public function testGetCMSFields()
24
    {
25
        $object = new SlideImage();
26
        $fieldset = $object->getCMSFields();
27
        $this->assertInstanceOf('SilverStripe\\Forms\\FieldList', $fieldset);
28
        $this->assertNotNull($fieldset->dataFieldByName('Name'));
29
        $this->assertNotNull($fieldset->dataFieldByName('Image'));
30
    }
31
32
    public function testValidateName()
33
    {
34
        $object = $this->objFromFixture(
35
            'Dynamic\\FlexSlider\\Model\\SlideImage',
36
            'slide1'
37
        );
38
        $object->Name = '';
39
        $this->setExpectedException('ValidationException');
40
        $object->write();
41
    }
42
43
    public function testValidateImage()
44
    {
45
        $object = $this->objFromFixture(
46
            'Dynamic\\FlexSlider\\Model\\SlideImage',
47
            'slide1'
48
        );
49
        $object->ImageID = '';
50
        $this->setExpectedException('ValidationException');
51
        $object->write();
52
    }
53
54
    public function testCanView()
55
    {
56
        $object = $this->objFromFixture(
57
            'Dynamic\\FlexSlider\\Model\\SlideImage',
58
            'slide1'
59
        );
60
        $image = $this->objFromFixture('Image', 'image1');
61
        $object->ImageID = $image->ID;
62
        $object->write();
63
        $this->logInWithPermission('ADMIN');
64
        $this->assertTrue($object->canView());
65
        $this->logOut();
66
        $nullMember = Member::create();
67
        $nullMember->write();
68
        $this->assertTrue($object->canView($nullMember));
69
        $nullMember->delete();
70
    }
71
72
    public function testCanEdit()
73
    {
74
        $object = $this->objFromFixture(
75
            'Dynamic\\FlexSlider\\Model\\SlideImage',
76
            'slide1'
77
        );
78
        $image = $this->objFromFixture('Image', 'image1');
79
        $object->ImageID = $image->ID;
80
        $object->write();
81
        $objectID = $object->ID;
82
        $this->logInWithPermission('ADMIN');
83
        $originalName = $object->Name;
84
        $this->assertEquals($originalName, 'Hello World');
85
        $this->assertTrue($object->canEdit());
86
        $object->Name = 'Changed Name';
87
        $object->write();
88
        $testEdit = SlideImage::get()->byID($objectID);
89
        $this->assertEquals($testEdit->Name, 'Changed Name');
90
        $this->logOut();
91
    }
92
93
    public function testCanDelete()
94
    {
95
        $object = $this->objFromFixture(
96
            'Dynamic\\FlexSlider\\Model\\SlideImage',
97
            'slide1'
98
        );
99
        $image = $this->objFromFixture('Image', 'image1');
100
        $object->ImageID = $image->ID;
101
        $object->write();
102
        $this->logInWithPermission('ADMIN');
103
        $this->assertTrue($object->canDelete());
104
        $checkObject = $object;
105
        $object->delete();
106
        $this->assertEquals($checkObject->ID, 0);
107
    }
108
109
    public function testCanCreate()
110
    {
111
        $object = singleton('Dynamic\\FlexSlider\\Model\\SlideImage');
112
        $this->logInWithPermission('ADMIN');
113
        $this->assertTrue($object->canCreate());
114
        $this->logOut();
115
        $nullMember = Member::create();
116
        $nullMember->write();
117
        $this->assertFalse($object->canCreate($nullMember));
118
        $nullMember->delete();
119
    }
120
121
    public function testProvidePermissions()
122
    {
123
        $object = singleton('Dynamic\\FlexSlider\\Model\\SlideImage');
124
        $expected = array(
125
            'Slide_EDIT' => 'Slide Edit',
126
            'Slide_DELETE' => 'Slide Delete',
127
            'Slide_CREATE' => 'Slide Create',
128
        );
129
        $this->assertEquals($expected, $object->providePermissions());
130
    }
131
132
    public function testImageSizeLimit()
133
    {
134
135
        $default = 512000;
136
        $this->assertEquals(
137
            Config::inst()->get(SlideImage::class, 'image_size_limit'),
138
            $default
139
        );
140
141
        $new = 1024000;
142
        Config::modify()->set(SlideImage::class, 'image_size_limit', $new);
143
        $this->assertEquals(Config::inst()
144
            ->get(SlideImage::class, 'image_size_limit'), $new);
145
    }
146
147
}
148
149