Skip to content

Commit 835e075

Browse files
Merge pull request #10065 from magento-gl/ACQE-functional-deployment-v3-4
Bengals Functional Mainline deployment PR
2 parents 0b4a5b3 + b4f16be commit 835e075

File tree

11 files changed

+300
-7
lines changed

11 files changed

+300
-7
lines changed

app/code/Magento/Catalog/Test/Mftf/Test/StorefrontCheckSpecialPriceWithCustomOptionAndTaxTest.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,10 @@
5757
<magentoCLI command="config:set shipping/origin/country_id US" stepKey="setOriginCountryToUS"/>
5858

5959
<!-- Display product price excluding tax in shopping cart -->
60-
<magentoCLI command="config:set tax/cart_display/price 0" stepKey="disableShowIncludingTaxInCart"/>
60+
<magentoCLI command="config:set tax/cart_display/price 1" stepKey="disableShowIncludingTaxInCart"/>
6161

6262
<!-- Display product price excluding tax in catalog -->
63-
<magentoCLI command="config:set tax/display/type 0" stepKey="disableShowIncludingTax"/>
63+
<magentoCLI command="config:set tax/display/type 1" stepKey="disableShowIncludingTax"/>
6464

6565
<!-- Set up catalog to store product price excluding tax -->
6666
<magentoCLI command="config:set tax/calculation/price_includes_tax 0" stepKey="disableCatalogIncludingTax"/>

app/code/Magento/Checkout/Test/Mftf/Data/CheckoutConfigData.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,7 @@
4444
<data key="label">No</data>
4545
<data key="value">0</data>
4646
</entity>
47+
<entity name="ErrorMessageAfterAddingCoupon">
48+
<data key="text">The shipping method is missing. Select the shipping method and try again.</data>
49+
</entity>
4750
</entities>

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,6 @@
5757
<element name="customerAddressAttribute" type="input" selector="[id*='{{attribute}}']" parameterized="true"/>
5858
<element name="savedAddress" type="text" selector="div[class='shipping-address-item selected-item']"/>
5959
<element name="shippingAddressBox" type="text" selector="//div[@class='shipping-address-item selected-item']" timeout="30"/>
60+
<element name="cancelCouponText" type="text" selector="//div[@data-ui-id='message-success']//div[text()='{{cancelCodeText}}']" parameterized="true"/>
6061
</section>
6162
</sections>
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
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="StoreFrontCheckoutFreeShippingRecalculationAfterCouponCodeAppliedTest">
11+
<annotations>
12+
<features value="Checkout"/>
13+
<stories value="Checkout with Free Shipping"/>
14+
<title value="Checkout Free Shipping Recalculation after Coupon Code Applied"/>
15+
<description value="Verify customer should be able to do checkout free shipping recalculation after adding coupon code"/>
16+
<severity value="MAJOR"/>
17+
<testCaseId value="AC-6178"/>
18+
<group value="Checkout"/>
19+
</annotations>
20+
<before>
21+
<!--Precondition 1: Create US Customer-->
22+
<createData entity="Simple_US_Customer" stepKey="createCustomer"/>
23+
<!--Precondition 2: Create Simple product-->
24+
<createData entity="_defaultCategory" stepKey="defaultCategory"/>
25+
<createData entity="_defaultProduct" stepKey="simpleProduct">
26+
<field key="price">90</field>
27+
<requiredEntity createDataKey="defaultCategory"/>
28+
</createData>
29+
<!--Precondition 4: Enable Free Shipping-->
30+
<createData entity="FreeShippingMethodsSettingConfig" stepKey="freeShippingMethodsSettingConfig"/>
31+
<createData entity="MinimumOrderAmount90" stepKey="minimumOrderAmount90"/>
32+
<!--Precondition 5: Create cart price rule-->
33+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
34+
<actionGroup ref="AdminCartPriceRuleDeleteAllActionGroup" stepKey="deleteAllCartPriceRules"/>
35+
<actionGroup ref="AdminCreateCartPriceRuleWithCouponCodeActionGroup" stepKey="createCartPriceRule">
36+
<argument name="ruleName" value="CatPriceRule"/>
37+
<argument name="couponCode" value="CatPriceRule.coupon_code"/>
38+
</actionGroup>
39+
<!--Login to Storefront-->
40+
<actionGroup ref="LoginToStorefrontActionGroup" stepKey="loginToStoreFront">
41+
<argument name="Customer" value="$createCustomer$"/>
42+
</actionGroup>
43+
<!--Navigate to product page-->
44+
<actionGroup ref="StorefrontOpenProductPageActionGroup" stepKey="openProductPage">
45+
<argument name="productUrl" value="$simpleProduct.custom_attributes[url_key]$"/>
46+
</actionGroup>
47+
</before>
48+
<after>
49+
<deleteData createDataKey="simpleProduct" stepKey="deleteProduct"/>
50+
<deleteData createDataKey="defaultCategory" stepKey="deleteCategory"/>
51+
<createData entity="DefaultShippingMethodsConfig" stepKey="defaultShippingMethodsConfig"/>
52+
<createData entity="DefaultMinimumOrderAmount" stepKey="defaultMinimumOrderAmount"/>
53+
<actionGroup ref="StorefrontCustomerLogoutActionGroup" stepKey="logoutCustomer" />
54+
<deleteData createDataKey="createCustomer" stepKey="deleteCustomer"/>
55+
<actionGroup ref="AdminCartPriceRuleDeleteAllActionGroup" stepKey="deleteAllCartPriceRules"/>
56+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
57+
</after>
58+
<!--Step 1:Add product to cart and apply cart price discount-->
59+
<actionGroup ref="ApplyCartRuleOnStorefrontActionGroup" stepKey="applyCartRule">
60+
<argument name="product" value="$simpleProduct$"/>
61+
<argument name="couponCode" value="{{CatPriceRule.coupon_code}}"/>
62+
</actionGroup>
63+
<!--Step 2:Navigate to checkout page and verify free shipping is not available-->
64+
<actionGroup ref="GoToCheckoutFromMinicartActionGroup" stepKey="goToCheckoutFromMinicartAfterCouponApplied"/>
65+
<waitForElementNotVisible selector="{{CheckoutShippingMethodsSection.shippingMethodRowByName('Free')}}" stepKey="verifyFreeShippingIsNotAvailable"/>
66+
<!--Step 3:Navigate back to shopping cart and cancel the discount-->
67+
<actionGroup ref="StorefrontCartPageOpenActionGroup" stepKey="goToShoppingCartPage"/>
68+
<conditionalClick selector="{{DiscountSection.DiscountTab}}" dependentSelector="{{DiscountSection.CouponInput}}" visible="false" stepKey="openDiscountTabIfClosed"/>
69+
<waitForElementClickable selector="{{DiscountSection.CancelCoupon}}" stepKey="waitForCancelCouponButton"/>
70+
<click selector="{{DiscountSection.CancelCoupon}}" stepKey="clickCancelCouponButton"/>
71+
<waitForElementVisible selector="{{CheckoutShippingSection.cancelCouponText('You canceled the coupon code.')}}" stepKey="seeCancellationMessage"/>
72+
<!--Step 4:Proceed to checkout-->
73+
<actionGroup ref="GoToCheckoutFromMinicartActionGroup" stepKey="goToCheckoutFromMinicartAfterCouponCancelled"/>
74+
<waitForPageLoad stepKey="waitForShippingMethods"/>
75+
<!--Step 5:Select free shipping method-->
76+
<actionGroup ref="StorefrontSetShippingMethodActionGroup" stepKey="selectFreeShipping">
77+
<argument name="shippingMethodName" value="Free Shipping"/>
78+
</actionGroup>
79+
<actionGroup ref="StorefrontCheckoutClickNextOnShippingStepActionGroup" stepKey="clickNext"/>
80+
<!--Step 6:Apply Discount Code -->
81+
<actionGroup ref="StorefrontApplyDiscountCodeActionGroup" stepKey="applyCouponCode">
82+
<argument name="discountCode" value="{{CatPriceRule.coupon_code}}"/>
83+
</actionGroup>
84+
<!--Step 7:Click on place order and verify assert order cannot be placed and error message will show.-->
85+
<actionGroup ref="CheckoutSelectCheckMoneyOrderPaymentActionGroup" stepKey="selectDefaultPaymentMethod"/>
86+
<actionGroup ref="AssertStorefrontOrderIsNotPlacedActionGroup" stepKey="seeShippingMethodError">
87+
<argument name="error" value="{{ErrorMessageAfterAddingCoupon.text}}"/>
88+
</actionGroup>
89+
<!--Step 8:Navigate back to shipping page and select flatrate-->
90+
<amOnPage stepKey="navigateToShippingPage" url="{{CheckoutShippingPage.url}}"/>
91+
<waitForPageLoad stepKey="waitForShippingPageLoad"/>
92+
<actionGroup ref="CheckoutSelectFlatRateShippingMethodActionGroup" stepKey="checkFlatRateShippingMethod"/>
93+
<actionGroup ref="StorefrontCheckoutClickNextOnShippingStepActionGroup" stepKey="clickNextAfterFlatRateShippingMethodSelection"/>
94+
<actionGroup ref="CheckoutSelectCheckMoneyOrderPaymentActionGroup" stepKey="selectPaymentMethod"/>
95+
<!--Step 9: Place Order -->
96+
<actionGroup ref="CheckoutPlaceOrderActionGroup" stepKey="placeOrder">
97+
<argument name="orderNumberMessage" value="CONST.successCheckoutOrderNumberMessage"/>
98+
<argument name="emailYouMessage" value="CONST.successCheckoutEmailYouMessage"/>
99+
</actionGroup>
100+
</test>
101+
</tests>

app/code/Magento/Paypal/Test/Mftf/Section/PayPalExpressCheckoutConfigSection/PayPalPaymentSection.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,6 @@
3737
<element name="changeShippingAddressButton" type="button" selector="//button[@data-dd-action-name='Ship to Tab']"/>
3838
<element name="shippingAddressDropdown" type="select" selector="(//div[@data-dd-action-name='Shipping Address'][.//span[contains(normalize-space(.), '{{ShippingAddress}}')]])[1]" parameterized="true"/>
3939
<element name="selectedShippingAddress" type="text" selector="//div/p[contains(text(), '{{selectedAddress}}')]" parameterized="true"/>
40-
<element name="usePasswordInsteadButton" type="button" selector="//button[text()='Use Password Instead']"/>
40+
<element name="usePasswordInsteadButton" type="button" selector="(//button[text()='Use Password Instead'] | //a[text()='Try another way'])[1]"/>
4141
</section>
4242
</sections>

app/code/Magento/Sales/Test/Mftf/ActionGroup/AdminOpenInvoiceFromOrderPageActionGroup.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<!--
33
/**
4-
* Copyright © Magento, Inc. All rights reserved.
5-
* See COPYING.txt for license details.
4+
* Copyright 2020 Adobe
5+
* All Rights Reserved.
66
*/
77
-->
88

@@ -14,6 +14,7 @@
1414
</annotations>
1515
<waitForElementClickable selector="{{AdminOrderDetailsOrderViewSection.invoices}}" stepKey="waitForInvoicesTabClickable" />
1616
<click selector="{{AdminOrderDetailsOrderViewSection.invoices}}" stepKey="openInvoicesTab"/>
17+
<conditionalClick selector="{{AdminOrderInvoicesTabSection.clearFilters}}" dependentSelector="{{AdminOrderInvoicesTabSection.clearFilters}}" visible="true" stepKey="clearExistingOrderFilters"/>
1718
<waitForElementVisible selector="{{AdminOrderInvoicesTabSection.viewInvoice}}" stepKey="waitForInvocesTabOpened"/>
1819
<click selector="{{AdminOrderInvoicesTabSection.viewGridRow('1')}}" stepKey="viewInvoice"/>
1920
<waitForPageLoad stepKey="waitForInvoiceOpened"/>

app/code/Magento/Sales/Test/Mftf/Data/ConstData.xml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<!--
33
/**
4-
* Copyright © Magento, Inc. All rights reserved.
5-
* See COPYING.txt for license details.
4+
* Copyright 2018 Adobe
5+
* All Rights Reserved.
66
*/
77
-->
88

@@ -13,4 +13,8 @@
1313
<data key="two">2</data>
1414
<data key="fifty">50</data>
1515
</entity>
16+
<entity name="OrderLinks" type="constant">
17+
<data key="linkToNewOrder">Link to the New Order</data>
18+
<data key="linkToPreviousOrder">Link to the Previous Order</data>
19+
</entity>
1620
</entities>

app/code/Magento/Sales/Test/Mftf/Section/AdminOrderDetailsMainActionsSection.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,6 @@
3131
<element name="void" type="button" selector="#void_payment span"/>
3232
<element name="invoiceTabContent1" type="text" selector="#sales_order_view_tabs_order_invoices_content > div > div.admin__data-grid-wrap > table > tbody > tr > td"/>
3333
<element name="creditMemoWarning" type="text" selector="//div[@class='modal-content']//div[text()='This will create an offline refund. To create an online refund, open an invoice and create credit memo for it. Do you want to continue?']"/>
34+
<element name="linkOrder" type="text" selector="//*[@id='sales_order_view_tabs_order_info_content']//table[contains(@class,'order-information-table')]/tbody//tr//th[text()='{{orderInfo}}']/following-sibling::td//a" parameterized="true"/>
3435
</section>
3536
</sections>
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
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="AdminOrderEditParentChildOrderLinksTest">
12+
<annotations>
13+
<features value="Sales"/>
14+
<title value="Admin can see parent-child order links when editing and submitting an order"/>
15+
<stories value="Order parent-child link display"/>
16+
<description value="Test that parent-child order links are shown after editing and submitting an order."/>
17+
<severity value="MINOR"/>
18+
<testCaseId value="AC-8706"/>
19+
<group value="Sales"/>
20+
</annotations>
21+
<before>
22+
<!-- Create product and customer -->
23+
<createData entity="SimpleProduct2" stepKey="createProduct"/>
24+
<createData entity="Simple_US_Customer" stepKey="createCustomer"/>
25+
<!-- Login to Admin page -->
26+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
27+
<!-- Precondition 2: Create order in admin -->
28+
<actionGroup ref="CreateOrderActionGroup" stepKey="createOrder">
29+
<argument name="product" value="$$createProduct$$"/>
30+
<argument name="customer" value="$$createCustomer$$"/>
31+
</actionGroup>
32+
</before>
33+
<after>
34+
<!-- Clean up test data -->
35+
<deleteData createDataKey="createProduct" stepKey="deleteProduct"/>
36+
<deleteData createDataKey="createCustomer" stepKey="deleteCustomer"/>
37+
<actionGroup ref="AdminLogoutActionGroup" stepKey="adminLogout"/>
38+
</after>
39+
<!-- Grab original order ID -->
40+
<grabTextFrom selector="{{AdminOrderDetailsInformationSection.orderId}}" stepKey="grabOriginalOrderId"/>
41+
<!-- Step 1: Go to sales >> order and open the original order -->
42+
<actionGroup ref="OpenOrderByIdActionGroup" stepKey="openOriginalOrderInAdmin">
43+
<argument name="orderId" value="{$grabOriginalOrderId}"/>
44+
</actionGroup>
45+
<!-- Step 2: Edit the order -->
46+
<waitForElementClickable selector="{{AdminOrderDetailsMainActionsSection.edit}}" stepKey="waitForClickEditOrderButton"/>
47+
<click selector="{{AdminOrderDetailsMainActionsSection.edit}}" stepKey="clickEditOrderButton"/>
48+
<waitForElementClickable selector="{{AdminOrderDetailsMainActionsSection.ok}}" stepKey="waitForEditOrderConfirmation"/>
49+
<click selector="{{AdminOrderDetailsMainActionsSection.ok}}" stepKey="confirmEditOrder"/>
50+
<!-- Step 3: Submit edited order -->
51+
<waitForElementClickable selector="{{OrdersGridSection.submitOrder}}" stepKey="waitForSubmitEditedOrder"/>
52+
<click selector="{{OrdersGridSection.submitOrder}}" stepKey="submitEditedOrder"/>
53+
<!-- Step 4: Verify the link is displayed on child order view to parent order -->
54+
<grabTextFrom selector="{{AdminOrderDetailsInformationSection.orderId}}" stepKey="grabNewOrderId"/>
55+
<waitForText userInput="$grabOriginalOrderId" selector="{{AdminOrderDetailsMainActionsSection.linkOrder(OrderLinks.linkToPreviousOrder)}}" stepKey="assertPreviousOrder"/>
56+
<!-- Step 5: Verify the link is displayed on parent order view to new order -->
57+
<actionGroup ref="OpenOrderByIdActionGroup" stepKey="openOriginalOrderInAdminAgain">
58+
<argument name="orderId" value="{$grabOriginalOrderId}"/>
59+
</actionGroup>
60+
<waitForText userInput="$grabNewOrderId" selector="{{AdminOrderDetailsMainActionsSection.linkOrder(OrderLinks.linkToNewOrder)}}" stepKey="assertNewOrder"/>
61+
</test>
62+
</tests>

app/code/Magento/SalesRule/Test/Mftf/Data/SalesRuleData.xml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -721,4 +721,63 @@
721721
<data key="defaultRuleLabelAllStoreViews">Total Items Quantity-Not Applied test</data>
722722
<data key="defaultStoreView">Total Items Quantity-Not Applied test</data>
723723
</entity>
724+
<entity name="AutoRule50Percent" type="SalesRule">
725+
<data key="name">AutoRule50%</data>
726+
<data key="description">Automatic 50% off</data>
727+
<array key="website_ids">
728+
<item>1</item>
729+
</array>
730+
<array key="customer_group_ids">
731+
<item>0</item>
732+
<item>1</item>
733+
<item>2</item>
734+
<item>3</item>
735+
</array>
736+
<data key="uses_per_customer">0</data>
737+
<data key="is_active">true</data>
738+
<data key="stop_rules_processing">false</data>
739+
<data key="is_advanced">true</data>
740+
<data key="sort_order">0</data>
741+
<data key="simple_action">by_percent</data>
742+
<data key="discount_amount">50</data>
743+
<data key="discount_qty">0</data>
744+
<data key="discount_step">0</data>
745+
<data key="apply_to_shipping">false</data>
746+
<data key="times_used">0</data>
747+
<data key="is_rss">false</data>
748+
<data key="coupon_type">NO_COUPON</data>
749+
<data key="use_auto_generation">false</data>
750+
<data key="uses_per_coupon">0</data>
751+
<data key="simple_free_shipping">1</data>
752+
</entity>
753+
<entity name="TenDollarDiscount" type="SalesRule">
754+
<data key="name" unique="suffix">10USD_coupon</data>
755+
<data key="description">Cart Price Rule with complex conditions</data>
756+
<data key="is_active">Yes</data>
757+
<array key="website_ids">
758+
<item>1</item>
759+
</array>
760+
<array key="customer_group_ids">
761+
<item>0</item>
762+
<item>1</item>
763+
<item>2</item>
764+
<item>3</item>
765+
</array>
766+
<data key="coupon_type">SPECIFIC_COUPON</data>
767+
<data key="use_auto_generation">false</data>
768+
<data key="coupon_code" unique="suffix">12345</data>
769+
<data key="sort_order">1</data>
770+
<data key="simple_action">by_fixed</data>
771+
<data key="discount_amount">10</data>
772+
<data key="uses_per_customer">15</data>
773+
<data key="stop_rules_processing">false</data>
774+
<data key="discount_qty">1</data>
775+
<data key="discount_step">0</data>
776+
<data key="apply_to_shipping">false</data>
777+
<data key="is_advanced">true</data>
778+
<data key="times_used">0</data>
779+
<data key="is_rss">false</data>
780+
<data key="uses_per_coupon">10</data>
781+
<data key="simple_free_shipping">1</data>
782+
</entity>
724783
</entities>

0 commit comments

Comments
 (0)