Completed
Pull Request — master (#647)
by Robbie
20:35 queued 18:30
created

EditableDropdownTest::testFormField()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 21
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 21
rs 9.3142
c 0
b 0
f 0
cc 2
eloc 14
nc 2
nop 0
1
<?php
2
3
namespace SilverStripe\UserForms\Tests\Model\EditableFormField;
4
5
use SilverStripe\UserForms\Model\EditableFormField\EditableDropdown;
6
use SilverStripe\Dev\SapphireTest;
7
8
/**
9
 * Tests the {@see EditableDropdown} class
10
 */
11
class EditableDropdownTest extends SapphireTest
12
{
13
    protected static $fixture_file = '../EditableFormFieldTest.yml';
14
15
    /**
16
     * Tests that the field sets the empty string if set
17
     */
18
    public function testFormField()
19
    {
20
        if (!$dropdown = EditableDropdown::get()->filter('UseEmptyString', true)->first()) {
21
            $dropdown = $this->objFromFixture(EditableDropdown::class, 'basic-dropdown');
22
23
            $dropdown->UseEmptyString = true;
24
            $dropdown->EmptyString = 'My Default Empty String';
25
            $dropdown->write();
26
        }
27
28
        $field = $dropdown->getFormField();
29
        $this->assertEquals($field->getEmptyString(), 'My Default Empty String');
30
31
        $alternateDropdown = $this->objFromFixture(EditableDropdown::class, 'department-dropdown');
32
        $formField = $alternateDropdown->getFormField();
33
        $this->assertFalse($formField->getHasEmptyDefault());
34
35
        $alternateDropdown->UseEmptyString = true;
36
        $alternateDropdown->write();
37
        $this->assertEquals($formField->getEmptyString(), '');
38
    }
39
}
40