Skip to content

Commit 8bb4f37

Browse files
Merge branch 'ACQE-8254' into ACQE-functional-deployment-version12
2 parents e5cbee0 + da94008 commit 8bb4f37

File tree

4 files changed

+220
-0
lines changed

4 files changed

+220
-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>

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: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
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 2:Use Categories Path for Product URLs: Yes -->
23+
<actionGroup ref="AdminEnableCategoryPathForProductUrlActionGroup" stepKey="enableCategoriesPathForProductUrls"/>
24+
<!-- Precondition Step 3:Create Categories "CatA" and "CatAB" exist enabled and visible on storefront -->
25+
<createData entity="NewRootCategory" stepKey="createRootCategory"/>
26+
<createData entity="SimpleRootSubCategory" stepKey="createTestCategory">
27+
<requiredEntity createDataKey="createRootCategory"/>
28+
</createData>
29+
<createData entity="Two_nested_categories" stepKey="createSubTestCategory">
30+
<requiredEntity createDataKey="createTestCategory"/>
31+
</createData>
32+
<!-- Precondition Step 4:Create a new store -->
33+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
34+
<actionGroup ref="CreateCustomStoreActionGroup" stepKey="createCustomStore">
35+
<argument name="website" value="Main Website"/>
36+
<argument name="store" value="{{customStoreGroup.name}}"/>
37+
<argument name="rootCategory" value="$$createRootCategory.name$$"/>
38+
</actionGroup>
39+
<!-- Precondition Step 5:Create a store view for main website: Store view 1 and Store View 2 -->
40+
<actionGroup ref="AdminCreateStoreViewActionGroup" stepKey="createCustomStoreView">
41+
<argument name="StoreGroup" value="customStoreGroup"/>
42+
<argument name="customStore" value="storeViewData"/>
43+
</actionGroup>
44+
<actionGroup ref="AdminCreateStoreViewActionGroup" stepKey="createAnotherCustomStoreView">
45+
<argument name="StoreGroup" value="customStoreGroup"/>
46+
<argument name="customStore" value="NewStoreViewData"/>
47+
</actionGroup>
48+
<!-- Precondition Step 6:Assign Custom store into main website -->
49+
<actionGroup ref="AdminChangeWebsiteDefaultStoreActionGroup" stepKey="changeDefaultStoreToCustomStore">
50+
<argument name="website" value="Main Website"/>
51+
<argument name="storeGroupName" value="{{customStoreGroup.name}}"/>
52+
<argument name="defaultStoreName" value="{{customStoreGroup.name}}"/>
53+
</actionGroup>
54+
</before>
55+
<after>
56+
<!-- Disable Category path for product url -->
57+
<actionGroup ref="AdminDisableCategoryPathForProductUrlActionGroup" stepKey="disableCategoriesPathForProductUrls"/>
58+
<actionGroup ref="DeleteCustomStoreActionGroup" stepKey="deleteStore">
59+
<argument name="storeGroupName" value="customStoreGroup.name"/>
60+
</actionGroup>
61+
<deleteData createDataKey="createSubTestCategory" stepKey="deleteSubCategory"/>
62+
<deleteData createDataKey="createTestCategory" stepKey="deleteMainCategory"/>
63+
<deleteData createDataKey="createRootCategory" stepKey="deleteParentCategory"/>
64+
<!-- Logout from admin -->
65+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
66+
</after>
67+
<!-- Step 1,2&3:Switch To First Store View For root category and Click On Ok Button-->
68+
<actionGroup ref="SwitchCategoryStoreViewActionGroup" stepKey="switchStoreView">
69+
<argument name="Store" value="storeViewData.name"/>
70+
<argument name="CatName" value="NewRootCategory.name"/>
71+
</actionGroup>
72+
<!-- Step 4:Update data for category A under first store view scope -->
73+
<waitForElementClickable selector="{{AdminCategorySidebarTreeSection.expandAll}}" stepKey="waitToClickOnExpandTree"/>
74+
<actionGroup ref="AdminExpandCategoryTreeActionGroup" stepKey="clickOnExpandTree"/>
75+
<actionGroup ref="AdminCategoriesOpenCategoryActionGroup" stepKey="selectCategory">
76+
<argument name="category" value="$$createTestCategory$$"/>
77+
</actionGroup>
78+
<actionGroup ref="ChangeSeoUrlKeyForSubCategoryActionGroup" stepKey="updateUrlKeyForCategory">
79+
<argument name="value" value="{{CustomizedCategory.name}}"/>
80+
</actionGroup>
81+
<!-- Step 5&6:Switch To second store view scope for category A and Click On Ok Button -->
82+
<actionGroup ref="SwitchToTheNewStoreViewActionGroup" stepKey="switchToStoreView">
83+
<argument name="storeViewName" value="{{NewStoreViewData.name}}"/>
84+
</actionGroup>
85+
<!-- Step 7:Update data for category A under second store view scope -->
86+
<waitForElementClickable selector="{{AdminCategorySEOSection.SectionHeader}}" stepKey="waitToBeClickOpenSeoSection"/>
87+
<actionGroup ref="ChangeSeoUrlKeyForSubCategoryActionGroup" stepKey="changeSeoUrlKeyForSubCategoryCustomStore">
88+
<argument name="value" value="{{CustomizedCategory.value}}"/>
89+
</actionGroup>
90+
<!-- Step 8&9:Switch To first store view scope for sub category AB and Click On Ok Button -->
91+
<actionGroup ref="AdminExpandCategoryTreeActionGroup" stepKey="clickOnExpand"/>
92+
<actionGroup ref="AdminCategoriesOpenCategoryActionGroup" stepKey="selectSubCategoryTree">
93+
<argument name="category" value="$$createSubTestCategory$$"/>
94+
</actionGroup>
95+
<actionGroup ref="SwitchToTheNewStoreViewActionGroup" stepKey="switchDefaultStoreView">
96+
<argument name="storeViewName" value="{{storeViewData.name}}"/>
97+
</actionGroup>
98+
<!-- Step 10:Update data for sub category AB under first store view scope -->
99+
<actionGroup ref="ChangeSeoUrlKeyForSubCategoryActionGroup" stepKey="updateUrlKeyForSubCategoryCustomStore">
100+
<argument name="value" value="{{CustomizedCategory.path}}"/>
101+
</actionGroup>
102+
<!-- Step 11&12:Switch To second store view scope for sub category AB and Click On Ok Button -->
103+
<actionGroup ref="SwitchToTheNewStoreViewActionGroup" stepKey="switchNewStoreView">
104+
<argument name="storeViewName" value="{{NewStoreViewData.name}}"/>
105+
</actionGroup>
106+
<!-- Step 13:Update data for category A under second store view scope -->
107+
<waitForElementClickable selector="{{AdminCategorySEOSection.SectionHeader}}" stepKey="waitToClickOpenSeoSection"/>
108+
<actionGroup ref="ChangeSeoUrlKeyForSubCategoryActionGroup" stepKey="changeUrlKeyForSubCategoryCustomizedStore">
109+
<argument name="value" value="{{CustomizedCategory.urlKey}}"/>
110+
</actionGroup>
111+
<actionGroup ref="CliCacheCleanActionGroup" stepKey="cleanCache">
112+
<argument name="tags" value=""/>
113+
</actionGroup>
114+
<actionGroup ref="StorefrontOpenHomePageActionGroup" stepKey="openHomePage"/>
115+
<!-- Step 14&15:Go To Storefront and Switch to first store view for category A & Open root category on Storefront under first store view -->
116+
<actionGroup ref="StorefrontGoToCategoryPageActionGroup" stepKey="openRootCategoryPage">
117+
<argument name="categoryName" value="$$createTestCategory.name$$"/>
118+
</actionGroup>
119+
<actionGroup ref="StorefrontAssertProperUrlIsShownActionGroup" stepKey="assertUpdatedUrlKey">
120+
<argument name="urlPath" value="{{CustomizedCategory.name}}.html"/>
121+
</actionGroup>
122+
<!-- Step 16:Open subcategory AB for first store view -->
123+
<actionGroup ref="StorefrontGoToSubCategoryPageActionGroup" stepKey="navigateToSubCategoryPage">
124+
<argument name="categoryName" value="$$createTestCategory.name$$"/>
125+
<argument name="subCategoryName" value="$$createSubTestCategory.name$$"/>
126+
</actionGroup>
127+
<!-- Step 17:Verify url for subcategory AB for first store view -->
128+
<actionGroup ref="StorefrontAssertProperUrlIsShownActionGroup" stepKey="assertSeoUrlPathForCategory">
129+
<argument name="urlPath" value="{{CustomizedCategory.name}}/{{CustomizedCategory.path}}.html"/>
130+
</actionGroup>
131+
<!-- Step 18&19:Go To Storefront and Switch to second store view for category A & Open category A on Storefront under second store view -->
132+
<actionGroup ref="StorefrontGoToCategoryPageActionGroup" stepKey="openCategoryPage">
133+
<argument name="categoryName" value="$$createTestCategory.name$$"/>
134+
</actionGroup>
135+
<actionGroup ref="StorefrontSwitchStoreViewActionGroup" stepKey="switchAgainStoreViewToCustomStore">
136+
<argument name="storeView" value="NewStoreViewData"/>
137+
</actionGroup>
138+
<actionGroup ref="StorefrontAssertProperUrlIsShownActionGroup" stepKey="verifyUpdatedUrlKey">
139+
<argument name="urlPath" value="{{CustomizedCategory.value}}.html"/>
140+
</actionGroup>
141+
<!-- Step 20:Open subcategory AB for second store view -->
142+
<actionGroup ref="StorefrontGoToSubCategoryPageActionGroup" stepKey="goToSubCategoryPage">
143+
<argument name="categoryName" value="$$createTestCategory.name$$"/>
144+
<argument name="subCategoryName" value="$$createSubTestCategory.name$$"/>
145+
</actionGroup>
146+
<!-- Step 21:Verify url for subcategory AB for second store view -->
147+
<actionGroup ref="StorefrontAssertProperUrlIsShownActionGroup" stepKey="seeUpdatedUrlKey">
148+
<argument name="urlPath" value="{{CustomizedCategory.value}}/{{CustomizedCategory.urlKey}}.html"/>
149+
</actionGroup>
150+
<!-- Step 22:Navigate to Category page in admin -->
151+
<actionGroup ref="AdminOpenCategoryPageActionGroup" stepKey="openTheAdminCategoryIndexPage"/>
152+
<actionGroup ref="AdminExpandCategoryTreeActionGroup" stepKey="clickOnExpandCategoryTree"/>
153+
<actionGroup ref="AdminCategoriesOpenCategoryActionGroup" stepKey="selectSubCategory">
154+
<argument name="category" value="$$createSubTestCategory$$"/>
155+
</actionGroup>
156+
<!-- Step 23&24:Switch To second store view scope for sub category AB and Click On Ok Button -->
157+
<actionGroup ref="SwitchToTheNewStoreViewActionGroup" stepKey="switchToCustomStoreViewInAdmin">
158+
<argument name="storeViewName" value="{{NewStoreViewData.name}}"/>
159+
</actionGroup>
160+
<!-- Step 25:Update data for Sub category AB under second store view scope -->
161+
<actionGroup ref="ChangeSeoUrlKeyForSubCategoryActionGroup" stepKey="updateSeoUrlKeyForSubCategoryCustomStore">
162+
<argument name="value" value="{{CustomizedCategory.data}}"/>
163+
</actionGroup>
164+
<!-- Step 26:Open storefront -->
165+
<actionGroup ref="StorefrontOpenHomePageActionGroup" stepKey="goToHomePage"/>
166+
<!-- Step 27&28:Open subcategory for second store view and Verify url for subcategory AB for second store view -->
167+
<waitForPageLoad stepKey="waitForPageToBeLoaded"/>
168+
<actionGroup ref="StorefrontGoToSubCategoryPageActionGroup" stepKey="navigateToSubCategoryStore">
169+
<argument name="categoryName" value="$$createTestCategory.name$$"/>
170+
<argument name="subCategoryName" value="$$createSubTestCategory.name$$"/>
171+
</actionGroup>
172+
<waitForPageLoad stepKey="waitForPage"/>
173+
<actionGroup ref="StorefrontAssertProperUrlIsShownActionGroup" stepKey="assertUrlPathForCategoryPage">
174+
<argument name="urlPath" value="{{CustomizedCategory.value}}/{{CustomizedCategory.data}}.html"/>
175+
</actionGroup>
176+
</test>
177+
</tests>

0 commit comments

Comments
 (0)