Skip to content

Commit 5321817

Browse files
committed
MC-4399: Convert AddToCartCrossSellTest to MFTF
- Created AddToCartCrossSellTest and acocmpanying test materials
1 parent 07c5842 commit 5321817

File tree

6 files changed

+144
-0
lines changed

6 files changed

+144
-0
lines changed

app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminProductActionGroup.xml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,25 @@
239239
<click selector="{{AdminAddRelatedProductsModalSection.AddSelectedProductsButton}}" stepKey="addRelatedProductSelected"/>
240240
</actionGroup>
241241

242+
<!--Click AddCrossSellProducts and adds product by SKU-->
243+
<actionGroup name="addCrossSellProductBySku">
244+
<arguments>
245+
<argument name="sku"/>
246+
</arguments>
247+
<!--Scroll up to avoid error-->
248+
<scrollTo selector="{{AdminProductFormRelatedUpSellCrossSellSection.relatedDropdown}}" x="0" y="-100" stepKey="scrollTo"/>
249+
<conditionalClick selector="{{AdminProductFormRelatedUpSellCrossSellSection.relatedDropdown}}" dependentSelector="{{AdminProductFormRelatedUpSellCrossSellSection.relatedDependent}}" visible="false" stepKey="openDropDownIfClosedRelatedUpSellCrossSell"/>
250+
<click selector="{{AdminProductFormRelatedUpSellCrossSellSection.AddCrossSellProductsButton}}" stepKey="clickAddCrossSellButton"/>
251+
<conditionalClick selector="{{AdminProductGridFilterSection.clearFilters}}" dependentSelector="{{AdminProductGridFilterSection.clearFilters}}" visible="true" stepKey="clickClearFilters"/>
252+
<click selector="{{AdminProductGridFilterSection.filters}}" stepKey="openProductFilters"/>
253+
<fillField selector="{{AdminProductGridFilterSection.skuFilter}}" userInput="{{sku}}" stepKey="fillProductSkuFilter"/>
254+
<click selector="{{AdminProductGridFilterSection.applyFilters}}" stepKey="clickApplyFilters"/>
255+
<waitForPageLoad stepKey="waitForPageToLoad"/>
256+
<click selector="{{AdminProductModalSlideGridSection.productGridXRowYColumnButton('1', '1')}}" stepKey="selectProduct"/>
257+
<click selector="{{AdminProductCrossSellModalSection.addSelectedProducts}}" stepKey="addRelatedProductSelected"/>
258+
<waitForPageLoad stepKey="waitForModalDisappear"/>
259+
</actionGroup>
260+
242261
<!--Add special price to product in Admin product page-->
243262
<actionGroup name="AddSpecialPriceToProductActionGroup">
244263
<arguments>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
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+
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
11+
<section name="AdminProductCrossSellModalSection">
12+
<element name="addSelectedProducts" type="button" selector=".product_form_product_form_related_crosssell_modal .action-primary"/>
13+
</section>
14+
</sections>

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
1010
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
1111
<section name="AdminProductFormRelatedUpSellCrossSellSection">
12+
<element name="sectionHeader" type="block" selector=".fieldset-wrapper.admin__collapsible-block-wrapper[data-index='related']"/>
1213
<element name="AddRelatedProductsButton" type="button" selector="button[data-index='button_related']" timeout="30"/>
14+
<element name="AddCrossSellProductsButton" type="button" selector="button[data-index='button_crosssell']" timeout="30"/>
1315
<element name="relatedProductSectionText" type="text" selector=".fieldset-wrapper.admin__fieldset-section[data-index='related']"/>
1416
<element name="upSellProductSectionText" type="text" selector=".fieldset-wrapper.admin__fieldset-section[data-index='upsell']"/>
1517
<element name="crossSellProductSectionText" type="text" selector=".fieldset-wrapper.admin__fieldset-section[data-index='crosssell']"/>
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
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="AddToCartCrossSellTest">
12+
<annotations>
13+
<features value="Catalog"/>
14+
<stories value="Promote Products as Cross-Sells"/>
15+
<title value="Admin should be able to add cross-sell to products."/>
16+
<description value="Create products, add products to cross sells, and check that they appear in the Shopping Cart page."/>
17+
<severity value="MAJOR"/>
18+
<testCaseId value="MC-113"/>
19+
<group value="Catalog"/>
20+
</annotations>
21+
<before>
22+
<createData entity="SimpleSubCategory" stepKey="category1"/>
23+
<createData entity="_defaultProduct" stepKey="simpleProduct1">
24+
<requiredEntity createDataKey="category1"/>
25+
</createData>
26+
<createData entity="_defaultProduct" stepKey="simpleProduct2">
27+
<requiredEntity createDataKey="category1"/>
28+
</createData>
29+
<createData entity="_defaultProduct" stepKey="simpleProduct3">
30+
<requiredEntity createDataKey="category1"/>
31+
</createData>
32+
</before>
33+
<after>
34+
<deleteData createDataKey="simpleProduct1" stepKey="deleteSimp1"/>
35+
<deleteData createDataKey="simpleProduct2" stepKey="deleteSimp2"/>
36+
<deleteData createDataKey="simpleProduct3" stepKey="deleteSimp3"/>
37+
<deleteData createDataKey="category1" stepKey="deleteCategory"/>
38+
</after>
39+
40+
<actionGroup ref="LoginAsAdmin" stepKey="logInAsAdmin"/>
41+
42+
<!-- Go to simpleProduct1, add simpleProduct2 and simpleProduct3 as cross-sell-->
43+
<amOnPage url="{{AdminProductEditPage.url($simpleProduct1.id$)}}" stepKey="goToProduct1"/>
44+
<click stepKey="openHeader1" selector="{{AdminProductFormRelatedUpSellCrossSellSection.sectionHeader}}"/>
45+
46+
<actionGroup ref="addCrossSellProductBySku" stepKey="addProduct2ToSimp1">
47+
<argument name="sku" value="$simpleProduct2.sku$"/>
48+
</actionGroup>
49+
<actionGroup ref="addCrossSellProductBySku" stepKey="addProduct3ToSimp1">
50+
<argument name="sku" value="$simpleProduct3.sku$"/>
51+
</actionGroup>
52+
<click selector="{{AdminProductFormActionSection.saveButton}}" stepKey="clickSave"/>
53+
<waitForLoadingMaskToDisappear stepKey="waitForProductPageSave"/>
54+
55+
<!-- Go to simpleProduct3, add simpleProduct1 and simpleProduct2 as cross-sell-->
56+
<amOnPage url="{{AdminProductEditPage.url($simpleProduct3.id$)}}" stepKey="goToProduct3"/>
57+
<click stepKey="openHeader2" selector="{{AdminProductFormRelatedUpSellCrossSellSection.sectionHeader}}"/>
58+
59+
<actionGroup ref="addCrossSellProductBySku" stepKey="addProduct1ToSimp3">
60+
<argument name="sku" value="$simpleProduct1.sku$"/>
61+
</actionGroup>
62+
<actionGroup ref="addCrossSellProductBySku" stepKey="addProduct2ToSimp3">
63+
<argument name="sku" value="$simpleProduct2.sku$"/>
64+
</actionGroup>
65+
<click selector="{{AdminProductFormActionSection.saveButton}}" stepKey="clickSave2"/>
66+
<waitForLoadingMaskToDisappear stepKey="waitForProductPageSave2"/>
67+
68+
<!-- Go to frontend, add simpleProduct1 to cart-->
69+
<actionGroup ref="AddSimpleProductToCart" stepKey="addSimp1ToCart">
70+
<argument name="product" value="$simpleProduct1$"/>
71+
</actionGroup>
72+
73+
<!-- Check that cart page contains cross-sell to simpleProduct2 and simpleProduct3-->
74+
<amOnPage url="{{CheckoutCartPage.url}}" stepKey="goToCart1"/>
75+
<waitForPageLoad stepKey="waitForCartToLoad"/>
76+
<waitForElementVisible selector="{{CheckoutCartCrossSellSection.products}}" stepKey="waitForCrossSellLoading"/>
77+
<see stepKey="seeProduct2InCrossSell" selector="{{CheckoutCartCrossSellSection.products}}" userInput="$simpleProduct2.name$"/>
78+
<see stepKey="seeProduct3InCrossSell" selector="{{CheckoutCartCrossSellSection.products}}" userInput="$simpleProduct3.name$"/>
79+
80+
<!-- Add simpleProduct3 to cart, check cross-sell contains product2 but not product3-->
81+
<click stepKey="addSimp3ToCart" selector="{{CheckoutCartCrossSellSection.productRowByName($simpleProduct3.name$)}}{{CheckoutCartCrossSellSection.addToCart}}"/>
82+
<waitForPageLoad stepKey="waitForCartToLoad2"/>
83+
<see stepKey="seeProduct2StillInCrossSell" selector="{{CheckoutCartCrossSellSection.products}}" userInput="$simpleProduct2.name$"/>
84+
<dontSee stepKey="dontSeeProduct3InCrossSell" selector="{{CheckoutCartCrossSellSection.products}}" userInput="$simpleProduct3.name$"/>
85+
86+
<!-- Add simpleProduct2 to cart, check cross-sell doesn't contain product 2 anymore.-->
87+
<click stepKey="addSimp2ToCart" selector="{{CheckoutCartCrossSellSection.productRowByName($simpleProduct2.name$)}}{{CheckoutCartCrossSellSection.addToCart}}"/>
88+
<waitForPageLoad stepKey="waitForCartToLoad3"/>
89+
<dontSee stepKey="dontSeeProduct2InCrossSell" selector="{{CheckoutCartCrossSellSection.products}}" userInput="$simpleProduct2.name$"/>
90+
</test>
91+
</tests>

app/code/Magento/Checkout/Test/Mftf/Page/CheckoutCartPage.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
<page name="CheckoutCartPage" url="/checkout/cart" module="Magento_Checkout" area="storefront">
1212
<section name="CheckoutCartProductSection"/>
1313
<section name="CheckoutCartSummarySection"/>
14+
<section name="CheckoutCartCrossSellSection"/>
1415
</page>
1516
</pages>
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 © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
9+
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
11+
<section name="CheckoutCartCrossSellSection">
12+
<element name="title" type="text" selector=".block.crosssell .block-title"/>
13+
<element name="products" type="block" selector=".block.crosssell .block-content"/>
14+
<element name="productRowByName" type="block" selector="//li[@class='item product product-item'and .//a[@title='{{name}}']]" parameterized="true"/>
15+
<element name="addToCart" type="block" selector="//button[@title='Add to Cart']"/>
16+
</section>
17+
</sections>

0 commit comments

Comments
 (0)