Completed
Push — fix-multilanguage-js ( cecbed )
by Kiyotaka
05:52
created

EF01TopCest::clearDoctrineCache()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
nc 2
nop 0
dl 0
loc 10
rs 9.9332
c 0
b 0
f 0
1
<?php
2
3
/*
4
 * This file is part of EC-CUBE
5
 *
6
 * Copyright(c) LOCKON CO.,LTD. All Rights Reserved.
7
 *
8
 * http://www.lockon.co.jp/
9
 *
10
 * For the full copyright and license information, please view the LICENSE
11
 * file that was distributed with this source code.
12
 */
13
14
use Codeception\Util\Fixtures;
15
use Page\Front\TopPage;
16
17
/**
18
 * @group front
19
 * @group toppage
20
 * @group ef1
21
 */
22
class EF01TopCest
23
{
24
    public function _before(\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...
25
    {
26
    }
27
28
    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...
29
    {
30
    }
31
32
    private function clearDoctrineCache()
33
    {
34
        // APP_ENV=prodで実行した際は, 直接データを投入しても反映されないため,
35
        // キャッシュを削除して表示できるようにする
36
        $fs = new Symfony\Component\Filesystem\Filesystem();
37
        $cacheDir = __DIR__.'/../../var/cache/prod/pools';
38
        if ($fs->exists($cacheDir)) {
39
            $fs->remove($cacheDir);
40
        }
41
    }
42
43
    public function topページ_初期表示(\AcceptanceTester $I)
44
    {
45
        $I->wantTo('EF0101-UC01-T01 TOPページ 初期表示');
46
        TopPage::go($I);
47
48
        // カテゴリ選択ボックス(キーワード検索用)、キーワード検索入力欄、虫眼鏡ボタンが表示されている
49
        $I->see('全ての商品', TopPage::$検索_カテゴリ選択);
50
        $I->see('', TopPage::$検索_カテゴリ選択);
51
52
        // カテゴリ名(カテゴリ検索用)が表示されている
53
        $categories = Fixtures::get('categories');
54
        foreach ($categories as $category) {
55
            $I->see($category->getName(), '.searchform .category_id option');
56
        }
57
58
        //管理側のコンテンツ管理(新着情報管理)に設定されている情報が、順位順に表示されている
59
        $today = new DateTime();
60
        $minus1 = $today->sub(new DateInterval('P1D'));
61
        $minus2 = $today->sub(new DateInterval('P2D'));
62
63
        $createNews = Fixtures::get('createNews');
64
        $News1 = $createNews($minus1, 'タイトル1', 'コメント1');
65
        $News2 = $createNews($minus2, 'タイトル2', 'コメント2');
66
67
        $this->clearDoctrineCache();
68
69
        $I->reloadPage();
70
71
        $findNews = Fixtures::get('findNews');
72
        $newsAll = $findNews();
73
        foreach ($newsAll as $index => $news) {
74
            $rowNum = $index + 1;
75
            $I->see($news['title'], 'div.ec-newsRole__news > div:nth-child('.$rowNum.') > div.ec-newsRole__newsHeading > div.ec-newsRole__newsColumn > div.ec-newsRole__newsTitle');
76
            // 5件を超えるとread moreが表示される.
77
            if ($rowNum > 5) {
78
                break;
79
            }
80
        }
81
82
        $em = Fixtures::get('entityManager');
83
        $em->remove($News1);
84
        $em->remove($News2);
85
        $em->flush([$News1, $News2]);
86
    }
87
88
    public function topページ_新着情報(\AcceptanceTester $I)
89
    {
90
        $I->wantTo('EF0101-UC01-T02 TOPページ 新着情報');
91
92
        $createNews = Fixtures::get('createNews');
93
        $News = $createNews(new \DateTime(), 'タイトル1', 'コメント1', 'https://www.ec-cube.net');
94
95
        $this->clearDoctrineCache();
96
97
        $topPage = TopPage::go($I);
98
99
        // 各新着情報の箇所を押下する
100
        // Knowhow: javascriptでclick eventハンドリングしている場合はclick('表示文字列')では探せない
101
        $topPage->新着情報選択(1);
102
        $I->wait(1);
103
104
        // 押下された新着情報のセクションが広がり、詳細情報、リンクが表示される
105
        $I->assertContains('コメント1', $topPage->新着情報詳細(1));
106
107
        // 「詳しくはこちら」リンクを押下する
108
        $topPage->新着情報リンククリック(1);
109
        $I->amOnUrl($News->getUrl());
110
111
        $em = Fixtures::get('entityManager');
112
        $em->remove($News);
113
        $em->flush($News);
114
    }
115
116 View Code Duplication
    public function topページ_カテゴリ検索(\AcceptanceTester $I)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
117
    {
118
        $I->wantTo('EF0101-UC02-T01 TOPページ カテゴリ検索');
119
        $topPage = TopPage::go($I);
120
121
        // カテゴリを選択、そのまま続けて子カテゴリを選択する
122
        $topPage->カテゴリ選択(['アイスサンド', 'フルーツ']);
123
124
        // 商品一覧の上部に、選択されたカテゴリとその親カテゴリのリンクが表示される
125
        $I->see('フルーツ', '.ec-topicpath');
126
        $I->see('チェリーアイスサンド', '.ec-shelfGrid');
127
    }
128
129
    public function topページ_全件検索(\AcceptanceTester $I)
130
    {
131
        $I->wantTo('EF0101-UC03-T01 TOPページ 全件検索');
132
        $topPage = TopPage::go($I);
133
        $topPage->検索();
134
135
        // 商品一覧の上部に、選択されたカテゴリとその親カテゴリのリンクが表示される
136
        $I->see('全て', '.ec-topicpath');
137
138
        // カテゴリに分類されている商品のみ表示される
139
        $products = $I->grabMultiple('ul.ec-shelfGrid li.ec-shelfGrid__item');
140
        $I->assertTrue((count($products) >= 2));
141
    }
142
143 View Code Duplication
    public function topページ_カテゴリ絞込検索(\AcceptanceTester $I)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
144
    {
145
        $I->wantTo('EF0101-UC03-T02 TOPページ カテゴリ絞込検索');
146
        $topPage = TopPage::go($I);
147
148
        // カテゴリを選択する
149
        $I->selectOption(['class' => 'category_id'], 'フルーツ');
150
151
        // 虫眼鏡ボタンを押下する
152
        $topPage->検索();
153
154
        // 商品一覧の上部に、選択されたカテゴリとその親カテゴリのリンクが表示される
155
        $I->see('フルーツ', '.ec-topicpath');
156
157
        // カテゴリに分類されている商品のみ表示される
158
        $I->see('チェリーアイスサンド', '.ec-shelfGrid');
159
        $I->dontSee('彩のジェラートCUBE', '.ec-shelfGrid');
160
    }
161
162 View Code Duplication
    public function topページ_キーワード絞込検索(\AcceptanceTester $I)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
163
    {
164
        $I->wantTo('EF0101-UC03-T02 TOPページ キーワード絞込検索');
165
        $topPage = TopPage::go($I);
166
167
        // キーワードを入力する
168
        $I->fillField(['class' => 'search-name'], 'ジェラート');
169
170
        // 虫眼鏡ボタンを押下する
171
        $topPage->検索();
172
173
        // 商品一覧の上部に、選択されたカテゴリとその親カテゴリのリンクが表示される
174
        $I->see('ジェラート', '.ec-topicpath');
175
176
        // カテゴリに分類されている商品のみ表示される
177
        $I->dontSee('チェリーアイスサンド', '.ec-topicpath');
178
        $I->see('彩のジェラートCUBE', '.ec-shelfGrid');
179
    }
180
}
181