Skip to content

Commit 40cd9ed

Browse files
Merge pull request #9098 from magento-gl/ACQE-5920-ver1
[Bengals] | Functional Tests Automation Deployment
2 parents ec7e32a + d72a178 commit 40cd9ed

19 files changed

+820
-14
lines changed

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

+24
Original file line numberDiff line numberDiff line change
@@ -1580,4 +1580,28 @@
15801580
<requiredEntity type="product_option">ProductOptionDropDownFor2</requiredEntity>
15811581
<requiredEntity type="product_option">ProductOptionCheckboxFor2</requiredEntity>
15821582
</entity>
1583+
<entity name="ProductWithTwentyOneTextFieldOptions" type="product">
1584+
<var key="sku" entityType="product" entityKey="sku" />
1585+
<requiredEntity type="product_option">ProductOptionField</requiredEntity>
1586+
<requiredEntity type="product_option">ProductOptionField2</requiredEntity>
1587+
<requiredEntity type="product_option">ProductOptionField3</requiredEntity>
1588+
<requiredEntity type="product_option">ProductOptionField4</requiredEntity>
1589+
<requiredEntity type="product_option">ProductOptionField5</requiredEntity>
1590+
<requiredEntity type="product_option">ProductOptionField6</requiredEntity>
1591+
<requiredEntity type="product_option">ProductOptionField7</requiredEntity>
1592+
<requiredEntity type="product_option">ProductOptionField8</requiredEntity>
1593+
<requiredEntity type="product_option">ProductOptionField9</requiredEntity>
1594+
<requiredEntity type="product_option">ProductOptionField10</requiredEntity>
1595+
<requiredEntity type="product_option">ProductOptionField11</requiredEntity>
1596+
<requiredEntity type="product_option">ProductOptionField12</requiredEntity>
1597+
<requiredEntity type="product_option">ProductOptionField13</requiredEntity>
1598+
<requiredEntity type="product_option">ProductOptionField14</requiredEntity>
1599+
<requiredEntity type="product_option">ProductOptionField15</requiredEntity>
1600+
<requiredEntity type="product_option">ProductOptionField16</requiredEntity>
1601+
<requiredEntity type="product_option">ProductOptionField17</requiredEntity>
1602+
<requiredEntity type="product_option">ProductOptionField18</requiredEntity>
1603+
<requiredEntity type="product_option">ProductOptionField19</requiredEntity>
1604+
<requiredEntity type="product_option">ProductOptionField20</requiredEntity>
1605+
<requiredEntity type="product_option">ProductOptionField21</requiredEntity>
1606+
</entity>
15831607
</entities>

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

+233-6
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<!--
3-
/**
4-
* Copyright © Magento, Inc. All rights reserved.
5-
* See COPYING.txt for license details.
6-
*/
7-
-->
8-
3+
/**
4+
* Copyright 2024 Adobe
5+
* All Rights Reserved.
6+
*/
7+
-->
98
<entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
109
xsi:noNamespaceSchemaLocation="urn:magento:mftf:DataGenerator/etc/dataProfileSchema.xsd">
1110
<entity name="ProductOptionField" type="product_option">
@@ -32,6 +31,234 @@
3231
<data key="price_type">fixed</data>
3332
<data key="max_characters">0</data>
3433
</entity>
34+
<entity name="ProductOptionField3" type="product_option">
35+
<var key="product_sku" entityType="product" entityKey="sku" />
36+
<data key="title">OptionField3</data>
37+
<data key="sku">OptionField3</data>
38+
<data key="type">field</data>
39+
<data key="is_require">true</data>
40+
<data key="sort_order">1</data>
41+
<data key="price">20</data>
42+
<data key="priceWithDecimals">20.000000</data>
43+
<data key="price_type">fixed</data>
44+
<data key="max_characters">0</data>
45+
</entity>
46+
<entity name="ProductOptionField4" type="product_option">
47+
<var key="product_sku" entityType="product" entityKey="sku" />
48+
<data key="title">OptionField4</data>
49+
<data key="sku">OptionField4</data>
50+
<data key="type">field</data>
51+
<data key="is_require">true</data>
52+
<data key="sort_order">1</data>
53+
<data key="price">20</data>
54+
<data key="priceWithDecimals">20.000000</data>
55+
<data key="price_type">fixed</data>
56+
<data key="max_characters">0</data>
57+
</entity>
58+
<entity name="ProductOptionField5" type="product_option">
59+
<var key="product_sku" entityType="product" entityKey="sku" />
60+
<data key="title">OptionField5</data>
61+
<data key="sku">OptionField5</data>
62+
<data key="type">field</data>
63+
<data key="is_require">true</data>
64+
<data key="sort_order">1</data>
65+
<data key="price">20</data>
66+
<data key="priceWithDecimals">20.000000</data>
67+
<data key="price_type">fixed</data>
68+
<data key="max_characters">0</data>
69+
</entity>
70+
<entity name="ProductOptionField6" type="product_option">
71+
<var key="product_sku" entityType="product" entityKey="sku" />
72+
<data key="title">OptionField6</data>
73+
<data key="sku">OptionField6</data>
74+
<data key="type">field</data>
75+
<data key="is_require">true</data>
76+
<data key="sort_order">1</data>
77+
<data key="price">10</data>
78+
<data key="priceWithDecimals">10.000000</data>
79+
<data key="price_type">fixed</data>
80+
<data key="max_characters">0</data>
81+
</entity>
82+
<entity name="ProductOptionField7" type="product_option">
83+
<var key="product_sku" entityType="product" entityKey="sku" />
84+
<data key="title">OptionField7</data>
85+
<data key="sku">OptionField7</data>
86+
<data key="type">field</data>
87+
<data key="is_require">true</data>
88+
<data key="sort_order">1</data>
89+
<data key="price">20</data>
90+
<data key="priceWithDecimals">20.000000</data>
91+
<data key="price_type">fixed</data>
92+
<data key="max_characters">0</data>
93+
</entity>
94+
<entity name="ProductOptionField8" type="product_option">
95+
<var key="product_sku" entityType="product" entityKey="sku" />
96+
<data key="title">OptionField8</data>
97+
<data key="sku">OptionField8</data>
98+
<data key="type">field</data>
99+
<data key="is_require">true</data>
100+
<data key="sort_order">1</data>
101+
<data key="price">20</data>
102+
<data key="priceWithDecimals">20.000000</data>
103+
<data key="price_type">fixed</data>
104+
<data key="max_characters">0</data>
105+
</entity>
106+
<entity name="ProductOptionField9" type="product_option">
107+
<var key="product_sku" entityType="product" entityKey="sku" />
108+
<data key="title">OptionField9</data>
109+
<data key="sku">OptionField9</data>
110+
<data key="type">field</data>
111+
<data key="is_require">true</data>
112+
<data key="sort_order">1</data>
113+
<data key="price">20</data>
114+
<data key="priceWithDecimals">20.000000</data>
115+
<data key="price_type">fixed</data>
116+
<data key="max_characters">0</data>
117+
</entity>
118+
<entity name="ProductOptionField10" type="product_option">
119+
<var key="product_sku" entityType="product" entityKey="sku" />
120+
<data key="title">OptionField10</data>
121+
<data key="sku">OptionField10</data>
122+
<data key="type">field</data>
123+
<data key="is_require">true</data>
124+
<data key="sort_order">1</data>
125+
<data key="price">20</data>
126+
<data key="priceWithDecimals">20.000000</data>
127+
<data key="price_type">fixed</data>
128+
<data key="max_characters">0</data>
129+
</entity>
130+
<entity name="ProductOptionField11" type="product_option">
131+
<var key="product_sku" entityType="product" entityKey="sku" />
132+
<data key="title">OptionField11</data>
133+
<data key="sku">OptionField11</data>
134+
<data key="type">field</data>
135+
<data key="is_require">true</data>
136+
<data key="sort_order">1</data>
137+
<data key="price">10</data>
138+
<data key="priceWithDecimals">10.000000</data>
139+
<data key="price_type">fixed</data>
140+
<data key="max_characters">0</data>
141+
</entity>
142+
<entity name="ProductOptionField12" type="product_option">
143+
<var key="product_sku" entityType="product" entityKey="sku" />
144+
<data key="title">OptionField12</data>
145+
<data key="sku">OptionField12</data>
146+
<data key="type">field</data>
147+
<data key="is_require">true</data>
148+
<data key="sort_order">1</data>
149+
<data key="price">20</data>
150+
<data key="priceWithDecimals">20.000000</data>
151+
<data key="price_type">fixed</data>
152+
<data key="max_characters">0</data>
153+
</entity>
154+
<entity name="ProductOptionField13" type="product_option">
155+
<var key="product_sku" entityType="product" entityKey="sku" />
156+
<data key="title">OptionField13</data>
157+
<data key="sku">OptionField13</data>
158+
<data key="type">field</data>
159+
<data key="is_require">true</data>
160+
<data key="sort_order">1</data>
161+
<data key="price">20</data>
162+
<data key="priceWithDecimals">20.000000</data>
163+
<data key="price_type">fixed</data>
164+
<data key="max_characters">0</data>
165+
</entity>
166+
<entity name="ProductOptionField14" type="product_option">
167+
<var key="product_sku" entityType="product" entityKey="sku" />
168+
<data key="title">OptionField14</data>
169+
<data key="sku">OptionField14</data>
170+
<data key="type">field</data>
171+
<data key="is_require">true</data>
172+
<data key="sort_order">1</data>
173+
<data key="price">20</data>
174+
<data key="priceWithDecimals">20.000000</data>
175+
<data key="price_type">fixed</data>
176+
<data key="max_characters">0</data>
177+
</entity>
178+
<entity name="ProductOptionField15" type="product_option">
179+
<var key="product_sku" entityType="product" entityKey="sku" />
180+
<data key="title">OptionField15</data>
181+
<data key="sku">OptionField15</data>
182+
<data key="type">field</data>
183+
<data key="is_require">true</data>
184+
<data key="sort_order">1</data>
185+
<data key="price">20</data>
186+
<data key="priceWithDecimals">20.000000</data>
187+
<data key="price_type">fixed</data>
188+
<data key="max_characters">0</data>
189+
</entity>
190+
<entity name="ProductOptionField16" type="product_option">
191+
<var key="product_sku" entityType="product" entityKey="sku" />
192+
<data key="title">OptionField16</data>
193+
<data key="sku">OptionField16</data>
194+
<data key="type">field</data>
195+
<data key="is_require">true</data>
196+
<data key="sort_order">1</data>
197+
<data key="price">10</data>
198+
<data key="priceWithDecimals">10.000000</data>
199+
<data key="price_type">fixed</data>
200+
<data key="max_characters">0</data>
201+
</entity>
202+
<entity name="ProductOptionField17" type="product_option">
203+
<var key="product_sku" entityType="product" entityKey="sku" />
204+
<data key="title">OptionField17</data>
205+
<data key="sku">OptionField17</data>
206+
<data key="type">field</data>
207+
<data key="is_require">true</data>
208+
<data key="sort_order">1</data>
209+
<data key="price">20</data>
210+
<data key="priceWithDecimals">20.000000</data>
211+
<data key="price_type">fixed</data>
212+
<data key="max_characters">0</data>
213+
</entity>
214+
<entity name="ProductOptionField18" type="product_option">
215+
<var key="product_sku" entityType="product" entityKey="sku" />
216+
<data key="title">OptionField18</data>
217+
<data key="sku">OptionField18</data>
218+
<data key="type">field</data>
219+
<data key="is_require">true</data>
220+
<data key="sort_order">1</data>
221+
<data key="price">20</data>
222+
<data key="priceWithDecimals">20.000000</data>
223+
<data key="price_type">fixed</data>
224+
<data key="max_characters">0</data>
225+
</entity>
226+
<entity name="ProductOptionField19" type="product_option">
227+
<var key="product_sku" entityType="product" entityKey="sku" />
228+
<data key="title">OptionField19</data>
229+
<data key="sku">OptionField19</data>
230+
<data key="type">field</data>
231+
<data key="is_require">true</data>
232+
<data key="sort_order">1</data>
233+
<data key="price">20</data>
234+
<data key="priceWithDecimals">20.000000</data>
235+
<data key="price_type">fixed</data>
236+
<data key="max_characters">0</data>
237+
</entity>
238+
<entity name="ProductOptionField20" type="product_option">
239+
<var key="product_sku" entityType="product" entityKey="sku" />
240+
<data key="title">OptionField20</data>
241+
<data key="sku">OptionField20</data>
242+
<data key="type">field</data>
243+
<data key="is_require">true</data>
244+
<data key="sort_order">1</data>
245+
<data key="price">20</data>
246+
<data key="priceWithDecimals">20.000000</data>
247+
<data key="price_type">fixed</data>
248+
<data key="max_characters">0</data>
249+
</entity>
250+
<entity name="ProductOptionField21" type="product_option">
251+
<var key="product_sku" entityType="product" entityKey="sku" />
252+
<data key="title">OptionField21</data>
253+
<data key="sku">OptionField21</data>
254+
<data key="type">field</data>
255+
<data key="is_require">true</data>
256+
<data key="sort_order">1</data>
257+
<data key="price">20</data>
258+
<data key="priceWithDecimals">20.000000</data>
259+
<data key="price_type">fixed</data>
260+
<data key="max_characters">0</data>
261+
</entity>
35262
<entity name="ProductOptionArea" type="product_option">
36263
<var key="product_sku" entityType="product" entityKey="sku" />
37264
<data key="title">OptionArea</data>

app/code/Magento/Catalog/Test/Mftf/Section/AdminProductFormAdvancedPricingSection.xml

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<!--
33
/**
44
* Copyright 2024 Adobe.
5-
* All Rights Reserved.
5+
* All Rights Reserved.
66
*/
77
-->
88

@@ -21,6 +21,8 @@
2121
<element name="productTierPriceFixedPriceInput" type="input" selector="[name='product[tier_price][{{var1}}][price]']" parameterized="true"/>
2222
<element name="productTierPricePercentageValuePriceInput" type="input" selector="[name='product[tier_price][{{var1}}][percentage_value]']" parameterized="true"/>
2323
<element name="specialPrice" type="input" selector="input[name='product[special_price]']"/>
24+
<element name="specialPriceFrom" type="input" selector="input[name='product[special_from_date]']"/>
25+
<element name="specialPriceTo" type="input" selector="input[name='product[special_to_date]']"/>
2426
<element name="cost" type="input" selector="//input[@name='product[cost]']"/>
2527
<element name="doneButton" type="button" selector=".product_form_product_form_advanced_pricing_modal button.action-primary" timeout="30"/>
2628
<element name="msrp" type="input" selector="//input[@name='product[msrp]']" timeout="30"/>

app/code/Magento/Catalog/Test/Mftf/Section/StorefrontCategoryProductSection.xml

+1
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,6 @@
4141
<element name="filterOptionCurrencySymbol" type="text" selector="//div[@class='filter-options-content']//a//span[@class='price' and contains(text(),'{{currencySymbol}}')]" parameterized="true"/>
4242
<element name="priceDropdown" type="button" selector="//div[@class='filter-options-title']"/>
4343
<element name="priceBlockShoppingOptions" type="block" selector="//div[@class='filter-options-content']"/>
44+
<element name="widgetProduct" type="text" selector="//main//ol[@class='product-items widget-product-grid']//a[contains(text(), '{{productName}}')]" parameterized="true"/>
4445
</section>
4546
</sections>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright 2024 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="AdminRemoveCustomizableOptionFromProductWithOverTwentyCustomizableOptionsTest">
11+
<annotations>
12+
<features value="Catalog"/>
13+
<stories value="Remove Customizable Option from Product"/>
14+
<title value="Admin should be able to Remove Customizable Option from Product with over 20 Customizable Options."/>
15+
<description value="Remove Customizable Option from Product with over 20 Customizable Options."/>
16+
<severity value="MAJOR"/>
17+
<testCaseId value="AC-4703"/>
18+
<group value="Catalog"/>
19+
<group value="cloud"/>
20+
</annotations>
21+
<before>
22+
<createData entity="SimpleProduct" stepKey="createSimpleProduct"/>
23+
<updateData entity="ProductWithTwentyOneTextFieldOptions" createDataKey="createSimpleProduct" stepKey="addCustomOptions">
24+
<requiredEntity createDataKey="createSimpleProduct"/>
25+
</updateData>
26+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
27+
</before>
28+
<after>
29+
<deleteData createDataKey="createSimpleProduct" stepKey="deleteProduct"/>
30+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
31+
</after>
32+
<actionGroup ref="AdminProductPageOpenByIdActionGroup" stepKey="openProductForEdit">
33+
<argument name="productId" value="$createSimpleProduct.id$"/>
34+
</actionGroup>
35+
<scrollTo selector="{{AdminProductCustomizableOptionsSection.customizableOptions}}" stepKey="scrollToCustomizableOptions"/>
36+
<click selector="{{AdminProductCustomizableOptionsSection.customizableOptions}}" stepKey="clickAdminProductCustomizableOption"/>
37+
<actionGroup ref="AdminDeleteProductCustomOptionActionGroup" stepKey="deleteCustomOptionArea">
38+
<argument name="option" value="ProductOptionField21"/>
39+
</actionGroup>
40+
<actionGroup ref="AdminProductFormSaveButtonClickActionGroup" stepKey="clickSaveButton"/>
41+
<actionGroup ref="StorefrontOpenProductEntityPageActionGroup" stepKey="openProductPage">
42+
<argument name="product" value="$createSimpleProduct$"/>
43+
</actionGroup>
44+
<actionGroup ref="StorefrontAssertCustomOptionByTitleActionGroup" stepKey="assertDropDownOptionByTitleOnStorefront">
45+
<argument name="title" value="{{ProductOptionField.title}}"/>
46+
</actionGroup>
47+
<actionGroup ref="StorefrontAssertCustomOptionByTitleActionGroup" stepKey="assertDropDownOptionByTitle2OnStorefront">
48+
<argument name="title" value="{{ProductOptionField2.title}}"/>
49+
</actionGroup>
50+
<actionGroup ref="StorefrontAssertCustomOptionByTitleActionGroup" stepKey="assertDropDownOptionByTitle5OnStorefront">
51+
<argument name="title" value="{{ProductOptionField5.title}}"/>
52+
</actionGroup>
53+
<actionGroup ref="StorefrontAssertCustomOptionByTitleActionGroup" stepKey="assertDropDownOptionByTitle12nStorefront">
54+
<argument name="title" value="{{ProductOptionField12.title}}"/>
55+
</actionGroup>
56+
<actionGroup ref="StorefrontAssertCustomOptionByTitleActionGroup" stepKey="assertDropDownOptionByTitle20nStorefront">
57+
<argument name="title" value="{{ProductOptionField20.title}}"/>
58+
</actionGroup>
59+
<dontSee selector="{{StorefrontProductInfoMainSection.customOptionByTitle('OptionField21')}}" stepKey="dontSeeCustomOption"/>
60+
</test>
61+
</tests>

app/code/Magento/Checkout/Test/Mftf/Section/CheckoutCartSummarySection.xml

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
* All Rights Reserved.
66
*/
77
-->
8-
98
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
109
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
1110
<section name="CheckoutCartSummarySection">
@@ -42,6 +41,8 @@
4241
<element name="fptAmount" type="text" selector="//*[@id='cart-totals']//tr[@class='totals']//td[@class='amount']/span"/>
4342
<element name="canadaTaxAmount" type="text" selector="//span[@data-th='Canada-GST-5%']"/>
4443
<element name="canadaPstTaxAmount" type="text" selector="//span[@data-th='Canada-GST-PST-5%']"/>
44+
<element name="verifyErrorMessageOfShippingMethod" type="text" selector="//div[@data-bind='text: error_message']"/>
45+
<element name="upsShippingMethod" type="input" selector="#s_method_ups_08"/>
4546
<element name="shippingMethods" type="text" selector="//label[text()='{{deliveryMethod}}']" parameterized="true"/>
4647
</section>
4748
</sections>

0 commit comments

Comments
 (0)