Skip to content

Commit bfe765f

Browse files
Merge branch 'ACQE-8896' into ACQE-functional-deployment-version22
2 parents 46211d7 + 9869fc7 commit bfe765f

File tree

1 file changed

+161
-0
lines changed

1 file changed

+161
-0
lines changed
Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
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="AdminCreateConfigurableProductWithChineseLocaleTest">
12+
<annotations>
13+
<features value="ConfigurableProduct"/>
14+
<stories value="Create Configurable Product"/>
15+
<title value="Admin should be able to create configurable product with Chinese locale and verify data persistence"/>
16+
<description value="Create configurable product with size and color attributes under Chinese locale, verify data after save, reopen, and on storefront"/>
17+
<severity value="MAJOR"/>
18+
<testCaseId value="AC-4089"/>
19+
<group value="ConfigurableProduct"/>
20+
</annotations>
21+
<before>
22+
<magentoCLI command="setup:static-content:deploy zh_Hans_CN" stepKey="deployStaticContentWithChineseLocale"/>
23+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
24+
<actionGroup ref="SetAdminAccountActionGroup" stepKey="changeAdminLocaleToChina">
25+
<argument name="InterfaceLocaleByValue" value="zh_Hans_CN"/>
26+
</actionGroup>
27+
<createData entity="productAttributeWithTwoOptions" stepKey="createColorAttribute"/>
28+
<createData entity="productAttributeOption1" stepKey="createColorOptionRed">
29+
<requiredEntity createDataKey="createColorAttribute"/>
30+
</createData>
31+
<createData entity="productAttributeOption2" stepKey="createColorOptionGreen">
32+
<requiredEntity createDataKey="createColorAttribute"/>
33+
</createData>
34+
<createData entity="productAttributeOption3" stepKey="createColorOptionBlue">
35+
<requiredEntity createDataKey="createColorAttribute"/>
36+
</createData>
37+
<createData entity="productAttributeWithTwoOptions" stepKey="createSizeAttribute"/>
38+
<createData entity="productAttributeOption1" stepKey="createSizeOptionXL">
39+
<requiredEntity createDataKey="createSizeAttribute"/>
40+
</createData>
41+
<createData entity="productAttributeOption2" stepKey="createSizeOptionL">
42+
<requiredEntity createDataKey="createSizeAttribute"/>
43+
</createData>
44+
<createData entity="productAttributeOption3" stepKey="createSizeOptionM">
45+
<requiredEntity createDataKey="createSizeAttribute"/>
46+
</createData>
47+
<createData entity="productAttributeOption4" stepKey="createSizeOptionS">
48+
<requiredEntity createDataKey="createSizeAttribute"/>
49+
</createData>
50+
<createData entity="productAttributeOption5" stepKey="createSizeOptionXS">
51+
<requiredEntity createDataKey="createSizeAttribute"/>
52+
</createData>
53+
</before>
54+
<after>
55+
<actionGroup ref="SetAdminAccountActionGroup" stepKey="resetAdminLocale">
56+
<argument name="InterfaceLocaleByValue" value="en_US"/>
57+
</actionGroup>
58+
<!-- Delete configurable product -->
59+
<helper class="Magento\Catalog\Test\Mftf\Helper\ProductApiHelper" method="deleteAllProductsApi" stepKey="deleteAllProductsViaApi"/>
60+
<deleteData createDataKey="createColorAttribute" stepKey="deleteColorAttribute"/>
61+
<deleteData createDataKey="createSizeAttribute" stepKey="deleteSizeAttribute"/>
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+
<actionGroup ref="AdminFillProductQtyOnProductFormActionGroup" stepKey="fillProductQuantity">
74+
<argument name="productQty" value="100"/>
75+
</actionGroup>
76+
<!-- Step 3: Create product configurations -->
77+
<click selector="{{AdminProductFormConfigurationsSection.createConfigurations}}" stepKey="clickCreateConfigurations"/>
78+
<waitForElementClickable selector="{{AdminCreateProductConfigurationsPanel.attributeCheckbox($createColorAttribute.attribute_code$)}}" stepKey="waitForColorAttributeCheckbox"/>
79+
<click selector="{{AdminCreateProductConfigurationsPanel.attributeCheckbox($createColorAttribute.attribute_code$)}}" stepKey="selectColorAttribute"/>
80+
<click selector="{{AdminCreateProductConfigurationsPanel.attributeCheckbox($createSizeAttribute.attribute_code$)}}" stepKey="selectSizeAttribute"/>
81+
<click selector="{{AdminCreateProductConfigurationsPanel.next}}" stepKey="clickNextStep1"/>
82+
<waitForElementClickable selector="{{AdminCreateProductConfigurationsPanel.selectAllByAttribute($createColorAttribute.default_frontend_label$)}}" stepKey="waitForSelectAllColorButton"/>
83+
<click selector="{{AdminCreateProductConfigurationsPanel.selectAllByAttribute($createColorAttribute.default_frontend_label$)}}" stepKey="selectAllColorAttributeOptions"/>
84+
<click selector="{{AdminCreateProductConfigurationsPanel.selectAllByAttribute($createSizeAttribute.default_frontend_label$)}}" stepKey="selectAllSizeAttributeOptions"/>
85+
<click selector="{{AdminCreateProductConfigurationsPanel.next}}" stepKey="clickNextStep2"/>
86+
<waitForPageLoad stepKey="waitForBulkStep"/>
87+
<waitForElementClickable selector="{{AdminCreateProductConfigurationsPanel.applySingleSetOfImages}}" stepKey="waitForApplySingleImageSetButton"/>
88+
<click selector="{{AdminCreateProductConfigurationsPanel.applySingleSetOfImages}}" stepKey="clickOnApplySingleImageSetToAllSku"/>
89+
<waitForElementVisible selector="{{AdminCreateProductConfigurationsPanel.imageUploadButton}}" stepKey="waitForImageUploadButton"/>
90+
<attachFile selector="{{AdminCreateProductConfigurationsPanel.imageFileUpload}}" userInput="{{MagentoLogo.file}}" stepKey="uploadConfigProductImage"/>
91+
<waitForPageLoad stepKey="waitForImageUpload"/>
92+
<waitForElementVisible selector="{{AdminCreateProductConfigurationsPanel.imageFile(MagentoLogo.filename)}}" stepKey="waitForImageThumbnail"/>
93+
<click selector="{{AdminCreateProductConfigurationsPanel.applySingleQuantityToEachSkus}}" stepKey="clickOnApplySingleQuantityToEachSku"/>
94+
<fillField selector="{{AdminCreateProductConfigurationsPanel.quantity}}" userInput="10" stepKey="enterAttributeQuantity"/>
95+
<click selector="{{AdminCreateProductConfigurationsPanel.next}}" stepKey="clickNextStep3"/>
96+
<waitForElementClickable selector="{{AdminCreateProductConfigurationsPanel.next}}" stepKey="waitForGenerateProductsButton"/>
97+
<click selector="{{AdminCreateProductConfigurationsPanel.next}}" stepKey="clickGenerateProducts"/>
98+
<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"/>
99+
<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"/>
100+
<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"/>
101+
<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"/>
102+
<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"/>
103+
<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"/>
104+
<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"/>
105+
<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"/>
106+
<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"/>
107+
<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"/>
108+
<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"/>
109+
<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"/>
110+
<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"/>
111+
<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"/>
112+
<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"/>
113+
<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"/>
114+
<!-- Step 4: Save product -->
115+
<actionGroup ref="SaveConfigurableProductAddToCurrentAttributeSetActionGroup" stepKey="saveConfigProduct"/>
116+
<!-- Step 5: Navigate back to product index page -->
117+
<actionGroup ref="AdminOpenProductIndexPageActionGroup" stepKey="navigateBackToProductIndex"/>
118+
<actionGroup ref="FilterProductGridBySkuActionGroup" stepKey="filterProductBySku">
119+
<argument name="product" value="BaseConfigurableProduct"/>
120+
</actionGroup>
121+
<actionGroup ref="OpenEditProductOnBackendActionGroup" stepKey="openProductForEdit">
122+
<argument name="product" value="BaseConfigurableProduct"/>
123+
</actionGroup>
124+
<!-- Verify product basic data -->
125+
<seeInField selector="{{AdminProductFormSection.productName}}" userInput="{{BaseConfigurableProduct.name}}" stepKey="verifyProductName"/>
126+
<seeInField selector="{{AdminProductFormSection.productSku}}" userInput="{{BaseConfigurableProduct.sku}}" stepKey="verifyProductSku"/>
127+
<!-- Verify all 15 variations exist -->
128+
<conditionalClick selector="{{AdminProductFormConfigurationsSection.sectionHeader}}" dependentSelector="{{AdminProductFormConfigurationsSection.currentVariations}}" visible="false" stepKey="expandConfigurationsSection"/>
129+
<waitForElementVisible selector="{{AdminProductFormConfigurationsSection.currentVariations}}" stepKey="waitForConfigurationsContainer"/>
130+
<seeNumberOfElements selector="{{AdminProductFormConfigurationsSection.currentVariationsAllRows}}" userInput="15" stepKey="verifyNumberOfVariationsAfterReopen"/>
131+
<!-- Verify image is assigned to variations -->
132+
<waitForElementVisible selector="{{AdminProductFormConfigurationsSection.variationImageSource(MagentoLogo.filename)}}" stepKey="verifyImageAssignedToVariations"/>
133+
<!-- Step 6: Open product on storefront -->
134+
<actionGroup ref="StorefrontOpenProductPageActionGroup" stepKey="openProductOnStorefront">
135+
<argument name="productUrl" value="{{BaseConfigurableProduct.urlKey}}"/>
136+
</actionGroup>
137+
<waitForText selector="{{StorefrontProductInfoMainSection.productName}}" userInput="{{BaseConfigurableProduct.name}}" stepKey="verifyProductNameOnStorefront"/>
138+
<!-- Select color option (Red - option1) -->
139+
<waitForElementVisible selector="{{StorefrontProductInfoMainSection.productOptionSelect($createColorAttribute.default_frontend_label$)}}" stepKey="waitForColorOptions"/>
140+
<selectOption selector="{{StorefrontProductInfoMainSection.productOptionSelect($createColorAttribute.default_frontend_label$)}}" userInput="$createColorOptionRed.option[store_labels][1][label]$" stepKey="selectColorRed"/>
141+
<!-- Select size option (XL - option1) -->
142+
<waitForElementVisible selector="{{StorefrontProductInfoMainSection.productOptionSelect($createSizeAttribute.default_frontend_label$)}}" stepKey="waitForSizeOptions"/>
143+
<selectOption selector="{{StorefrontProductInfoMainSection.productOptionSelect($createSizeAttribute.default_frontend_label$)}}" userInput="$createSizeOptionXL.option[store_labels][1][label]$" stepKey="selectSizeXL"/>
144+
<waitForPageLoad stepKey="waitAfterOptionSelection"/>
145+
<!-- Verify image is displayed after selecting options -->
146+
<waitForElementVisible selector="{{StorefrontProductInfoMainSection.productImageSrc(MagentoLogo.filename)}}" stepKey="verifyProductImageOnStorefront"/>
147+
<!-- Verify price for Red XL combination -->
148+
<waitForText selector="{{StorefrontProductInfoMainSection.productPrice}}" userInput="50.00" stepKey="verifyProductPrice"/>
149+
<actionGroup ref="StorefrontAddProductToCartActionGroup" stepKey="addProductToCart">
150+
<argument name="product" value="BaseConfigurableProduct"/>
151+
<argument name="productCount" value="1"/>
152+
</actionGroup>
153+
<actionGroup ref="GoToCheckoutFromMinicartActionGroup" stepKey="goToCheckout"/>
154+
<actionGroup ref="GuestCheckoutFillingShippingSectionActionGroup" stepKey="fillShippingAddress">
155+
<argument name="customerVar" value="CustomerEntityOne"/>
156+
<argument name="customerAddressVar" value="CustomerAddressSimple"/>
157+
</actionGroup>
158+
<actionGroup ref="CheckoutSelectCheckMoneyOrderPaymentActionGroup" stepKey="selectCheckMoneyOrderPayment"/>
159+
<actionGroup ref="ClickPlaceOrderActionGroup" stepKey="placeOrder"/>
160+
</test>
161+
</tests>

0 commit comments

Comments
 (0)