Failed Conditions
Pull Request — experimental/sf (#31)
by Kentaro
06:59
created

EA06ContentsManagementCest   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 240
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 12

Importance

Changes 0
Metric Value
dl 0
loc 240
rs 10
c 0
b 0
f 0
wmc 7
lcom 1
cbo 12

7 Methods

Rating   Name   Duplication   Size   Complexity  
A _before() 0 6 1
A _after() 0 3 1
A contentsmanagement_新着情報管理() 0 38 1
A contentsmanagement_ファイル管理() 0 41 1
B contentsmanagement_ページ管理() 0 80 1
A contentsmanagement_検索未使用ブロック() 0 18 1
A contentsmanagement_ブロック管理() 0 41 1
1
<?php
2
3
use Codeception\Util\Fixtures;
4
use Page\Admin\BlockEditPage;
5
use Page\Admin\BlockManagePage;
6
use Page\Admin\FileManagePage;
7
use Page\Admin\LayoutEditPage;
8
use Page\Admin\LayoutManagePage;
9
use Page\Admin\NewsEditPage;
10
use Page\Admin\NewsManagePage;
11
use Page\Admin\PageEditPage;
12
use Page\Admin\PageManagePage;
13
14
/**
15
 * @group admin
16
 * @group admin02
17
 * @group contentsmanagement
18
 * @group ea6
19
 */
20
class EA06ContentsManagementCest
0 ignored issues
show
Coding Style Compatibility introduced by
PSR1 recommends that each class must be in a namespace of at least one level to avoid collisions.

You can fix this by adding a namespace to your class:

namespace YourVendor;

class YourClass { }

When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.

Loading history...
21
{
22
    public function _before(\AcceptanceTester $I)
23
    {
24
        // すべてのテストケース実施前にログインしておく
25
        // ログイン後は管理アプリのトップページに遷移している
26
        $I->loginAsAdmin();
27
    }
28
29
    public function _after(\AcceptanceTester $I)
0 ignored issues
show
Unused Code introduced by
The parameter $I is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
30
    {
31
    }
32
33
    public function contentsmanagement_新着情報管理(\AcceptanceTester $I)
34
    {
35
        $I->getScenario()->incomplete('未実装:新着情報管理は未実装');
36
37
        $I->wantTo('EA0601-UC01-T01(& UC02-T01/UC02-T02/UC03-T01) 新着情報管理(作成・編集・削除)');
38
39
        NewsManagePage::go($I)->新規登録();
40
41
        NewsEditPage::of($I)
42
            ->入力_日付(date('Y-m-d'))
43
            ->入力_タイトル('news_title1')
44
            ->入力_本文('newsnewsnewsnewsnews')
45
            ->登録();
46
47
        $NewsListPage = NewsManagePage::at($I);
48
        $I->see('新着情報を保存しました。', NewsManagePage::$登録完了メッセージ);
49
50
        $NewsListPage->一覧_編集(1);
51
52
        NewsEditPage::of($I)
53
            ->入力_タイトル('news_title2')
54
            ->登録();
55
56
        $NewsListPage = NewsManagePage::at($I);
57
        $I->see('新着情報を保存しました。', NewsManagePage::$登録完了メッセージ);
58
        $I->assertEquals('news_title2', $NewsListPage->一覧_タイトル(1));
59
60
        $NewsListPage->一覧_下へ(1);
61
        $I->assertEquals('news_title2', $NewsListPage->一覧_タイトル(2));
62
63
        $NewsListPage->一覧_上へ(1);
64
        $I->assertEquals('news_title2', $NewsListPage->一覧_タイトル(1));
65
66
        $NewsListPage->一覧_削除(1);
67
        $I->acceptPopup();
68
69
        $I->assertNotEquals('news_title2', $NewsListPage->一覧_タイトル(1));
70
    }
71
72
    /**
73
     * @env firefox
74
     * @env chrome
75
     */
76
    public function contentsmanagement_ファイル管理(\AcceptanceTester $I)
77
    {
78
        $I->wantTo('EA0602-UC01-T01(& UC01-T02/UC01-T03/UC01-T04/UC01-T05/UC01-T06/UC01-T07) ファイル管理');
79
80
        /** @var FileManagePage $FileManagePage */
81
        $FileManagePage = FileManagePage::go($I)
82
            ->入力_ファイル('upload.txt')
83
            ->アップロード();
84
85
        $I->see('upload.txt', $FileManagePage->ファイル名(2));
86
87
        $FileManagePage->一覧_ダウンロード(2);
88
        $UploadedFile = $I->getLastDownloadFile('/^upload\.txt$/');
89
        $I->assertEquals('This is uploaded file.', file_get_contents($UploadedFile));
90
91
        $FileManagePage->一覧_表示(2);
92
        $I->switchToNewWindow();
93
        $I->see('This is uploaded file.');
94
95
        FileManagePage::go($I)
96
            ->一覧_削除(2)
97
            ->一覧_削除_accept(2);
98
        $I->dontSee('upload.txt', $FileManagePage->ファイル名(2));
99
100
        $FileManagePage = FileManagePage::go($I)
101
            ->入力_フォルダ名('folder1')
102
            ->フォルダ作成();
103
104
        $I->see('folder1', $FileManagePage->ファイル名(1));
105
106
        $FileManagePage->一覧_ファイル名_クリック(1);
107
        $I->see('folder1', $FileManagePage->パンくず(2));
108
109
        $config = Fixtures::get('config');
110
        $I->amOnPage('/'.$config['eccube_admin_route'].'/content/file_manager');
111
        $I->see('ファイル管理コンテンツ管理', '.c-pageTitle');
112
113
        FileManagePage::go($I)
114
            ->一覧_削除(1)
115
            ->一覧_削除_accept(1);
116
    }
117
118
    public function contentsmanagement_ページ管理(\AcceptanceTester $I)
119
    {
120
        $I->wantTo('EA0603-UC01-T01(& UC01-T02/UC01-T03/UC01-T04/UC01-T05) ページ管理');
121
        $faker = Fixtures::get('faker');
122
        $page = 'page_'.$faker->word;
123
        PageManagePage::go($I)->新規入力();
124
125
        /* 新規作成時の初期タグ */
126
        $I->assertEquals(PageEditPage::at($I)->出力_内容(), "{% extends 'default_frame.twig' %}\n\n{% block main %}\n\n{% endblock %}");
127
128
        /* 作成 */
129
        PageEditPage::at($I)
130
            ->入力_名称($page)
131
            ->入力_ファイル名($page)
132
            ->入力_URL($page)
133
            ->入力_内容($page)
134
            ->入力_PC用レイアウト('下層ページ用レイアウト')
135
            ->登録();
136
        $I->see('登録が完了しました。', PageEditPage::$登録完了メッセージ);
137
138
        $I->amOnPage('/user_data/'.$page);
139
        $I->see($page, 'body');
140
141
        /* 編集 */
142
        PageManagePage::go($I)->ページ編集($page);
143
        PageEditPage::at($I)
144
            ->入力_内容("{% extends 'default_frame.twig' %}")
145
            ->登録();
146
        $I->see('登録が完了しました。', PageEditPage::$登録完了メッセージ);
147
148
        $I->amOnPage('/user_data/'.$page);
149
        $config = Fixtures::get('config');
0 ignored issues
show
Unused Code introduced by
$config is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
150
        $I->seeElement('div.ec-layoutRole__footer');
151
152
        /* レイアウト編集 */
153
        LayoutManagePage::go($I)->レイアウト編集('下層ページ用レイアウト');
154
        LayoutEditPage::at($I)
155
            ->ブロックを移動('新着情報', '#position_4')
156
            ->登録();
157
158
        $I->see('登録が完了しました。', LayoutEditPage::$登録完了メッセージ);
159
        $I->amOnPage('/user_data/'.$page);
160
        $I->see('新着情報', '.ec-news');
161
162
        LayoutManagePage::go($I)->レイアウト編集('下層ページ用レイアウト');
163
        LayoutEditPage::at($I)
164
            ->ブロックを移動('カゴの中', '#position_2')
165
            ->登録();
166
        LayoutEditPage::at($I)
167
            ->ブロックを移動('ログインナビ', '#position_2')
168
            ->登録();
169
        LayoutEditPage::at($I)
170
            ->ブロックを移動('商品検索', '#position_2')
171
            ->コンテキストメニューで上に移動('商品検索')
172
            ->登録();
173
        LayoutEditPage::at($I)
174
            ->コンテキストメニューで下に移動('商品検索')
175
            ->登録();
176
        LayoutEditPage::at($I)
177
            ->コンテキストメニューでセクションに移動('商品検索')
178
            ->登録();
179
        LayoutEditPage::at($I)
180
            ->コンテキストメニューでコードプレビュー(
181
                '商品検索',
182
                ['xpath' => "//*[@id='block-source-code']//div[contains(text(), 'file that was distributed with this source code.')]"]
183
            );
184
185
        $I->getScenario()->incomplete('未実装:プレビューは未実装');
186
187
        LayoutManagePage::go($I)->レイアウト編集('下層ページ用レイアウト');
188
        // LayoutEditPage::at($I)
0 ignored issues
show
Unused Code Comprehensibility introduced by
58% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
189
        //     ->ブロックを移動('新着情報', '#position_0')
0 ignored issues
show
Unused Code Comprehensibility introduced by
67% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
190
        //     ->プレビュー();
0 ignored issues
show
Unused Code Comprehensibility introduced by
67% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
191
192
        $I->switchToNewWindow();
193
194
        /* 削除 */
195
        PageManagePage::go($I)->削除($page);
196
        $I->see('削除が完了しました。', PageEditPage::$登録完了メッセージ);
197
    }
198
199
    public function contentsmanagement_検索未使用ブロック(\AcceptanceTester $I)
200
    {
201
        $I->wantTo('EA0603-UC01-T06 検索未使用ブロック');
202
        $layoutName = '下層ページ用レイアウト';
203
        /* レイアウト編集 */
204
        LayoutManagePage::go($I)->レイアウト編集($layoutName);
205
        $items = $I->grabMultiple(LayoutEditPage::$未使用ブロックアイテム);
206
        LayoutEditPage::at($I)
207
            ->検索ブロック名('ギャラリー');
208
209
        $I->seeNumberOfElements(LayoutEditPage::$未使用ブロックアイテム, 1);
210
211
        LayoutManagePage::go($I)->レイアウト編集($layoutName);
212
        LayoutEditPage::at($I)
213
            ->検索ブロック名('');
214
215
        $I->seeNumberOfElements(LayoutEditPage::$未使用ブロックアイテム, count($items));
216
    }
217
218
    public function contentsmanagement_ブロック管理(\AcceptanceTester $I)
219
    {
220
        $I->wantTo('EA0603-UC01-T01(& UC01-T02/UC01-T03) ブロック管理');
221
        $faker = Fixtures::get('faker');
222
        $block = $faker->word.'_block';
223
        /* 作成 */
224
        BlockManagePage::go($I)->新規入力();
225
        BlockEditPage::at($I)
226
            ->入力_ブロック名($block)
227
            ->入力_ファイル名($block)
228
            ->入力_データ("<div id=".$block.">block1</div>")
229
            ->登録();
230
        $I->see('登録が完了しました。', BlockEditPage::$登録完了メッセージ);
231
232
        // TOPページにブロックを配置
233
        LayoutManagePage::go($I)->レイアウト編集('トップページ用レイアウト');
234
        LayoutEditPage::at($I)
235
            ->ブロックを移動($block, '#position_3')
236
            ->登録();
237
238
        $I->getScenario()->incomplete('未実装:ブロックの更新は未実装');
239
        $I->amOnPage('/');
240
        $I->see('block1', ['id' => $block]);
241
242
        /* 編集 */
243
        BlockManagePage::go($I)->編集(1);
244
        BlockEditPage::at($I)
245
            ->入力_データ("<div id=".$block.">welcome</div>")
246
            ->登録();
247
        $I->see('登録が完了しました。', BlockEditPage::$登録完了メッセージ);
248
249
        $I->amOnPage('/');
250
        $I->see('welcome', ['id' => $block]);
251
252
        /* 削除 */
253
        BlockManagePage::go($I)->削除(1);
254
        $I->acceptPopup();
255
256
        $I->amOnPage('/');
257
        $I->dontSeeElement(['id' => $block]);
258
    }
259
}
260