|
12 | 12 | <features value="Catalog"/> |
13 | 13 | <stories value="Move and Update Category on Store View level"/> |
14 | 14 | <title |
15 | | - value="Move and Update Category on Store View level when Category Flat Indexer is in Update on Schedule mode"/> |
| 15 | + value="Move and Update Category on Store View level when Category Flat Indexer is in Update on Schedule mode"/> |
16 | 16 | <description |
17 | | - value="The test verifies that categories work properly on Storefront when Catalog Flat indexer is turned on and in Update on Schedule mode. The test verifies that in Update on Schedule mode if displaying of category products on Storefront changes, the changes are NOT applied immediately, but applied only after cron runs (twice)."/> |
| 17 | + value="The test verifies that categories work properly on Storefront when Catalog Flat indexer is turned on and in Update on Schedule mode. The test verifies that in Update on Schedule mode if displaying of category products on Storefront changes, the changes are NOT applied immediately, but applied only after cron runs (twice)."/> |
18 | 18 | <severity value="MAJOR"/> |
19 | 19 | <testCaseId value="AC-4172"/> |
20 | 20 | <group value="catalog"/> |
|
115 | 115 | <actionGroup ref="AdminLogoutActionGroup" stepKey="logoutFromAdminPanel"/> |
116 | 116 | </after> |
117 | 117 | <!-- Step 1:- Open Category A on Storefront --> |
118 | | - <actionGroup ref="StorefrontNavigateCategoryPageActionGroup" stepKey="navigateToStorefrontCategoryAInitially"> |
119 | | - <argument name="category" value="$createAnchorCategoryA$"/> |
| 118 | + <actionGroup ref="StorefrontGoToCategoryPageActionGroup" stepKey="navigateToStorefrontCategoryAInitially"> |
| 119 | + <argument name="categoryName" value="$createAnchorCategoryA.name$"/> |
120 | 120 | </actionGroup> |
121 | | - <waitForElementVisible selector="//img[contains(@src,'magento-logo')]" |
| 121 | + <waitForElementVisible selector="{{StorefrontCategoryMainSection.categoryImage}}" |
122 | 122 | stepKey="verifyImageVisibleOnCategoryAPage"/> |
123 | | - <waitForText userInput="Updated CategoryA Description" selector="//div[@class='category-description']" |
| 123 | + <waitForText userInput="Updated CategoryA Description" |
| 124 | + selector="{{StorefrontCategoryMainSection.CatalogDescriptionWithoutPTag}}" |
124 | 125 | stepKey="verifyDescriptionOnCategoryAPage"/> |
125 | | - <waitForElement selector="//head//meta[@name='title' and @content='MetaAtitle']" |
| 126 | + <waitForElement selector="{{StorefrontCategoryHeadSection.pageTitle('MetaAtitle')}}" |
126 | 127 | stepKey="verifyMetaTitleOnCategoryAPage"/> |
127 | | - <waitForText userInput="2" selector="#toolbar-amount span" |
| 128 | + <waitForText userInput="2" selector="{{StorefrontCategoryMainSection.productCount}}" |
128 | 129 | stepKey="verifyProductCountOnCategoryAPageInitially"/> |
129 | 130 | <!-- Step 2:- Open Category C on Storefront --> |
130 | | - <actionGroup ref="StorefrontNavigateCategoryPageActionGroup" stepKey="navigateToStorefrontCategoryCInitially"> |
131 | | - <argument name="category" value="$createNonAnchorCategoryC$"/> |
| 131 | + <actionGroup ref="StorefrontGoToCategoryPageActionGroup" stepKey="navigateToStorefrontCategoryCInitially"> |
| 132 | + <argument name="categoryName" value="$createNonAnchorCategoryC.name$"/> |
132 | 133 | </actionGroup> |
133 | | - <waitForElementVisible selector="//img[contains(@src,'magento-logo')]" |
| 134 | + <waitForElementVisible selector="{{StorefrontCategoryMainSection.categoryImage}}" |
134 | 135 | stepKey="verifyImageVisibleOnCategoryCPage"/> |
135 | | - <waitForText userInput="Updated CategoryC Description" selector="//div[@class='category-description']" |
| 136 | + <waitForText userInput="Updated CategoryC Description" |
| 137 | + selector="{{StorefrontCategoryMainSection.CatalogDescriptionWithoutPTag}}" |
136 | 138 | stepKey="verifyDescriptionOnCategoryCPage"/> |
137 | | - <waitForElement selector="//head//meta[@name='title' and @content='MetaCtitle']" |
| 139 | + <waitForElement selector="{{StorefrontCategoryHeadSection.pageTitle('MetaCtitle')}}" |
138 | 140 | stepKey="verifyMetaTitleOnCategoryCPage"/> |
139 | | - <waitForText userInput="1" selector="#toolbar-amount span" |
| 141 | + <waitForText userInput="1" selector="{{StorefrontCategoryMainSection.productCount}}" |
140 | 142 | stepKey="verifyProductCountOnCategoryCPageInitially"/> |
141 | 143 | <!-- Step 3:- Open Admin > Catalog > Categories --> |
142 | 144 | <actionGroup ref="AdminOpenCategoryPageActionGroup" stepKey="navigateToAdminCategoryPageForFirstMove"/> |
143 | 145 | <!-- Step 4:- Move Category A under Category C --> |
144 | 146 | <actionGroup ref="MoveCategoryActionGroup" stepKey="moveCategoryAUnderCategoryC"> |
145 | | - <argument name="childCategory" value="$createAnchorCategoryA$"/> |
146 | | - <argument name="parentCategory" value="$createNonAnchorCategoryC$"/> |
| 147 | + <argument name="childCategory" value="$createAnchorCategoryA.name$"/> |
| 148 | + <argument name="parentCategory" value="$createNonAnchorCategoryC.name$"/> |
147 | 149 | </actionGroup> |
148 | 150 | <waitForText userInput="You moved the category." selector=".page-content .message-success" |
149 | 151 | stepKey="verifySuccessMessageForFirstCategoryMove"/> |
150 | 152 | <!-- Step 5:- Open Admin > System > Index Management --> |
151 | 153 | <actionGroup ref="AdminOpenIndexManagementPageActionGroup" |
152 | 154 | stepKey="navigateToIndexManagementPageAfterFirstMove"/> |
153 | 155 | <see userInput="Ready" |
154 | | - selector="//tr[descendant::td[contains(., 'Category Flat Data')]]//*[contains(@class, 'col-indexer_status')]/span" |
| 156 | + selector="{{AdminIndexManagementSection.indexerStatus('Category Flat Data')}}" |
155 | 157 | stepKey="verifyCategoryFlatIndexerReadyAfterFirstMove"/> |
156 | 158 | <!-- Step 6:- Open Category A on Storefront --> |
157 | | - <actionGroup ref="StorefrontNavigateCategoryPageActionGroup" |
| 159 | + <actionGroup ref="StorefrontGoToCategoryPageActionGroup" |
158 | 160 | stepKey="navigateToStorefrontCategoryAAfterFirstMove"> |
159 | | - <argument name="category" value="$createAnchorCategoryA$"/> |
| 161 | + <argument name="categoryName" value="$createAnchorCategoryA.name$"/> |
160 | 162 | </actionGroup> |
161 | | - <waitForText userInput="2" selector="#toolbar-amount span" |
| 163 | + <waitForText userInput="2" selector="{{StorefrontCategoryMainSection.productCount}}" |
162 | 164 | stepKey="verifyProductCountOnCategoryAAfterFirstMove"/> |
163 | 165 | <!-- Step 7:- Open Category C on Storefront --> |
164 | | - <actionGroup ref="StorefrontNavigateCategoryPageActionGroup" |
| 166 | + <actionGroup ref="StorefrontGoToCategoryPageActionGroup" |
165 | 167 | stepKey="navigateToStorefrontCategoryCAfterFirstMove"> |
166 | | - <argument name="category" value="$createNonAnchorCategoryC$"/> |
| 168 | + <argument name="categoryName" value="$createNonAnchorCategoryC.name$"/> |
167 | 169 | </actionGroup> |
168 | | - <waitForText userInput="1" selector="#toolbar-amount span" |
| 170 | + <waitForText userInput="1" selector="{{StorefrontCategoryMainSection.productCount}}" |
169 | 171 | stepKey="verifyProductCountOnCategoryCAfterFirstMove"/> |
170 | 172 | <!-- Step 8:- Run cron twice to reindex --> |
171 | 173 | <magentoCron groups="index" stepKey="runFirstCronAfterFirstMove"/> |
172 | 174 | <magentoCron groups="index" stepKey="runSecondCronAfterFirstMove"/> |
173 | 175 | <!-- Step 9:- Open Category C on Storefront --> |
174 | | - <actionGroup ref="StorefrontNavigateCategoryPageActionGroup" |
| 176 | + <actionGroup ref="StorefrontGoToCategoryPageActionGroup" |
175 | 177 | stepKey="navigateToStorefrontCategoryCAfterFirstCron"> |
176 | | - <argument name="category" value="$createNonAnchorCategoryC$"/> |
| 178 | + <argument name="categoryName" value="$createNonAnchorCategoryC.name$"/> |
177 | 179 | </actionGroup> |
178 | | - <waitForText userInput="1" selector="#toolbar-amount span" |
| 180 | + <waitForText userInput="1" selector="{{StorefrontCategoryMainSection.productCount}}" |
179 | 181 | stepKey="verifyProductCountOnCategoryCAfterFirstCron"/> |
180 | 182 | <!-- Step 10:- Open Admin > Catalog > Categories --> |
181 | 183 | <actionGroup ref="AdminOpenCategoryPageActionGroup" stepKey="navigateToAdminCategoryPageForSecondMove"/> |
182 | 184 | <!-- Step 11:- Move Category B under Category C --> |
183 | 185 | <actionGroup ref="MoveCategoryActionGroup" stepKey="moveCategoryBUnderCategoryC"> |
184 | | - <argument name="childCategory" value="$createSubCategoryB$"/> |
185 | | - <argument name="parentCategory" value="$createNonAnchorCategoryC$"/> |
| 186 | + <argument name="childCategory" value="$createSubCategoryB.name$"/> |
| 187 | + <argument name="parentCategory" value="$createNonAnchorCategoryC.name$"/> |
186 | 188 | </actionGroup> |
187 | 189 | <waitForText userInput="You moved the category." selector=".page-content .message-success" |
188 | 190 | stepKey="verifySuccessMessageForSecondCategoryMove"/> |
189 | 191 | <!-- Step 12:- Move Category A under Category B --> |
190 | 192 | <actionGroup ref="MoveCategoryActionGroup" stepKey="moveCategoryAUnderCategoryB"> |
191 | | - <argument name="childCategory" value="$createAnchorCategoryA$"/> |
192 | | - <argument name="parentCategory" value="$createSubCategoryB$"/> |
| 193 | + <argument name="childCategory" value="$createAnchorCategoryA.name$"/> |
| 194 | + <argument name="parentCategory" value="$createSubCategoryB.name$"/> |
193 | 195 | </actionGroup> |
194 | 196 | <waitForText userInput="You moved the category." selector=".page-content .message-success" |
195 | 197 | stepKey="verifySuccessMessageForThirdCategoryMove"/> |
196 | 198 | <!-- Step 13:- Open Category C on Storefront --> |
197 | | - <actionGroup ref="StorefrontNavigateCategoryPageActionGroup" |
| 199 | + <actionGroup ref="StorefrontGoToCategoryPageActionGroup" |
198 | 200 | stepKey="navigateToStorefrontCategoryCAfterSecondMove"> |
199 | | - <argument name="category" value="$createNonAnchorCategoryC$"/> |
| 201 | + <argument name="categoryName" value="$createNonAnchorCategoryC.name$"/> |
200 | 202 | </actionGroup> |
201 | | - <waitForText userInput="1" selector="#toolbar-amount span" |
| 203 | + <waitForText userInput="1" selector="{{StorefrontCategoryMainSection.productCount}}" |
202 | 204 | stepKey="verifyProductCountOnCategoryCAfterSecondMove"/> |
203 | 205 | <!-- Step 14:- Run cron twice to reindex --> |
204 | 206 | <magentoCron groups="index" stepKey="runFirstCronAfterSecondMove"/> |
205 | 207 | <magentoCron groups="index" stepKey="runSecondCronAfterSecondMove"/> |
206 | 208 | <!-- Step 15:- Open Category C on Storefront --> |
207 | | - <actionGroup ref="StorefrontNavigateCategoryPageActionGroup" |
| 209 | + <actionGroup ref="StorefrontGoToCategoryPageActionGroup" |
208 | 210 | stepKey="navigateToStorefrontCategoryCAfterSecondCron"> |
209 | | - <argument name="category" value="$createNonAnchorCategoryC$"/> |
| 211 | + <argument name="categoryName" value="$createNonAnchorCategoryC.name$"/> |
210 | 212 | </actionGroup> |
211 | | - <waitForText userInput="1" selector="#toolbar-amount span" |
| 213 | + <waitForText userInput="1" selector="{{StorefrontCategoryMainSection.productCount}}" |
212 | 214 | stepKey="verifyProductCountOnCategoryCAfterSecondCron"/> |
213 | 215 | <!-- Step 16:- Create an additional store in Admin > Stores > All Stores --> |
214 | 216 | <actionGroup ref="CreateCustomStoreActionGroup" stepKey="createCustomStoreForTesting"> |
215 | | - <argument name="website" value="{{_defaultWebsite}}"/> |
216 | | - <argument name="store" value="{{customStore}}"/> |
217 | | - <argument name="rootCategory" value="{{_defaultCategory}}"/> |
| 217 | + <argument name="website" value="{{_defaultWebsite.name}}"/> |
| 218 | + <argument name="store" value="{{customStore.name}}"/> |
| 219 | + <argument name="rootCategory" value="{{DefaultCategory.name}}"/> |
218 | 220 | </actionGroup> |
219 | 221 | <!-- Step 17:- Create a store view for the new store in Admin > Stores > All Stores --> |
220 | 222 | <actionGroup ref="AdminCreateStoreViewActionGroup" stepKey="createCustomStoreViewForTesting"> |
|
226 | 228 | <actionGroup ref="AdminOpenIndexManagementPageActionGroup" |
227 | 229 | stepKey="navigateToIndexManagementPageAfterStoreCreation"/> |
228 | 230 | <see userInput="Ready" |
229 | | - selector="//tr[descendant::td[contains(., 'Category Flat Data')]]//*[contains(@class, 'col-indexer_status')]/span" |
| 231 | + selector="{{AdminIndexManagementSection.indexerStatus('Category Flat Data')}}" |
230 | 232 | stepKey="verifyCategoryFlatIndexerReadyAfterStoreCreation"/> |
231 | 233 | <!-- Step 18:- Open Admin > Catalog > Categories > Category A, switch to Store View 2, and update category settings --> |
232 | 234 | <actionGroup ref="GoToAdminCategoryPageByIdActionGroup" stepKey="navigateToAdminCategoryAForStoreViewUpdate"> |
|
242 | 244 | <actionGroup ref="AdminUpdateCategoryDescriptionActionGroup" stepKey="changeCategoryDescriptionOnStoreView"> |
243 | 245 | <argument name="description" value="Другое описание категории А"/> |
244 | 246 | </actionGroup> |
245 | | - <actionGroup ref="ChangeSeoUrlKeyForSubCategoryActionGroup" stepKey="changeCategoryUrlKeyOnStoreView"> |
246 | | - <argument name="value" value="kategoriya-A"/> |
247 | | - </actionGroup> |
248 | 247 | <actionGroup ref="AdminUpdateCategoryMetaInformationActionGroup" stepKey="changeCategoryMetaTitleOnStoreView"> |
249 | 248 | <argument name="metaTitle" value="Meta A Store View"/> |
250 | 249 | </actionGroup> |
251 | | - <actionGroup ref="AdminSaveCategoryActionGroup" stepKey="saveCategoryAWithStoreViewSettings"/> |
252 | | - <!-- Step 19:- Open Store 2 on Storefront and open Category A --> |
253 | | - <actionGroup ref="StorefrontOpenStoreViewActionGroup" stepKey="openCustomStoreViewOnStorefront"> |
254 | | - <argument name="storeView" value="customStoreView"/> |
| 250 | + <actionGroup ref="ChangeSeoUrlKeyForSubCategoryActionGroup" stepKey="changeCategoryUrlKeyOnStoreView"> |
| 251 | + <argument name="value" value="kategoriya-A"/> |
| 252 | + </actionGroup> |
| 253 | + <!-- Step 19:- Switch to custom store and verify OLD (English) content before cron --> |
| 254 | + <actionGroup ref="StorefrontOpenHomePageActionGroup" stepKey="openStorefrontHomePage"/> |
| 255 | + <actionGroup ref="StorefrontSwitchStoreActionGroup" stepKey="switchToCustomStoreFirst"> |
| 256 | + <argument name="storeName" value="{{customStore.name}}"/> |
255 | 257 | </actionGroup> |
| 258 | + <magentoCLI command="cache:flush" stepKey="flushCacheAfterStoreSwitch"/> |
| 259 | + <waitForPageLoad stepKey="waitForStoreSwitchComplete"/> |
| 260 | + <!-- Navigate to category A on the custom store and verify OLD content (English) --> |
256 | 261 | <actionGroup ref="StorefrontGoToSubSubCategoryPageActionGroup" |
257 | | - stepKey="navigateToStorefrontCategoryAOnCustomStoreView"> |
| 262 | + stepKey="navigateToStorefrontCategoryAOnCustomStore"> |
258 | 263 | <argument name="categoryName" value="$createNonAnchorCategoryC.name$"/> |
259 | 264 | <argument name="subCategoryName" value="$createSubCategoryB.name$"/> |
260 | | - <argument name="subSubCategoryName" value="Категория А"/> |
| 265 | + <argument name="subSubCategoryName" value="$createAnchorCategoryA.name$"/> |
261 | 266 | </actionGroup> |
262 | | - <waitForElementVisible selector="//img[contains(@src,'magento-again')]" |
263 | | - stepKey="verifyCustomImageVisibleOnCategoryAStoreView"/> |
264 | | - <waitForText userInput="Другое описание категории А" selector="//div[@class='category-description']" |
265 | | - stepKey="verifyCustomDescriptionOnCategoryAStoreView"/> |
266 | | - <waitForElement selector="//head//meta[@name='title' and @content='Meta A Store View']" |
267 | | - stepKey="verifyCustomMetaTitleOnCategoryAStoreView"/> |
268 | | - <waitForText userInput="1" selector="#toolbar-amount span" |
| 267 | + <!-- Verify OLD content (English) - before cron runs --> |
| 268 | + <waitForElementVisible selector="{{StorefrontCategoryMainSection.categoryImage}}" |
| 269 | + stepKey="verifyOldImageVisibleOnCategoryAStoreView"/> |
| 270 | + <waitForText userInput="Updated CategoryA Description" |
| 271 | + selector="{{StorefrontCategoryMainSection.CatalogDescriptionWithoutPTag}}" |
| 272 | + stepKey="verifyOldDescriptionOnCategoryAStoreView"/> |
| 273 | + <waitForElement selector="{{StorefrontCategoryHeadSection.pageTitle('MetaAtitle')}}" |
| 274 | + stepKey="verifyOldMetaTitleOnCategoryAStoreView"/> |
| 275 | + <waitForText userInput="1" selector="{{StorefrontCategoryMainSection.productCount}}" |
269 | 276 | stepKey="verifyProductCountOnCategoryAStoreViewInitially"/> |
270 | | - <!-- Step 20:- Run cron twice to reindex and open Category A again on Store 2 storefront --> |
| 277 | + |
| 278 | + <!-- Step 20:- Run cron twice to reindex and verify NEW (Russian) content --> |
271 | 279 | <magentoCron groups="index" stepKey="runFirstCronAfterStoreViewUpdate"/> |
272 | 280 | <magentoCron groups="index" stepKey="runSecondCronAfterStoreViewUpdate"/> |
273 | 281 | <actionGroup ref="StorefrontGoToSubSubCategoryPageActionGroup" |
274 | 282 | stepKey="navigateToStorefrontCategoryAOnCustomStoreViewAfterCron"> |
275 | 283 | <argument name="categoryName" value="$createNonAnchorCategoryC.name$"/> |
276 | 284 | <argument name="subCategoryName" value="$createSubCategoryB.name$"/> |
277 | | - <argument name="subSubCategoryName" value="Категория А"/> |
| 285 | + <argument name="subSubCategoryName" value="$createAnchorCategoryA.name$"/> |
278 | 286 | </actionGroup> |
279 | | - <waitForText userInput="1" selector="#toolbar-amount span" |
| 287 | + <!-- Verify NEW content (Russian) - after cron runs --> |
| 288 | + <waitForElementVisible selector="{{StorefrontCategoryMainSection.categoryImage}}" |
| 289 | + stepKey="verifyNewImageVisibleOnCategoryAStoreView"/> |
| 290 | + <waitForText userInput="Другое описание категории А" |
| 291 | + selector="{{StorefrontCategoryMainSection.CatalogDescriptionWithoutPTag}}" |
| 292 | + stepKey="verifyNewDescriptionOnCategoryAStoreView"/> |
| 293 | + <waitForElement selector="{{StorefrontCategoryHeadSection.pageTitle('Meta A Store View')}}" |
| 294 | + stepKey="verifyNewMetaTitleOnCategoryAStoreView"/> |
| 295 | + <waitForText userInput="1" selector="{{StorefrontCategoryMainSection.productCount}}" |
280 | 296 | stepKey="verifyProductCountOnCategoryAStoreViewAfterCron"/> |
281 | 297 | </test> |
282 | 298 | </tests> |
0 commit comments