Skip to content

Commit 4e6e1a1

Browse files
author
Bohdan Shevchenko
committed
MC-13339: Adding new options with images and prices to Configurable Product
1 parent 5791131 commit 4e6e1a1

File tree

6 files changed

+152
-2
lines changed

6 files changed

+152
-2
lines changed

app/code/Magento/Cms/Test/Mftf/Data/CmsPageData.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
<data key="file_type">Upload File</data>
5151
<data key="shareable">Yes</data>
5252
<data key="file">magento-again.jpg</data>
53+
<data key="fileName">magento-again</data>
5354
<data key="value">magento-again.jpg</data>
5455
<data key="content">Image content. Yeah.</data>
5556
<data key="height">1000</data>
@@ -71,6 +72,7 @@
7172
<data key="file_type">Upload File</data>
7273
<data key="shareable">Yes</data>
7374
<data key="value">magento3.jpg</data>
75+
<data key="file">magento3.jpg</data>
7476
<data key="fileName">magento3</data>
7577
<data key="extension">jpg</data>
7678
<data key="content">Image content. Yeah.</data>

app/code/Magento/ConfigurableProduct/Test/Mftf/ActionGroup/AdminConfigurableProductActionGroup.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,4 +276,14 @@
276276
<seeInField userInput="{{ApiConfigurableProduct.sku}}" selector="{{AdminProductFormSection.productSku}}" stepKey="seeSkuRequired"/>
277277
<dontSeeInField userInput="{{ApiConfigurableProduct.price}}" selector="{{AdminProductFormSection.productPrice}}" stepKey="dontSeePriceRequired"/>
278278
</actionGroup>
279+
280+
<!--Click in Next Step and see Title-->
281+
<actionGroup name="AdminConfigurableWizardMoveToNextStepActionGroup">
282+
<arguments>
283+
<argument name="title" type="string"/>
284+
</arguments>
285+
<click selector="{{ConfigurableProductSection.nextButton}}" stepKey="clickNextButton"/>
286+
<waitForPageLoad stepKey="waitForNextStepLoaded"/>
287+
<see userInput="{{title}}" selector="{{AdminProductFormConfigurationsSection.stepsWizardTitle}}" stepKey="seeStepTitle"/>
288+
</actionGroup>
279289
</actionGroups>

app/code/Magento/ConfigurableProduct/Test/Mftf/ActionGroup/AdminCreateApiConfigurableProductActionGroup.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
1111
<actionGroup name="AdminCreateApiConfigurableProductActionGroup">
1212
<arguments>
13-
<argument name="productName" defaultValue="ApiConfigurableProductWithOutCategory" type="string"/>
13+
<argument name="productName" defaultValue="{{ApiConfigurableProductWithOutCategory.name}}" type="string"/>
1414
</arguments>
1515

1616
<!-- Create the configurable product based on the data in the /data folder -->

app/code/Magento/ConfigurableProduct/Test/Mftf/ActionGroup/StorefrontProductActionGroup.xml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,18 @@
6666
<seeElement selector="{{StorefrontProductMediaSection.imageFile(image.filename)}}" stepKey="seeFirstImage"/>
6767
</actionGroup>
6868

69+
<!-- Assert option image and price in storefront product page -->
70+
<actionGroup name="AssertOptionImageAndPriceInStorefrontProductActionGroup">
71+
<arguments>
72+
<argument name="label" type="string"/>
73+
<argument name="image" type="string"/>
74+
<argument name="price" type="string"/>
75+
</arguments>
76+
<selectOption userInput="{{label}}" selector="{{StorefrontProductInfoMainSection.productAttributeOptionsSelectButton}}" stepKey="selectOption"/>
77+
<seeElement selector="{{StorefrontProductMediaSection.imageFile(image)}}" stepKey="seeImage"/>
78+
<see userInput="{{price}}" selector="{{StorefrontProductInfoMainSection.price}}" stepKey="seeProductPrice"/>
79+
</actionGroup>
80+
6981
<!-- Assert configurable product with special price in storefront product page -->
7082
<actionGroup name="assertConfigurableProductWithSpecialPriceOnStorefrontProductPage">
7183
<arguments>
@@ -78,4 +90,4 @@
7890
<see userInput="Regular Price" selector="{{StorefrontProductInfoMainSection.specialProductText}}" stepKey="seeText"/>
7991
<see userInput="{{price}}" selector="{{StorefrontProductInfoMainSection.oldProductPrice}}" stepKey="seeOldProductPrice"/>
8092
</actionGroup>
81-
</actionGroups>
93+
</actionGroups>

app/code/Magento/ConfigurableProduct/Test/Mftf/Section/AdminProductFormConfigurationsSection.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
<element name="variationsSkuInputByRow" selector="[data-index='configurable-matrix'] table > tbody > tr:nth-of-type({{row}}) input[name*='sku']" type="input" parameterized="true"/>
3737
<element name="variationsSkuInputErrorByRow" selector="[data-index='configurable-matrix'] table > tbody > tr:nth-of-type({{row}}) .admin__field-error" type="text" parameterized="true"/>
3838
<element name="variationLabel" type="text" selector="//div[@data-index='configurable-matrix']/label"/>
39+
<element name="stepsWizardTitle" type="text" selector="div.content:not([style='display: none;']) .steps-wizard-title"/>
40+
<element name="attributeEntityByName" type="text" selector="//div[@class='attribute-entity']//div[normalize-space(.)='{{attributeLabel}}']" parameterized="true"/>
3941
</section>
4042
<section name="AdminConfigurableProductFormSection">
4143
<element name="productWeight" type="input" selector=".admin__control-text[name='product[weight]']"/>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
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="AdminAddingNewOptionsWithImagesAndPricesToConfigurableProductTest">
12+
<annotations>
13+
<features value="ConfigurableProduct"/>
14+
<stories value="Update product"/>
15+
<title value="Adding new options with images and prices to Configurable Product"/>
16+
<description value="Test case verifies possibility to add new options for configurable attribute for existing configurable product."/>
17+
<severity value="CRITICAL"/>
18+
<testCaseId value="MC-13339"/>
19+
<group value="configurableProduct"/>
20+
</annotations>
21+
22+
<before>
23+
<actionGroup ref="AdminCreateApiConfigurableProductActionGroup" stepKey="createConfigurableProduct"/>
24+
<actionGroup ref="LoginAsAdmin" stepKey="loginAsAdmin"/>
25+
</before>
26+
27+
<after>
28+
<deleteData createDataKey="createConfigProductCreateConfigurableProduct" stepKey="deleteConfigProduct"/>
29+
<deleteData createDataKey="createConfigProductAttributeCreateConfigurableProduct" stepKey="deleteConfigProductAttribute"/>
30+
<deleteData createDataKey="createConfigChildProduct1CreateConfigurableProduct" stepKey="deleteConfigChildProduct1"/>
31+
<deleteData createDataKey="createConfigChildProduct2CreateConfigurableProduct" stepKey="deleteConfigChildProduct2"/>
32+
<actionGroup ref="logout" stepKey="logout"/>
33+
</after>
34+
35+
<!--Open edit product page-->
36+
<amOnPage url="{{AdminProductEditPage.url($$createConfigProductCreateConfigurableProduct.id$$)}}" stepKey="goToProductEditPage"/>
37+
38+
<!--Open edit configuration wizard-->
39+
<click selector="{{AdminProductFormConfigurationsSection.createConfigurations}}" stepKey="clickEditConfigurations"/>
40+
<see userInput="Select Attributes" selector="{{AdminProductFormConfigurationsSection.stepsWizardTitle}}" stepKey="seeStepTitle"/>
41+
42+
<!--Click Next button-->
43+
<actionGroup ref="AdminConfigurableWizardMoveToNextStepActionGroup" stepKey="navigateToAttributeValuesStep">
44+
<argument name="title" value="Attribute Values"/>
45+
</actionGroup>
46+
<seeElement selector="{{AdminProductFormConfigurationsSection.attributeEntityByName($$createConfigProductAttributeCreateConfigurableProduct.default_frontend_label$$)}}" stepKey="seeAttribute"/>
47+
48+
<!--Create one color option via "Create New Value" link-->
49+
<click selector="{{AdminCreateProductConfigurationsPanel.createNewValue}}" stepKey="clickOnCreateNewValue"/>
50+
<fillField userInput="{{colorDefaultProductAttribute1.name}}" selector="{{AdminCreateProductConfigurationsPanel.attributeName}}" stepKey="fillFieldForNewAttribute"/>
51+
<click selector="{{AdminCreateProductConfigurationsPanel.saveAttribute}}" stepKey="clickOnSaveNewAttribute"/>
52+
53+
<!--Click Next button-->
54+
<actionGroup ref="AdminConfigurableWizardMoveToNextStepActionGroup" stepKey="navigateToBulkStep">
55+
<argument name="title" value="Bulk Images, Price and Quantity"/>
56+
</actionGroup>
57+
58+
<!--Select Apply unique images by attribute to each SKU and color attribute in dropdown in Images-->
59+
<click selector="{{AdminCreateProductConfigurationsPanel.applyUniqueImagesToEachSkus}}" stepKey="clickOnApplyUniqueImagesToEachSku"/>
60+
<selectOption userInput="$$createConfigProductAttributeCreateConfigurableProduct.default_frontend_label$$"
61+
selector="{{AdminCreateProductConfigurationsPanel.selectImagesButton}}" stepKey="selectAttributeOption"/>
62+
63+
<!-- Add images to configurable product attribute options -->
64+
<actionGroup ref="addUniqueImageToConfigurableProductOption" stepKey="addImageToConfigurableProductOptionOne">
65+
<argument name="image" value="ImageUpload"/>
66+
<argument name="frontend_label" value="$$createConfigProductAttributeCreateConfigurableProduct.default_frontend_label$$"/>
67+
<argument name="label" value="$$getConfigAttributeOption1CreateConfigurableProduct.label$$"/>
68+
</actionGroup>
69+
<actionGroup ref="addUniqueImageToConfigurableProductOption" stepKey="addImageToConfigurableProductOptionTwo">
70+
<argument name="image" value="ImageUpload_1"/>
71+
<argument name="frontend_label" value="$$createConfigProductAttributeCreateConfigurableProduct.default_frontend_label$$"/>
72+
<argument name="label" value="$$getConfigAttributeOption2CreateConfigurableProduct.label$$"/>
73+
</actionGroup>
74+
<actionGroup ref="addUniqueImageToConfigurableProductOption" stepKey="addImageToConfigurableProductOptionThree">
75+
<argument name="image" value="ImageUpload3"/>
76+
<argument name="frontend_label" value="$$createConfigProductAttributeCreateConfigurableProduct.default_frontend_label$$"/>
77+
<argument name="label" value="{{colorDefaultProductAttribute1.name}}"/>
78+
</actionGroup>
79+
80+
<!--Add prices to configurable product attribute options-->
81+
<click selector="{{AdminCreateProductConfigurationsPanel.applyUniquePricesToEachSkus}}" stepKey="clickOnApplyUniquePricesByAttributeToEachSku"/>
82+
<selectOption userInput="$$createConfigProductAttributeCreateConfigurableProduct.default_frontend_label$$"
83+
selector="{{AdminCreateProductConfigurationsPanel.selectAttribute}}" stepKey="selectAttributes"/>
84+
<fillField userInput="10" selector="{{AdminCreateProductConfigurationsPanel.price($$getConfigAttributeOption1CreateConfigurableProduct.label$$)}}" stepKey="fillAttributePrice"/>
85+
<fillField userInput="20" selector="{{AdminCreateProductConfigurationsPanel.price($$getConfigAttributeOption2CreateConfigurableProduct.label$$)}}" stepKey="fillAttributePrice1"/>
86+
<fillField userInput="30" selector="{{AdminCreateProductConfigurationsPanel.price(colorDefaultProductAttribute1.name)}}" stepKey="fillAttributePrice2"/>
87+
88+
<!-- Add quantity to product attribute options -->
89+
<click selector="{{AdminCreateProductConfigurationsPanel.applySingleQuantityToEachSkus}}" stepKey="clickOnApplySingleQuantityToEachSku"/>
90+
<fillField selector="{{AdminCreateProductConfigurationsPanel.quantity}}" userInput="100" stepKey="enterAttributeQuantity"/>
91+
92+
<!--Click Next button-->
93+
<actionGroup ref="AdminConfigurableWizardMoveToNextStepActionGroup" stepKey="navigateToSummaryStep">
94+
<argument name="title" value="Summary"/>
95+
</actionGroup>
96+
97+
<!--Click Generate Configure button-->
98+
<click selector="{{ConfigurableProductSection.generateConfigure}}" stepKey="clickGenerateConfigure"/>
99+
<waitForPageLoad stepKey="waitForProductPageLoad"/>
100+
101+
<actionGroup ref="saveProductForm" stepKey="saveProduct"/>
102+
103+
<!--Go to frontend and check image and price-->
104+
<amOnPage url="{{StorefrontProductPage.url($$createConfigProductCreateConfigurableProduct.custom_attributes[url_key]$$)}}" stepKey="goToProductPage"/>
105+
106+
<actionGroup ref="AssertOptionImageAndPriceInStorefrontProductActionGroup" stepKey="assertFirstOptionImageAndPriceInStorefrontProductPage">
107+
<argument name="label" value="$$getConfigAttributeOption1CreateConfigurableProduct.label$$"/>
108+
<argument name="image" value="{{ImageUpload.filename}}"/>
109+
<argument name="price" value="10"/>
110+
</actionGroup>
111+
112+
<actionGroup ref="AssertOptionImageAndPriceInStorefrontProductActionGroup" stepKey="assertSecondOptionImageAndPriceInStorefrontProductPage">
113+
<argument name="label" value="$$getConfigAttributeOption2CreateConfigurableProduct.label$$"/>
114+
<argument name="image" value="{{ImageUpload_1.filename}}"/>
115+
<argument name="price" value="20"/>
116+
</actionGroup>
117+
118+
<actionGroup ref="AssertOptionImageAndPriceInStorefrontProductActionGroup" stepKey="assertThirdOptionImageAndPriceInStorefrontProductPage">
119+
<argument name="label" value="{{colorDefaultProductAttribute1.name}}"/>
120+
<argument name="image" value="{{ImageUpload3.filename}}"/>
121+
<argument name="price" value="30"/>
122+
</actionGroup>
123+
</test>
124+
</tests>

0 commit comments

Comments
 (0)