Completed
Push — master ( f3d63a...ac0cda )
by Andrii
04:25
created

ensureICanSeeBulkServerSearchBox()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 40
Code Lines 37

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 37
c 0
b 0
f 0
dl 0
loc 40
rs 9.328
cc 1
nc 1
nop 0
1
<?php
2
/**
3
 * Server module for HiPanel
4
 *
5
 * @link      https://github.com/hiqdev/hipanel-module-server
6
 * @package   hipanel-module-server
7
 * @license   BSD-3-Clause
8
 * @copyright Copyright (c) 2015-2019, HiQDev (http://hiqdev.com/)
9
 */
10
11
namespace hipanel\modules\server\tests\acceptance\admin;
12
13
use hipanel\helpers\Url;
14
use hipanel\tests\_support\Page\IndexPage;
15
use hipanel\tests\_support\Page\Widget\Input\Input;
16
use hipanel\tests\_support\Page\Widget\Input\Select2;
17
use hipanel\tests\_support\Step\Acceptance\Admin;
18
19
class ServerIndexCest
20
{
21
    /**
22
     * @var IndexPage
23
     */
24
    private $index;
25
26
    public function _before(Admin $I)
27
    {
28
        $this->index = new IndexPage($I);
29
    }
30
31
    public function ensureIndexPageWorks(Admin $I)
32
    {
33
        $I->login();
34
        $I->needPage(Url::to('@server'));
35
        $I->see('Servers', 'h1');
36
        $I->seeLink('Create server', Url::to('@server/create'));
37
        $this->ensureICanSeeAdvancedSearchBox($I);
38
        $this->ensureICanSeeLegendBox();
39
        $this->ensureICanSeeBulkServerSearchBox();
40
    }
41
42
    private function ensureICanSeeAdvancedSearchBox(Admin $I)
43
    {
44
        $this->index->containsFilters([
45
            Input::asAdvancedSearch($I, 'Name'),
46
            Input::asAdvancedSearch($I, 'Internal note'),
47
            Input::asAdvancedSearch($I, 'DC'),
48
            Input::asAdvancedSearch($I, 'IP'),
49
            Select2::asAdvancedSearch($I, 'Client'),
50
            Select2::asAdvancedSearch($I, 'Reseller'),
51
            Input::asAdvancedSearch($I, 'Hardware Summary'),
52
            Select2::asAdvancedSearch($I, 'Type'),
53
            Select2::asAdvancedSearch($I, 'Status'),
54
            Input::asAdvancedSearch($I, 'Switch'),
55
            Input::asAdvancedSearch($I, 'KVM'),
56
            Input::asAdvancedSearch($I, 'APC'),
57
            Input::asAdvancedSearch($I, 'Rack'),
58
            Input::asAdvancedSearch($I, 'MAC'),
59
        ]);
60
    }
61
62
    private function ensureICanSeeLegendBox()
63
    {
64
        $this->index->containsLegend([
65
            'unused: UU',
66
            'setup: SETUP',
67
            'delivery: DLVR',
68
            'reserved: RSVD',
69
            'dedicated: DSS',
70
            'unmanaged: DSU',
71
            'virtual: SH',
72
            'system: IU',
73
            'remote: RS',
74
            'vdsmaster: VM',
75
            'vds: VDS',
76
            'avdsnode: aVDSnode',
77
            'avds: XEN',
78
            'ovds: OpenVZ',
79
            'svds: XENSSD',
80
            'cdn: vCDN.service',
81
            'cdnv2: vCDN.node',
82
            'cdnpix: pCDN.service',
83
            'cdnstat: pCDN.node',
84
            'cloudstorage: CLDStor.node',
85
            'jail: JL',
86
            'nic: NC',
87
            'uplink1: U1',
88
            'uplink2: U2',
89
            'uplink3: U3',
90
            'total: TOTAL',
91
            'transit: TS',
92
            'stock: STOCK',
93
            'deleted: DEL',
94
            'office: OFFICE',
95
        ]);
96
    }
97
98
    private function ensureICanSeeBulkServerSearchBox()
99
    {
100
        $this->index->containsBulkButtons([
101
            'Basic actions',
102
        ]);
103
        $this->index->containsColumns([
104
            'Name',
105
            'Client',
106
            'Reseller',
107
            'IPs',
108
            'Tariff',
109
            'Hardware Summary',
110
        ], 'common');
111
        $this->index->containsColumns([
112
            'IPs',
113
            'Client',
114
            'DC',
115
            'Name',
116
            'Order',
117
            'Hardware Summary',
118
        ], 'short');
119
        $this->index->containsColumns([
120
            'Rack',
121
            'Client',
122
            'DC',
123
            'Name',
124
            'Hardware Summary',
125
        ], 'hardware');
126
        $this->index->containsColumns([
127
            'DC',
128
            'Name',
129
            'Type',
130
            'Switch',
131
            'KVM',
132
            'IPMI',
133
            'APC',
134
            'IP',
135
            'MAC',
136
            'Hardware Summary',
137
        ], 'admin');
138
    }
139
}
140