ViewableDataObjectTest::testBreadcrumbs()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 4
rs 10
1
<?php
2
3
namespace Dynamic\ViewableDataObject\Test;
4
5
use Dynamic\ViewableDataObject\Test\TestOnly\ViewableTestObject;
6
use SilverStripe\Dev\SapphireTest;
7
use SilverStripe\Forms\FieldList;
8
use SilverStripe\ORM\FieldType\DBHTMLText;
9
10
class ViewableDataObjectTest extends SapphireTest
11
{
12
    /**
13
     * @var array
14
     */
15
    protected static $fixture_file = array(
16
        'fixtures.yml',
17
    );
18
19
    /**
20
     * @var array
21
     */
22
    protected static $extra_dataobjects = [
23
        ViewableTestObject::class,
24
    ];
25
26
    /**
27
     * @return \SilverStripe\ORM\DataObject
28
     */
29
    protected function getObject()
30
    {
31
        return $this->objFromFixture(ViewableTestObject::class, 'one');
32
    }
33
34
    /**
35
     *
36
     */
37
    public function testUpdateCMSFields()
38
    {
39
        $object = $this->getObject();
40
        $fields = $object->getCMSFields();
41
        $this->assertInstanceOf(FieldList::class, $fields);
42
    }
43
44
    /**
45
     *
46
     */
47
    public function testHasParentPage()
48
    {
49
        $object = $this->getObject();
50
        $this->assertInstanceOf(\Page::class, $object->getParentPage());
51
    }
52
53
    /**
54
     *
55
     */
56
    public function testHasViewAction()
57
    {
58
        $object = $this->getObject();
59
        $this->assertEquals($object->hasViewAction(), 'view');
60
    }
61
62
    /**
63
     *
64
     */
65
    public function testLink()
66
    {
67
        $object = $this->getObject();
68
        $page = $this->objFromFixture(\Page::class, 'default');
69
        $this->assertEquals($page->Link().'view/'.$object->URLSegment.'/', $object->Link());
70
    }
71
72
    /**
73
     *
74
     */
75
    public function testGetAbsoluteLink()
76
    {
77
        $object = $this->getObject();
78
        $page = $this->objFromFixture(\Page::class, 'default');
79
        $this->assertEquals($page->AbsoluteLink().'view/'.$object->URLSegment.'/', $object->AbsoluteLink());
80
    }
81
82
    /**
83
     *
84
     */
85
    public function testValidURLSegment()
86
    {
87
        $object = $this->getObject();
88
        $object2 = $this->objFromFixture(ViewableTestObject::class, 'two');
89
        $object->URLSegment = $object2->URLSegment;
90
        $this->assertFalse($object->validURLSegment());
91
        $object->URLSegment = 'object-one';
92
        $this->assertTrue($object->validURLSegment());
93
    }
94
95
    /**
96
     *
97
     */
98
    public function testBreadcrumbs()
99
    {
100
        $object = $this->getObject();
101
        $this->assertInstanceOf(DBHTMLText::class, $object->Breadcrumbs());
102
    }
103
}
104