WidgetControllerTest::setUp()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 6
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace SilverStripe\Widgets\Tests;
4
5
use SilverStripe\Dev\FunctionalTest;
6
use SilverStripe\Widgets\Tests\WidgetControllerTest\TestPage;
7
use SilverStripe\Widgets\Tests\WidgetControllerTest\TestWidget;
8
9
class WidgetControllerTest extends FunctionalTest
10
{
11
    protected static $fixture_file = 'WidgetControllerTest.yml';
12
13
    protected static $extra_dataobjects = [
14
        TestPage::class,
15
        TestWidget::class,
16
    ];
17
18
    protected function setUp()
19
    {
20
        parent::setUp();
21
22
        $this->actWithPermission('ADMIN', function () {
23
            $this->objFromFixture(TestPage::class, 'page1')->publishRecursive();
24
        });
25
    }
26
27
    public function testWidgetFormRendering()
28
    {
29
        $page = $this->objFromFixture(TestPage::class, 'page1');
30
        $widget = $this->objFromFixture(TestWidget::class, 'widget1');
31
32
        $response = $this->get($page->URLSegment);
33
34
        $formAction = sprintf('%s/widget/%d/%s', $page->URLSegment, $widget->ID, 'Form');
35
        $this->assertContains(
36
            $formAction,
37
            $response->getBody(),
38
            "Widget forms are rendered through WidgetArea templates"
39
        );
40
    }
41
42
    public function testWidgetFormSubmission()
43
    {
44
        $page = $this->objFromFixture(TestPage::class, 'page1');
45
        $widget = $this->objFromFixture(TestWidget::class, 'widget1');
46
47
        $this->get($page->URLSegment);
48
        $response = $this->submitForm('Form_Form', null, array('TestValue' => 'Updated'));
49
50
        $this->assertContains(
51
            'TestValue: Updated',
52
            $response->getBody(),
53
            "Form values are submitted to correct widget form"
54
        );
55
        $this->assertContains(
56
            sprintf('Widget ID: %d', $widget->ID),
57
            $response->getBody(),
58
            "Widget form acts on correct widget, as identified in the URL"
59
        );
60
    }
61
}
62