Skip to content

Commit 5291810

Browse files
committed
ACQE-8896: Admin should be able to create configurable product with Chinese locale and verify data persistence
- Created test file
1 parent b54387b commit 5291810

File tree

1 file changed

+164
-0
lines changed

1 file changed

+164
-0
lines changed
Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © 2025 Adobe
5+
* All Rights Reserved.
6+
*/
7+
-->
8+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
10+
<test name="AdminCreateConfigurableProductWithChineseLocaleTest">
11+
<annotations>
12+
<features value="ConfigurableProduct"/>
13+
<stories value="Create Configurable Product"/>
14+
<title value="Admin should be able to create configurable product with Chinese locale and verify data persistence"/>
15+
<description value="Create configurable product with size and color attributes under Chinese locale, verify data after save, reopen, and on storefront"/>
16+
<severity value="MAJOR"/>
17+
<testCaseId value="AC-4089"/>
18+
<group value="ConfigurableProduct"/>
19+
</annotations>
20+
<before>
21+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
22+
<actionGroup ref="SetAdminAccountActionGroup" stepKey="changeAdminLocaleToChina">
23+
<argument name="InterfaceLocaleByValue" value="zh_Hans_CN"/>
24+
</actionGroup>
25+
<createData entity="ApiCategory" stepKey="createCategory"/>
26+
<createData entity="productAttributeWithTwoOptions" stepKey="createColorAttribute"/>
27+
<createData entity="productAttributeOption1" stepKey="createColorOptionRed">
28+
<requiredEntity createDataKey="createColorAttribute"/>
29+
</createData>
30+
<createData entity="productAttributeOption2" stepKey="createColorOptionGreen">
31+
<requiredEntity createDataKey="createColorAttribute"/>
32+
</createData>
33+
<createData entity="productAttributeOption3" stepKey="createColorOptionBlue">
34+
<requiredEntity createDataKey="createColorAttribute"/>
35+
</createData>
36+
<createData entity="productAttributeWithTwoOptions" stepKey="createSizeAttribute"/>
37+
<createData entity="productAttributeOption1" stepKey="createSizeOptionXL">
38+
<requiredEntity createDataKey="createSizeAttribute"/>
39+
</createData>
40+
<createData entity="productAttributeOption2" stepKey="createSizeOptionL">
41+
<requiredEntity createDataKey="createSizeAttribute"/>
42+
</createData>
43+
<createData entity="productAttributeOption3" stepKey="createSizeOptionM">
44+
<requiredEntity createDataKey="createSizeAttribute"/>
45+
</createData>
46+
<createData entity="productAttributeOption4" stepKey="createSizeOptionS">
47+
<requiredEntity createDataKey="createSizeAttribute"/>
48+
</createData>
49+
<createData entity="productAttributeOption5" stepKey="createSizeOptionXS">
50+
<requiredEntity createDataKey="createSizeAttribute"/>
51+
</createData>
52+
</before>
53+
<after>
54+
<actionGroup ref="SetAdminAccountActionGroup" stepKey="resetAdminLocale">
55+
<argument name="InterfaceLocaleByValue" value="en_US"/>
56+
</actionGroup>
57+
<!-- Delete configurable product -->
58+
<helper class="Magento\Catalog\Test\Mftf\Helper\ProductApiHelper" method="deleteAllProductsApi" stepKey="deleteAllProductsViaApi"/>
59+
<deleteData createDataKey="createColorAttribute" stepKey="deleteColorAttribute"/>
60+
<deleteData createDataKey="createSizeAttribute" stepKey="deleteSizeAttribute"/>
61+
<deleteData createDataKey="createCategory" stepKey="deleteCategory"/>
62+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
63+
</after>
64+
<!-- Step 1: Create configurable product -->
65+
<actionGroup ref="AdminOpenProductIndexPageActionGroup" stepKey="navigateToProductIndexPage"/>
66+
<actionGroup ref="GoToCreateProductPageActionGroup" stepKey="goToCreateConfigurableProduct">
67+
<argument name="product" value="BaseConfigurableProduct"/>
68+
</actionGroup>
69+
<!-- Step 2: Fill product form -->
70+
<actionGroup ref="FillMainProductFormActionGroup" stepKey="fillProductForm">
71+
<argument name="product" value="BaseConfigurableProduct"/>
72+
</actionGroup>
73+
<searchAndMultiSelectOption selector="{{AdminProductFormSection.categoriesDropdown}}" parameterArray="[$createCategory.name$]" stepKey="selectCategory"/>
74+
<actionGroup ref="AdminFillProductQtyOnProductFormActionGroup" stepKey="fillProductQuantity">
75+
<argument name="productQty" value="100"/>
76+
</actionGroup>
77+
<!-- Step 3: Create product configurations -->
78+
<click selector="{{AdminProductFormConfigurationsSection.createConfigurations}}" stepKey="clickCreateConfigurations"/>
79+
<waitForElementClickable selector="{{AdminCreateProductConfigurationsPanel.attributeCheckbox($createColorAttribute.attribute_code$)}}" stepKey="waitForColorAttributeCheckbox"/>
80+
<click selector="{{AdminCreateProductConfigurationsPanel.attributeCheckbox($createColorAttribute.attribute_code$)}}" stepKey="selectColorAttribute"/>
81+
<click selector="{{AdminCreateProductConfigurationsPanel.attributeCheckbox($createSizeAttribute.attribute_code$)}}" stepKey="selectSizeAttribute"/>
82+
<click selector="{{AdminCreateProductConfigurationsPanel.next}}" stepKey="clickNextStep1"/>
83+
<waitForElementClickable selector="{{AdminCreateProductConfigurationsPanel.selectAllByAttribute($createColorAttribute.default_frontend_label$)}}" stepKey="waitForSelectAllColorButton"/>
84+
<click selector="{{AdminCreateProductConfigurationsPanel.selectAllByAttribute($createColorAttribute.default_frontend_label$)}}" stepKey="selectAllColorAttributeOptions"/>
85+
<click selector="{{AdminCreateProductConfigurationsPanel.selectAllByAttribute($createSizeAttribute.default_frontend_label$)}}" stepKey="selectAllSizeAttributeOptions"/>
86+
<click selector="{{AdminCreateProductConfigurationsPanel.next}}" stepKey="clickNextStep2"/>
87+
<waitForPageLoad stepKey="waitForBulkStep"/>
88+
<waitForElementClickable selector="{{AdminCreateProductConfigurationsPanel.applySingleSetOfImages}}" stepKey="waitForApplySingleImageSetButton"/>
89+
<click selector="{{AdminCreateProductConfigurationsPanel.applySingleSetOfImages}}" stepKey="clickOnApplySingleImageSetToAllSku"/>
90+
<waitForElementVisible selector="{{AdminCreateProductConfigurationsPanel.imageUploadButton}}" stepKey="waitForImageUploadButton"/>
91+
<attachFile selector="{{AdminCreateProductConfigurationsPanel.imageFileUpload}}" userInput="{{MagentoLogo.file}}" stepKey="uploadConfigProductImage"/>
92+
<waitForPageLoad stepKey="waitForImageUpload"/>
93+
<waitForElementVisible selector="{{AdminCreateProductConfigurationsPanel.imageFile(MagentoLogo.filename)}}" stepKey="waitForImageThumbnail"/>
94+
<click selector="{{AdminCreateProductConfigurationsPanel.applySingleQuantityToEachSkus}}" stepKey="clickOnApplySingleQuantityToEachSku"/>
95+
<fillField selector="{{AdminCreateProductConfigurationsPanel.quantity}}" userInput="10" stepKey="enterAttributeQuantity"/>
96+
<click selector="{{AdminCreateProductConfigurationsPanel.next}}" stepKey="clickNextStep3"/>
97+
<waitForElementClickable selector="{{AdminCreateProductConfigurationsPanel.next}}" stepKey="waitForGenerateProductsButton"/>
98+
<click selector="{{AdminCreateProductConfigurationsPanel.next}}" stepKey="clickGenerateProducts"/>
99+
<waitForElementVisible selector="{{AdminProductFormConfigurationsSection.confProductPriceCell('$createColorAttribute.default_frontend_label$: $createColorOptionRed.option[store_labels][1][label]$, $createSizeAttribute.default_frontend_label$: $createSizeOptionXL.option[store_labels][1][label]$')}}" stepKey="waitForPriceFields"/>
100+
<fillField selector="{{AdminProductFormConfigurationsSection.confProductPriceCell('$createColorAttribute.default_frontend_label$: $createColorOptionRed.option[store_labels][1][label]$, $createSizeAttribute.default_frontend_label$: $createSizeOptionXL.option[store_labels][1][label]$')}}" userInput="50.00" stepKey="setPriceRedXL"/>
101+
<fillField selector="{{AdminProductFormConfigurationsSection.confProductPriceCell('$createColorAttribute.default_frontend_label$: $createColorOptionRed.option[store_labels][1][label]$, $createSizeAttribute.default_frontend_label$: $createSizeOptionL.option[store_labels][1][label]$')}}" userInput="45.00" stepKey="setPriceRedL"/>
102+
<fillField selector="{{AdminProductFormConfigurationsSection.confProductPriceCell('$createColorAttribute.default_frontend_label$: $createColorOptionRed.option[store_labels][1][label]$, $createSizeAttribute.default_frontend_label$: $createSizeOptionM.option[store_labels][1][label]$')}}" userInput="40.00" stepKey="setPriceRedM"/>
103+
<fillField selector="{{AdminProductFormConfigurationsSection.confProductPriceCell('$createColorAttribute.default_frontend_label$: $createColorOptionRed.option[store_labels][1][label]$, $createSizeAttribute.default_frontend_label$: $createSizeOptionS.option[store_labels][1][label]$')}}" userInput="35.00" stepKey="setPriceRedS"/>
104+
<fillField selector="{{AdminProductFormConfigurationsSection.confProductPriceCell('$createColorAttribute.default_frontend_label$: $createColorOptionRed.option[store_labels][1][label]$, $createSizeAttribute.default_frontend_label$: $createSizeOptionXS.option[store_labels][1][label]$')}}" userInput="30.00" stepKey="setPriceRedXS"/>
105+
<fillField selector="{{AdminProductFormConfigurationsSection.confProductPriceCell('$createColorAttribute.default_frontend_label$: $createColorOptionGreen.option[store_labels][1][label]$, $createSizeAttribute.default_frontend_label$: $createSizeOptionXL.option[store_labels][1][label]$')}}" userInput="55.00" stepKey="setPriceGreenXL"/>
106+
<fillField selector="{{AdminProductFormConfigurationsSection.confProductPriceCell('$createColorAttribute.default_frontend_label$: $createColorOptionGreen.option[store_labels][1][label]$, $createSizeAttribute.default_frontend_label$: $createSizeOptionL.option[store_labels][1][label]$')}}" userInput="50.00" stepKey="setPriceGreenL"/>
107+
<fillField selector="{{AdminProductFormConfigurationsSection.confProductPriceCell('$createColorAttribute.default_frontend_label$: $createColorOptionGreen.option[store_labels][1][label]$, $createSizeAttribute.default_frontend_label$: $createSizeOptionM.option[store_labels][1][label]$')}}" userInput="45.00" stepKey="setPriceGreenM"/>
108+
<fillField selector="{{AdminProductFormConfigurationsSection.confProductPriceCell('$createColorAttribute.default_frontend_label$: $createColorOptionGreen.option[store_labels][1][label]$, $createSizeAttribute.default_frontend_label$: $createSizeOptionS.option[store_labels][1][label]$')}}" userInput="40.00" stepKey="setPriceGreenS"/>
109+
<fillField selector="{{AdminProductFormConfigurationsSection.confProductPriceCell('$createColorAttribute.default_frontend_label$: $createColorOptionGreen.option[store_labels][1][label]$, $createSizeAttribute.default_frontend_label$: $createSizeOptionXS.option[store_labels][1][label]$')}}" userInput="35.00" stepKey="setPriceGreenXS"/>
110+
<fillField selector="{{AdminProductFormConfigurationsSection.confProductPriceCell('$createColorAttribute.default_frontend_label$: $createColorOptionBlue.option[store_labels][1][label]$, $createSizeAttribute.default_frontend_label$: $createSizeOptionXL.option[store_labels][1][label]$')}}" userInput="60.00" stepKey="setPriceBlueXL"/>
111+
<fillField selector="{{AdminProductFormConfigurationsSection.confProductPriceCell('$createColorAttribute.default_frontend_label$: $createColorOptionBlue.option[store_labels][1][label]$, $createSizeAttribute.default_frontend_label$: $createSizeOptionL.option[store_labels][1][label]$')}}" userInput="55.00" stepKey="setPriceBlueL"/>
112+
<fillField selector="{{AdminProductFormConfigurationsSection.confProductPriceCell('$createColorAttribute.default_frontend_label$: $createColorOptionBlue.option[store_labels][1][label]$, $createSizeAttribute.default_frontend_label$: $createSizeOptionM.option[store_labels][1][label]$')}}" userInput="50.00" stepKey="setPriceBlueM"/>
113+
<fillField selector="{{AdminProductFormConfigurationsSection.confProductPriceCell('$createColorAttribute.default_frontend_label$: $createColorOptionBlue.option[store_labels][1][label]$, $createSizeAttribute.default_frontend_label$: $createSizeOptionS.option[store_labels][1][label]$')}}" userInput="45.00" stepKey="setPriceBlueS"/>
114+
<fillField selector="{{AdminProductFormConfigurationsSection.confProductPriceCell('$createColorAttribute.default_frontend_label$: $createColorOptionBlue.option[store_labels][1][label]$, $createSizeAttribute.default_frontend_label$: $createSizeOptionXS.option[store_labels][1][label]$')}}" userInput="40.00" stepKey="setPriceBlueXS"/>
115+
<!-- Step 4: Save product -->
116+
<actionGroup ref="SaveConfigurableProductAddToCurrentAttributeSetActionGroup" stepKey="saveConfigProduct"/>
117+
<!-- Step 5: Navigate back to product index page -->
118+
<actionGroup ref="AdminOpenProductIndexPageActionGroup" stepKey="navigateBackToProductIndex"/>
119+
<actionGroup ref="FilterProductGridBySkuActionGroup" stepKey="filterProductBySku">
120+
<argument name="product" value="BaseConfigurableProduct"/>
121+
</actionGroup>
122+
<actionGroup ref="OpenEditProductOnBackendActionGroup" stepKey="openProductForEdit">
123+
<argument name="product" value="BaseConfigurableProduct"/>
124+
</actionGroup>
125+
<!-- Verify product basic data -->
126+
<seeInField selector="{{AdminProductFormSection.productName}}" userInput="{{BaseConfigurableProduct.name}}" stepKey="verifyProductName"/>
127+
<seeInField selector="{{AdminProductFormSection.productSku}}" userInput="{{BaseConfigurableProduct.sku}}" stepKey="verifyProductSku"/>
128+
<!-- Verify all 15 variations exist -->
129+
<conditionalClick selector="{{AdminProductFormConfigurationsSection.sectionHeader}}" dependentSelector="{{AdminProductFormConfigurationsSection.currentVariations}}" visible="false" stepKey="expandConfigurationsSection"/>
130+
<waitForElementVisible selector="{{AdminProductFormConfigurationsSection.currentVariations}}" stepKey="waitForConfigurationsContainer"/>
131+
<seeNumberOfElements selector="{{AdminProductFormConfigurationsSection.currentVariationsAllRows}}" userInput="15" stepKey="verifyNumberOfVariationsAfterReopen"/>
132+
<!-- Verify image is assigned to variations -->
133+
<seeElement selector="{{AdminProductFormConfigurationsSection.variationImageSource(MagentoLogo.filename)}}" stepKey="verifyImageAssignedToVariations"/>
134+
<!-- Step 6: Open product on storefront -->
135+
<actionGroup ref="StorefrontOpenProductPageActionGroup" stepKey="openProductOnStorefront">
136+
<argument name="productUrl" value="{{BaseConfigurableProduct.urlKey}}"/>
137+
</actionGroup>
138+
<waitForText selector="{{StorefrontProductInfoMainSection.productName}}" userInput="{{BaseConfigurableProduct.name}}" stepKey="verifyProductNameOnStorefront"/>
139+
<!-- Select color option (Red - option1) -->
140+
<waitForElementVisible selector="{{StorefrontProductInfoMainSection.productOptionSelect($createColorAttribute.default_frontend_label$)}}" stepKey="waitForColorOptions"/>
141+
<selectOption selector="{{StorefrontProductInfoMainSection.productOptionSelect($createColorAttribute.default_frontend_label$)}}" userInput="$createColorOptionRed.option[store_labels][1][label]$" stepKey="selectColorRed"/>
142+
<!-- Select size option (XL - option1) -->
143+
<waitForElementVisible selector="{{StorefrontProductInfoMainSection.productOptionSelect($createSizeAttribute.default_frontend_label$)}}" stepKey="waitForSizeOptions"/>
144+
<selectOption selector="{{StorefrontProductInfoMainSection.productOptionSelect($createSizeAttribute.default_frontend_label$)}}" userInput="$createSizeOptionXL.option[store_labels][1][label]$" stepKey="selectSizeXL"/>
145+
<waitForPageLoad stepKey="waitAfterOptionSelection"/>
146+
<!-- Verify image is displayed after selecting options -->
147+
<waitForElementVisible selector="{{StorefrontProductInfoMainSection.productImage}}" stepKey="waitForProductImage"/>
148+
<seeElement selector="{{StorefrontProductInfoMainSection.productImageSrc(MagentoLogo.filename)}}" stepKey="verifyProductImageOnStorefront"/>
149+
<!-- Verify price for Red XL combination -->
150+
<waitForText selector="{{StorefrontProductInfoMainSection.productPrice}}" userInput="50.00" stepKey="verifyProductPrice"/>
151+
<actionGroup ref="StorefrontAddProductToCartActionGroup" stepKey="addProductToCart">
152+
<argument name="product" value="BaseConfigurableProduct"/>
153+
<argument name="productCount" value="1"/>
154+
</actionGroup>
155+
<actionGroup ref="GoToCheckoutFromMinicartActionGroup" stepKey="goToCheckout"/>
156+
<actionGroup ref="GuestCheckoutFillingShippingSectionActionGroup" stepKey="fillShippingAddress">
157+
<argument name="customerVar" value="CustomerEntityOne"/>
158+
<argument name="customerAddressVar" value="CustomerAddressSimple"/>
159+
</actionGroup>
160+
<actionGroup ref="CheckoutSelectCheckMoneyOrderPaymentActionGroup" stepKey="selectCheckMoneyOrderPayment"/>
161+
<actionGroup ref="ClickPlaceOrderActionGroup" stepKey="placeOrder"/>
162+
</test>
163+
</tests>
164+

0 commit comments

Comments
 (0)