Passed
Pull Request — master (#4)
by Gordon
08:08
created

SearchPageTest::testGetCMSFields()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 28
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 16
c 1
b 0
f 0
dl 0
loc 28
rs 9.7333
cc 1
nc 1
nop 0
1
<?php declare(strict_types = 1);
2
3
namespace Suilven\FreeTextSearch\Tests\Page;
4
5
use SilverStripe\Dev\SapphireTest;
6
use Suilven\FreeTextSearch\Page\SearchPage;
7
8
class SearchPageTest extends SapphireTest
9
{
10
    protected static $fixture_file = ['tests/fixtures/pages.yml'];
11
12
13
    public function testGetIndex(): void
14
    {
15
        /** @var \Suilven\FreeTextSearch\Page\SearchPage $photoSearchPage */
16
        $photoSearchPage = $this->objFromFixture(SearchPage::class, 'photo-search');
17
18
        $this->assertEquals('flickrphotos', $photoSearchPage->IndexToSearch);
19
    }
20
21
22
    public function testGetFacets(): void
23
    {
24
        /** @var \Suilven\FreeTextSearch\Page\SearchPage $photoSearchPage */
25
        $photoSearchPage = $this->objFromFixture(SearchPage::class, 'photo-search');
26
27
        $this->assertEquals([
28
            'aperture',
29
            'shutterspeed',
30
            'iso',
31
        ], $photoSearchPage->getFacetFields());
32
    }
33
34
35
    public function testGetHasManyFields(): void
36
    {
37
        /** @var \Suilven\FreeTextSearch\Page\SearchPage $photoSearchPage */
38
        $photoSearchPage = $this->objFromFixture(SearchPage::class, 'photo-search');
39
40
        $this->assertEquals([
41
            'suilven\freetextsearch\tests\models\flickrtag',
42
        ], $photoSearchPage->getHasManyFields());
43
    }
44
45
46
    public function testGetCMSFields(): void
47
    {
48
        /** @var \Suilven\FreeTextSearch\Page\SearchPage $photoSearchPage */
49
        $photoSearchPage = $this->objFromFixture(SearchPage::class, 'photo-search');
50
51
        $fields = $photoSearchPage->getCMSFields();
52
        /** @var \Suilven\FreeTextSearch\Tests\Page\TabSet $rootTab */
53
        $rootTab = $fields->fieldByName('Root');
54
55
        /** @var \Suilven\FreeTextSearch\Tests\Page\Tab $mainTab */
56
        $mainTab = $rootTab->fieldByName('Index');
57
        $fields = $mainTab->FieldList();
58
59
        // This is present for PostgresSQL on Travis only
60
        $fields->removeByName('InstallWarningHeader');
61
62
        $names = \array_map(
63
            static function ($field) {
64
                return $field->Name;
65
            },
66
            $fields->toArray()
67
        );
68
        $this->assertEquals([
69
            'IndexToSearch',
70
            'PageSize',
71
            'ShowTagCloudFor',
72
            'ShowAllIfEmptyQuery',
73
        ], $names);
74
    }
75
}
76