Skip to content

Commit e6a476e

Browse files
committed
ACQE-8254: Check Categories URL Path in multi-store On Storefront
- New automation testfile and actiongroup are added
1 parent a20a6ff commit e6a476e

7 files changed

+268
-0
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright 2025 Adobe
5+
* All Rights Reserved.
6+
*/
7+
-->
8+
9+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="AdminDisableCategoryPathForProductUrlActionGroup">
12+
<annotations>
13+
<description>Disable the category path for product url through CLI</description>
14+
</annotations>
15+
<magentoCLI command="config:set {{DisableCategoriesPathForProductUrls.path}} {{DisableCategoriesPathForProductUrls.value}}" stepKey="disableCategoriesPathForProductUrls"/>
16+
</actionGroup>
17+
</actionGroups>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright 2025 Adobe
5+
* All Rights Reserved.
6+
*/
7+
-->
8+
9+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="AdminEnableCategoryPathForProductUrlActionGroup">
12+
<annotations>
13+
<description>Enable the category path for product url through CLI</description>
14+
</annotations>
15+
<magentoCLI command="config:set {{EnableCategoriesPathForProductUrls.path}} {{EnableCategoriesPathForProductUrls.value}}" stepKey="enableCategoriesPathForProductUrls"/>
16+
</actionGroup>
17+
</actionGroups>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright 2025 Adobe
5+
* All Rights Reserved.
6+
*/
7+
-->
8+
9+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="AdminSetCategoryUrlSuffixActionGroup">
12+
<annotations>
13+
<description>Sets Category Url Suffix as .html through CLI</description>
14+
</annotations>
15+
<magentoCLI command="config:set {{CustomizedCategory.url_path}} {{CustomizedCategory.url_suffix}}" stepKey="setCategoryUrlSuffix"/>
16+
</actionGroup>
17+
</actionGroups>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright 2025 Adobe
5+
* All Rights Reserved.
6+
*/
7+
-->
8+
9+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="SwitchRootCategoryForDefaultStoreActionGroup" extends="SwitchCategoryStoreViewActionGroup">
12+
<annotations>
13+
<description>Navigates to category page, selects a category and changes store view to default store.</description>
14+
</annotations>
15+
<conditionalClick selector="{{AdminCategorySEOSection.SectionHeader}}" dependentSelector="{{AdminCategorySEOSection.sectionBody}}" visible="false" after="waitForSpinner" stepKey="openSeoSection"/>
16+
</actionGroup>
17+
</actionGroups>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright 2025 Adobe
5+
* All Rights Reserved.
6+
*/
7+
-->
8+
9+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="SwitchSubCategoryForCustomStoreActionGroup" extends="SwitchCategoryStoreViewActionGroup">
12+
<annotations>
13+
<description>Goes to category page, selects a category and changes store view to specified store.</description>
14+
</annotations>
15+
<remove keyForRemoval="amOnCategoryPage"/>
16+
<remove keyForRemoval="navigateToCreatedCategory"/>
17+
</actionGroup>
18+
</actionGroups>

app/code/Magento/Catalog/Test/Mftf/Data/CategoryData.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,4 +321,13 @@
321321
<data key="is_active">true</data>
322322
<requiredEntity type="custom_attribute">CustomAttributeCategoryNonAnchor</requiredEntity>
323323
</entity>
324+
<entity name="CustomizedCategory" type="category">
325+
<data key="name">a</data>
326+
<data key="path">b</data>
327+
<data key="value">other-a</data>
328+
<data key="urlKey">other-b</data>
329+
<data key="data">other-b2</data>
330+
<data key="url_path">catalog/seo/category_url_suffix</data>
331+
<data key="url_suffix">.html</data>
332+
</entity>
324333
</entities>
Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright 2025 Adobe
5+
* All Rights Reserved.
6+
*/
7+
-->
8+
9+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
11+
<test name="StorefrontVerifyUrlKeyForSpecifiedStoreTest">
12+
<annotations>
13+
<features value="Catalog"/>
14+
<stories value="Update category on store view level"/>
15+
<title value="Check Categories URL Path in multi-store On Storefront"/>
16+
<description value="Admin updates category, URL key with custom store view and default store view"/>
17+
<severity value="MAJOR"/>
18+
<testCaseId value="AC-5109"/>
19+
<group value="Catalog"/>
20+
</annotations>
21+
<before>
22+
<!-- Precondition Step 1:Set custom url suffixes -->
23+
<actionGroup ref="AdminSetCategoryUrlSuffixActionGroup" stepKey="setCategoryUrlSuffix"/>
24+
<!-- Precondition Step 2:Use Categories Path for Product URLs: Yes -->
25+
<actionGroup ref="AdminEnableCategoryPathForProductUrlActionGroup" stepKey="enableCategoriesPathForProductUrls"/>
26+
<!-- Precondition Step 3:Create an additional root category with a sub category -->
27+
<createData entity="_defaultCategory" stepKey="createTestCategory"/>
28+
<createData entity="Two_nested_categories" stepKey="createSubTestCategory">
29+
<requiredEntity createDataKey="createTestCategory"/>
30+
</createData>
31+
<!-- Precondition Step 4:Create 1 additional store view including default store view -->
32+
<actionGroup ref="AdminCreateStoreViewActionGroup" stepKey="createStoreView">
33+
<argument name="customStore" value="NewStoreViewData"/>
34+
</actionGroup>
35+
</before>
36+
<after>
37+
<!-- Set default value for category suffix -->
38+
<actionGroup ref="AdminSetCategoryUrlSuffixActionGroup" stepKey="setCategoryUrlSuffix"/>
39+
<!-- Disable Category path for product url -->
40+
<actionGroup ref="AdminDisableCategoryPathForProductUrlActionGroup" stepKey="disableCategoriesPathForProductUrls"/>
41+
<!-- Delete data -->
42+
<deleteData createDataKey="createSubTestCategory" stepKey="deleteSubCategory"/>
43+
<deleteData createDataKey="createTestCategory" stepKey="deleteMainCategory"/>
44+
<actionGroup ref="DeleteCustomStoreViewWithoutBackupActionGroup" stepKey="deleteCustomStoreView">
45+
<argument name="storeViewName" value="{{NewStoreViewData.name}}"/>
46+
</actionGroup>
47+
<!-- Logout from admin -->
48+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
49+
</after>
50+
<!-- Step 1:Login to Admin Panel -->
51+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
52+
<!-- Step 2&3:Switch To Default Store view For root category and Click On Ok Button-->
53+
<actionGroup ref="SwitchRootCategoryForDefaultStoreActionGroup" stepKey="SwitchStoreView">
54+
<argument name="Store" value="_defaultStore.name"/>
55+
<argument name="CatName" value="_defaultCategory.name"/>
56+
</actionGroup>
57+
<!-- Step 4:Update data for root category under default store view scope -->
58+
<actionGroup ref="AdminOpenCategoryPageActionGroup" stepKey="openAdminCategoryIndexPage"/>
59+
<actionGroup ref="AdminExpandCategoryTreeActionGroup" stepKey="clickOnExpandTree"/>
60+
<actionGroup ref="AdminCategoriesOpenCategoryActionGroup" stepKey="selectCategory">
61+
<argument name="category" value="$$createTestCategory$$"/>
62+
</actionGroup>
63+
<actionGroup ref="ChangeSeoUrlKeyActionGroup" stepKey="updateUrlKeyForCategory">
64+
<argument name="value" value="{{CustomizedCategory.name}}"/>
65+
</actionGroup>
66+
<actionGroup ref="AdminOpenCategoryPageActionGroup" stepKey="openAdminCategoryPage"/>
67+
<actionGroup ref="AdminExpandCategoryTreeActionGroup" stepKey="clickOnExpandTreeOnRootCategory"/>
68+
<actionGroup ref="AdminCategoriesOpenCategoryActionGroup" stepKey="selectRootCategory">
69+
<argument name="category" value="$$createTestCategory$$"/>
70+
</actionGroup>
71+
<!-- Step 5&6:Switch To custom store view scope for root category and Click On Ok Button -->
72+
<actionGroup ref="SwitchRootCategoryForDefaultStoreActionGroup" stepKey="SwitchToStoreView">
73+
<argument name="Store" value="NewStoreViewData.name"/>
74+
<argument name="CatName" value="_defaultCategory.name"/>
75+
</actionGroup>
76+
<!-- Step 7:Update data for root category under custom store view scope -->
77+
<actionGroup ref="ChangeSeoUrlKeyForSubCategoryActionGroup" stepKey="changeSeoUrlKeyForSubCategoryCustomStore">
78+
<argument name="value" value="{{CustomizedCategory.value}}"/>
79+
</actionGroup>
80+
<actionGroup ref="AdminOpenCategoryPageActionGroup" stepKey="openAdminRootCategoryPage"/>
81+
<!-- Step 8&9:Switch To default store view scope for sub category and Click On Ok Button -->
82+
<actionGroup ref="AdminExpandCategoryTreeActionGroup" stepKey="clickOnExpand"/>
83+
<actionGroup ref="AdminCategoriesOpenCategoryActionGroup" stepKey="selectSubCategoryTree">
84+
<argument name="category" value="$$createSubTestCategory$$"/>
85+
</actionGroup>
86+
<actionGroup ref="SwitchSubCategoryForCustomStoreActionGroup" stepKey="SwitchAgainStoreView">
87+
<argument name="Store" value="_defaultStore.name"/>
88+
<argument name="CatName" value=""/>
89+
</actionGroup>
90+
<!-- Step 10:Update data for sub category under default store view scope -->
91+
<actionGroup ref="ChangeSeoUrlKeyForSubCategoryActionGroup" stepKey="updateUrlKeyForSubCategoryCustomStore">
92+
<argument name="value" value="{{CustomizedCategory.path}}"/>
93+
</actionGroup>
94+
<!-- Step 11&12:Switch To custom store view scope for sub category and Click On Ok Button -->
95+
<actionGroup ref="SwitchSubCategoryForCustomStoreActionGroup" stepKey="SwitchToCustomStoreView">
96+
<argument name="Store" value="NewStoreViewData.name"/>
97+
<argument name="CatName" value=""/>
98+
</actionGroup>
99+
<!-- Step 13:Update data for root category under custom store view scope -->
100+
<waitForElementClickable selector="{{AdminCategorySEOSection.SectionHeader}}" stepKey="waitToClickOpenSeoSection"/>
101+
<actionGroup ref="ChangeSeoUrlKeyForSubCategoryActionGroup" stepKey="changeUrlKeyForSubCategoryCustomizedStore">
102+
<argument name="value" value="{{CustomizedCategory.urlKey}}"/>
103+
</actionGroup>
104+
<!-- Step 14&15:Go To Storefront and Switch to default store view for root category & Open root category on Storefront under default store view -->
105+
<actionGroup ref="StorefrontGoToCategoryPageActionGroup" stepKey="openRootCategoryPage">
106+
<argument name="categoryName" value="$$createTestCategory.name$$"/>
107+
</actionGroup>
108+
<actionGroup ref="StorefrontAssertProperUrlIsShownActionGroup" stepKey="assertUpdatedUrlKey">
109+
<argument name="urlPath" value="{{CustomizedCategory.name}}.html"/>
110+
</actionGroup>
111+
<!-- Step 16:Open subcategory for default store view -->
112+
<actionGroup ref="StorefrontGoToSubCategoryPageActionGroup" stepKey="navigateToSubCategoryPage">
113+
<argument name="categoryName" value="$$createTestCategory.name$$"/>
114+
<argument name="subCategoryName" value="$$createSubTestCategory.name$$"/>
115+
</actionGroup>
116+
<!-- Step 17:Verify url for subcategory for default store view -->
117+
<actionGroup ref="StorefrontAssertProperUrlIsShownActionGroup" stepKey="assertUrlPathForCategory">
118+
<argument name="urlPath" value="{{CustomizedCategory.name}}/{{CustomizedCategory.path}}.html"/>
119+
</actionGroup>
120+
<!-- Step 18&19:Go To Storefront and Switch to custom store view for root category & Open root category on Storefront under custom store view -->
121+
<actionGroup ref="StorefrontGoToCategoryPageActionGroup" stepKey="openCategoryPage">
122+
<argument name="categoryName" value="$$createTestCategory.name$$"/>
123+
</actionGroup>
124+
<actionGroup ref="StorefrontSwitchStoreViewActionGroup" stepKey="switchStoreViewToCustomStore">
125+
<argument name="storeView" value="NewStoreViewData"/>
126+
</actionGroup>
127+
<actionGroup ref="StorefrontAssertProperUrlIsShownActionGroup" stepKey="verifyUpdatedUrlKey">
128+
<argument name="urlPath" value="{{CustomizedCategory.value}}.html"/>
129+
</actionGroup>
130+
<!-- Step 20:Open subcategory for custom store view -->
131+
<actionGroup ref="StorefrontGoToSubCategoryPageActionGroup" stepKey="goToSubCategoryPage">
132+
<argument name="categoryName" value="$$createTestCategory.name$$"/>
133+
<argument name="subCategoryName" value="$$createSubTestCategory.name$$"/>
134+
</actionGroup>
135+
<actionGroup ref="StorefrontSwitchStoreViewActionGroup" stepKey="switchToCustomStoreViewInStorefront">
136+
<argument name="storeView" value="NewStoreViewData"/>
137+
</actionGroup>
138+
<!-- Step 21:Verify url for subcategory for custom store view -->
139+
<actionGroup ref="StorefrontAssertProperUrlIsShownActionGroup" stepKey="seeUpdatedUrlKey">
140+
<argument name="urlPath" value="{{CustomizedCategory.value}}/{{CustomizedCategory.urlKey}}.html"/>
141+
</actionGroup>
142+
<!-- Step 22:Navigate to Category page in admin -->
143+
<actionGroup ref="AdminOpenCategoryPageActionGroup" stepKey="openCategoryIndexPageInAdmin"/>
144+
<actionGroup ref="AdminExpandCategoryTreeActionGroup" stepKey="clickOnExpandCategoryTree"/>
145+
<actionGroup ref="AdminCategoriesOpenCategoryActionGroup" stepKey="selectSubCategory">
146+
<argument name="category" value="$$createSubTestCategory$$"/>
147+
</actionGroup>
148+
<!-- Step 23&24:Switch To custom store view scope for sub category and Click On Ok Button -->
149+
<actionGroup ref="SwitchSubCategoryForCustomStoreActionGroup" stepKey="switchToCustomStoreViewInAdmin">
150+
<argument name="Store" value="NewStoreViewData.name"/>
151+
<argument name="CatName" value=""/>
152+
</actionGroup>
153+
<!-- Step 25:Update data for root category under custom store view scope -->
154+
<actionGroup ref="ChangeSeoUrlKeyForSubCategoryActionGroup" stepKey="updateSeoUrlKeyForSubCategoryCustomStore">
155+
<argument name="value" value="{{CustomizedCategory.data}}"/>
156+
</actionGroup>
157+
<!-- Step 26:Open storefront -->
158+
<actionGroup ref="StorefrontOpenHomePageActionGroup" stepKey="goToHomePage"/>
159+
<!-- Step 27&28:Open subcategory for custom store view and Verify url for subcategory for custom store view -->
160+
<actionGroup ref="StorefrontSwitchStoreViewActionGroup" stepKey="switchBackToStoreView">
161+
<argument name="storeView" value="NewStoreViewData"/>
162+
</actionGroup>
163+
<waitForPageLoad stepKey="waitForPageToBeLoaded"/>
164+
<actionGroup ref="StorefrontGoToSubCategoryPageActionGroup" stepKey="navigateToSubCategoryStore">
165+
<argument name="categoryName" value="$$createTestCategory.name$$"/>
166+
<argument name="subCategoryName" value="$$createSubTestCategory.name$$"/>
167+
</actionGroup>
168+
<waitForPageLoad stepKey="waitForPage"/>
169+
<actionGroup ref="StorefrontAssertProperUrlIsShownActionGroup" stepKey="assertUrlPathForCategoryPage">
170+
<argument name="urlPath" value="{{CustomizedCategory.value}}/{{CustomizedCategory.data}}.html"/>
171+
</actionGroup>
172+
</test>
173+
</tests>

0 commit comments

Comments
 (0)