Skip to content

Commit 260b45b

Browse files
Merge pull request #10188 from magento-gl/ACQE-functional-deployment-version19
Bengals Functional Mainline deployment
2 parents ba9e7d2 + b4b2707 commit 260b45b

File tree

12 files changed

+437
-10
lines changed

12 files changed

+437
-10
lines changed
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright 2025 Adobe
5+
* All Rights Reserved.
6+
*/
7+
-->
8+
9+
<tests
10+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
11+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
12+
<test name="StorefrontApplyTierPriceForFixedBundleProductWithPercentCustomOptionTest">
13+
<annotations>
14+
<features value="Bundle"/>
15+
<stories value="Apply tier price on fixed bundle with percent custom option"/>
16+
<title value="Apply tier customer group price for Bundle Fixed Product if custom options with percent price"/>
17+
<description value="This test case verifies apply tier price for Bundle fixed product if Custom options with percent price."/>
18+
<severity value="CRITICAL"/>
19+
<testCaseId value="AC-3885"/>
20+
<group value="bundle"/>
21+
</annotations>
22+
<before>
23+
<!-- Create category and 2 simple products to use as bundle selections -->
24+
<createData entity="_defaultCategory" stepKey="createCategory"/>
25+
<createData entity="_defaultProduct" stepKey="simple1">
26+
<requiredEntity createDataKey="createCategory"/>
27+
</createData>
28+
<createData entity="_defaultProduct" stepKey="simple2">
29+
<requiredEntity createDataKey="createCategory"/>
30+
</createData>
31+
<!-- Pre Condition 1: Create fixed bundle product and link items -->
32+
<createData entity="FixedBundleProduct" stepKey="createBundleProduct">
33+
<field key="price">110</field>
34+
<requiredEntity createDataKey="createCategory"/>
35+
</createData>
36+
<!-- Pre Condition 2: Associated product price with two options: +5% and +10% with price type percent -->
37+
<createData entity="DropDownBundleOption" stepKey="dropDownBundleOption1">
38+
<requiredEntity createDataKey="createBundleProduct"/>
39+
</createData>
40+
<createData entity="ApiBundleLink" stepKey="linkOptionToFirstProduct">
41+
<requiredEntity createDataKey="createBundleProduct"/>
42+
<requiredEntity createDataKey="dropDownBundleOption1"/>
43+
<requiredEntity createDataKey="simple1"/>
44+
<field key="price">5</field>
45+
<field key="price_type">1</field>
46+
</createData>
47+
<createData entity="ApiBundleLink" stepKey="linkOptionToSecondProduct">
48+
<requiredEntity createDataKey="createBundleProduct"/>
49+
<requiredEntity createDataKey="dropDownBundleOption1"/>
50+
<requiredEntity createDataKey="simple2"/>
51+
<field key="price">10</field>
52+
<field key="price_type">1</field>
53+
</createData>
54+
<!-- Pre Condition 3: Login and edit bundle product to add tier price 20% for 2 products with price view and custom option -->
55+
<actionGroup ref="AdminLoginActionGroup" stepKey="adminLogin"/>
56+
<actionGroup ref="AdminOpenProductIndexPageActionGroup" stepKey="openProductGrid"/>
57+
<actionGroup ref="FilterProductGridBySkuActionGroup" stepKey="filterByBundleSku">
58+
<argument name="product" value="$$createBundleProduct$$"/>
59+
</actionGroup>
60+
<actionGroup ref="OpenProductForEditByClickingRowXColumnYInProductGridActionGroup" stepKey="openBundleForEdit"/>
61+
<actionGroup ref="AdminBundleProductSetAdvancedPricingActionGroup" stepKey="addProductTierPrice">
62+
<argument name="quantity" value="2"/>
63+
<argument name="price" value="Discount"/>
64+
<argument name="amount" value="20"/>
65+
<argument name="priceView" value="Price Range"/>
66+
</actionGroup>
67+
<!-- Pre Condition 4: Add custom option text field named '30 bucks', type is percent, price is 30 -->
68+
<actionGroup ref="AdminCustomizableOptionWithOneOptionActionGroup" stepKey="addCustomOptionField"/>
69+
<waitForElementVisible selector="{{AdminProductFormBundleSection.customOptionXTitle}}" stepKey="waitToSetCustomOptionTitle"/>
70+
<fillField selector="{{AdminProductFormBundleSection.customOptionXTitle}}" userInput="30 bucks" stepKey="setCustomOptionTitle"/>
71+
<!-- Ensure Customizable Option is set required yes -->
72+
<waitForElementClickable selector="{{AdminProductFormBundleSection.uncheckRequired}}" stepKey="waitForToggleRequiredOn"/>
73+
<click selector="{{AdminProductFormBundleSection.uncheckRequired}}" stepKey="toggleRequiredOn"/>
74+
<!-- Save product -->
75+
<actionGroup ref="AdminProductFormSaveActionGroup" stepKey="saveBundleProduct"/>
76+
</before>
77+
<after>
78+
<!-- delete products,category and logout from admin -->
79+
<deleteData createDataKey="simple1" stepKey="deleteSimple1"/>
80+
<deleteData createDataKey="simple2" stepKey="deleteSimple2"/>
81+
<deleteData createDataKey="createBundleProduct" stepKey="deleteBundleProduct"/>
82+
<deleteData createDataKey="createCategory" stepKey="deleteCategory"/>
83+
<actionGroup ref="AdminLogoutActionGroup" stepKey="adminLogout"/>
84+
</after>
85+
<!-- Step 1: Navigate to category page and verify price range from/to -->
86+
<actionGroup ref="StorefrontNavigateCategoryPageActionGroup" stepKey="goToCategory">
87+
<argument name="category" value="$createCategory$"/>
88+
</actionGroup>
89+
<waitForText userInput="From $148.50" selector="{{StorefrontCategoryProductSection.priceFromByProductId($$createBundleProduct.id$$)}}" stepKey="seePriceFromInCategoryBundle1"/>
90+
<waitForText userInput="To $154.00" selector="{{StorefrontCategoryProductSection.priceToByProductId($$createBundleProduct.id$$)}}" stepKey="seePriceToInCategoryBundle1"/>
91+
<!-- Step 2: Navigate to product page and verify price range from/to -->
92+
<actionGroup ref="AssertProductNameAndSkuInStorefrontProductPageByCustomAttributeUrlKeyActionGroup" stepKey="openProductPageAndVerifyProduct">
93+
<argument name="product" value="$$createBundleProduct$$"/>
94+
</actionGroup>
95+
<actionGroup ref="AssertStorefrontElementVisibleActionGroup" stepKey="seePriceRangeIsVisible">
96+
<argument name="selector" value="{{StorefrontProductInfoMainSection.priceFrom}}"/>
97+
<argument name="userInput" value="$148.50"/>
98+
</actionGroup>
99+
<actionGroup ref="AssertStorefrontElementVisibleActionGroup" stepKey="seePriceRangeIsVisible1">
100+
<argument name="selector" value="{{StorefrontProductInfoMainSection.priceTo}}"/>
101+
<argument name="userInput" value="To $154.00"/>
102+
</actionGroup>
103+
<!-- Step 3: Click 'customize and add to cart' and verify configuration price $110 and tier message -->
104+
<actionGroup ref="StorefrontSelectCustomizeAndAddToTheCartButtonActionGroup" stepKey="openCustomization"/>
105+
<waitForText userInput="$110.00" selector="{{StorefrontBundledSection.bundleProductsPrice}}" stepKey="seeConfiguredPrice110"/>
106+
<waitForText userInput="Buy 2 with 20% discount each" selector="{{StorefrontProductInfoMainSection.tierPriceWithIndex('1')}}" stepKey="seeTierMessage"/>
107+
<!-- Step 4: Select first dropdown bundle option (+5%), fill custom option 'ok', set qty=2 and add to cart and verify price is configured $237.60-->
108+
<waitForElementClickable selector="{{StorefrontBundledSection.dropDownOptionOneProducts($$dropDownBundleOption1.title$$)}}" stepKey="waitForDropdown"/>
109+
<click selector="{{StorefrontBundledSection.dropDownOptionOneProducts($$dropDownBundleOption1.title$$)}}" stepKey="openDropdown"/>
110+
<selectOption selector="{{StorefrontBundledSection.dropDownOptionOneProducts($$dropDownBundleOption1.title$$)}}" userInput="$$simple1.name$$" stepKey="chooseSimple1Option"/>
111+
<waitForElementVisible selector="{{StorefrontBundleProductActionSection.customOptionField}}" stepKey="waitToFillCustomOptionValue"/>
112+
<fillField selector="{{StorefrontBundleProductActionSection.customOptionField}}" userInput="ok" stepKey="fillCustomOptionValue"/>
113+
<actionGroup ref="StorefrontEnterProductQuantityAndAddToTheCartActionGroup" stepKey="setQtyAndAddToCart">
114+
<argument name="quantity" value="2"/>
115+
</actionGroup>
116+
<actionGroup ref="StorefrontCartPageOpenActionGroup" stepKey="openCart"/>
117+
<waitForText selector="{{CheckoutCartSummarySection.subtotal}}" userInput="$237.60" stepKey="assertCartSubtotal"/>
118+
</test>
119+
</tests>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
<actionGroup ref="FillMainProductFormActionGroup" stepKey="fillSimpleProductMain">
3737
<argument name="product" value="SimpleProduct"/>
3838
</actionGroup>
39-
39+
<scrollTo selector="{{AdminProductImagesSection.productImagesToggle}}" x="0" y="-100" stepKey="scrollToImageSection"/>
4040
<!-- Add image to product -->
4141
<actionGroup ref="AddProductImageActionGroup" stepKey="addImageForSimpleProduct">
4242
<argument name="image" value="TestImageWithDotInFilename"/>
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
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="StorefrontGuestCheckoutFlatAndFreeShippingForAfghanistanTest">
12+
<annotations>
13+
<features value="Checkout"/>
14+
<stories value="Checkout for Afghanistan Countries"/>
15+
<title value="Storefront guest checkout for Afghanistan countries with flat rate and free shipping"/>
16+
<description value="Checkout flow if flat rate and free shipping method are disabled for all countries except Afghanistan"/>
17+
<severity value="AVERAGE"/>
18+
<testCaseId value="AC-7617"/>
19+
<group value="checkout"/>
20+
</annotations>
21+
<before>
22+
<!-- Precondition Step 1: Create simple product -->
23+
<createData entity="_defaultProduct" stepKey="createSimpleProduct"/>
24+
<!-- Precondition Step 2: Enable Free Shipping for Specific Countries = Afghanistan -->
25+
<actionGroup ref="CliEnableFreeShippingMethodActionGroup" stepKey="enableFreeShippingMethod"/>
26+
<actionGroup ref="AdminEnableFreeShippingToSpecificCountriesActionGroup" stepKey="enableToSpecificCountries"/>
27+
<!-- Enable Flat Rate for Specific Countries = Afghanistan -->
28+
<actionGroup ref="AdminEnableFlatRateToSpecificCountriesActionGroup" stepKey="enableFlatRateToSpecificCountries"/>
29+
</before>
30+
<after>
31+
<!-- Revert Free Shipping and Flat Rate restrictions -->
32+
<actionGroup ref="CliDisableFreeShippingMethodActionGroup" stepKey="disableFreeShipping"/>
33+
<actionGroup ref="AdminEnableFreeShippingToAllCountriesActionGroup" stepKey="enableAllCountries"/>
34+
<actionGroup ref="AdminEnableFlatRateToAllCountriesActionGroup" stepKey="selectAllCountries"/>
35+
<!-- Delete product -->
36+
<deleteData createDataKey="createSimpleProduct" stepKey="deleteSimpleProduct"/>
37+
</after>
38+
<!-- Step 1: Go to Storefront as Guest -->
39+
<actionGroup ref="StorefrontOpenHomePageActionGroup" stepKey="goToStorefront"/>
40+
<!-- Step 2: Add simple product to cart -->
41+
<actionGroup ref="StorefrontOpenProductEntityPageActionGroup" stepKey="navigateToProductPage">
42+
<argument name="product" value="$createSimpleProduct$"/>
43+
</actionGroup>
44+
<actionGroup ref="AddProductWithQtyToCartFromStorefrontProductPageActionGroup" stepKey="addProductToCart">
45+
<argument name="productName" value="$createSimpleProduct.name$"/>
46+
<argument name="productQty" value="1"/>
47+
</actionGroup>
48+
<!-- Step 3: Go to checkout -->
49+
<actionGroup ref="OpenStoreFrontCheckoutShippingPageActionGroup" stepKey="openCheckoutShipping"/>
50+
<actionGroup ref="AssertStoreFrontNoQuotesMessageActionGroup" stepKey="assertNoQuoteMessage"/>
51+
<!-- Assert Next button -->
52+
<waitForElementNotVisible selector="{{CheckoutShippingMethodsSection.next}}" stepKey="dontSeeNextBtn"/>
53+
<!-- Step 4: Fill form with valid data and set: -->
54+
<actionGroup ref="FillGuestCheckoutShippingAddressFormActionGroup" stepKey="fillBaseShippingAddress"/>
55+
<!-- Assert no quotes message -->
56+
<actionGroup ref="AssertStoreFrontNoQuotesMessageActionGroup" stepKey="assertNoQuotesMessage"/>
57+
<!-- Assert Next button -->
58+
<waitForElementNotVisible selector="{{CheckoutShippingMethodsSection.next}}" stepKey="dontSeeNextButton"/>
59+
<!-- Step 5: Change values for: Afghanistan -->
60+
<selectOption selector="{{CheckoutShippingSection.country}}" userInput="Afghanistan" stepKey="selectCountryAfghanistan"/>
61+
<!-- Assert only Free Shipping and Flat Rate are available -->
62+
<actionGroup ref="AssertStoreFrontShippingMethodAvailableActionGroup" stepKey="seeFlatRate"/>
63+
<actionGroup ref="AssertStoreFrontShippingMethodAvailableActionGroup" stepKey="seeFreeShipping">
64+
<argument name="shippingMethodName" value="Free Shipping"/>
65+
</actionGroup>
66+
<waitForElementVisible selector="{{CheckoutShippingMethodsSection.next}}" stepKey="seeNextButton"/>
67+
</test>
68+
</tests>

app/code/Magento/Customer/Test/Mftf/Data/StorefrontSidebarData.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,7 @@
1111
<entity name="sidebarTabMenu">
1212
<data key="my_orders">My Orders</data>
1313
</entity>
14+
<entity name="customerSavedSuccessfullyMessage">
15+
<data key="value">Thank you for registering with Main Website Store.</data>
16+
</entity>
1417
</entities>

app/code/Magento/Customer/Test/Mftf/Section/StorefrontCustomerCreateFormSection/StorefrontCustomerCreateFormSection.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,6 @@
1919
<element name="showPasswordCheckbox" type="input" selector="#show-password"/>
2020
<element name="createAccountButton" type="button" selector="button.action.submit.primary" timeout="30"/>
2121
<element name="passwordErrorMessages" type="text" selector="#password-error"/>
22+
<element name="fieldErrorByFieldId" type="text" selector="//div[@id='{{fieldName}}' and contains (text(),'This is a required field.')]" parameterized="true"/>
2223
</section>
2324
</sections>
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
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="StorefrontVerifyRegistrationFormValidationMessagesTest">
11+
<annotations>
12+
<features value="Customer"/>
13+
<stories value="Customer Registration Form Validation"/>
14+
<title value="Verify validation error messages are displayed on registration form when submitting empty fields"/>
15+
<description value="Verify that all required fields on customer registration form display proper mage-error validation messages when form is submitted without filling any data"/>
16+
<severity value="MINOR"/>
17+
<testCaseId value="AC-15355"/>
18+
<group value="customer"/>
19+
<group value="customer_registration"/>
20+
</annotations>
21+
<after>
22+
<actionGroup ref="StorefrontCustomerLogoutActionGroup" stepKey="customerLogoutStorefront"/>
23+
<actionGroup ref="AdminLoginActionGroup" stepKey="LoginAdmin"/>
24+
<actionGroup ref="AdminDeleteCustomerActionGroup" stepKey="deleteCustomer">
25+
<argument name="customerEmail" value="Simple_US_Customer.email"/>
26+
</actionGroup>
27+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
28+
</after>
29+
<!-- Step 3: Navigate to customer registration page -->
30+
<actionGroup ref="StorefrontOpenCustomerAccountCreatePageActionGroup" stepKey="openCreateAccountPage"/>
31+
<!-- Step 4: Submit form without filling any data -->
32+
<scrollTo selector="{{StorefrontCustomerCreateFormSection.createAccountButton}}" stepKey="scrollToCreateButton"/>
33+
<waitForElementClickable selector="{{StorefrontCustomerCreateFormSection.createAccountButton}}" stepKey="waitForCreateAccountButton"/>
34+
<click selector="{{StorefrontCustomerCreateFormSection.createAccountButton}}" stepKey="clickCreateAccountButton"/>
35+
<waitForPageLoad stepKey="waitForValidation"/>
36+
<!-- Step 5: Verify all required fields display proper error messages -->
37+
<waitForText selector="{{StorefrontCustomerCreateFormSection.fieldErrorByFieldId('firstname-error')}}" userInput="{{ProductWarningMessage.require_Message}}" stepKey="assertFirstNameError"/>
38+
<waitForText selector="{{StorefrontCustomerCreateFormSection.fieldErrorByFieldId('lastname-error')}}" userInput="{{ProductWarningMessage.require_Message}}" stepKey="assertLastNameError"/>
39+
<waitForText selector="{{StorefrontCustomerCreateFormSection.fieldErrorByFieldId('email_address-error')}}" userInput="{{ProductWarningMessage.require_Message}}" stepKey="assertEmailError"/>
40+
<waitForText selector="{{StorefrontCustomerCreateFormSection.fieldErrorByFieldId('password-error')}}" userInput="{{ProductWarningMessage.require_Message}}" stepKey="assertPasswordError"/>
41+
<waitForText selector="{{StorefrontCustomerCreateFormSection.fieldErrorByFieldId('password-confirmation-error')}}" userInput="{{ProductWarningMessage.require_Message}}" stepKey="assertPasswordConfirmationError"/>
42+
<!-- Step 6: Enter all needed data -->
43+
<actionGroup ref="StorefrontFillCustomerAccountCreationFormActionGroup" stepKey="fillCreateAccountForm">
44+
<argument name="customer" value="Simple_US_Customer"/>
45+
</actionGroup>
46+
<!-- Step 7: Click on save customer and verify customer is saved successfully -->
47+
<actionGroup ref="StorefrontClickCreateAnAccountCustomerAccountCreationFormActionGroup" stepKey="submitCreateAccountForm"/>
48+
<actionGroup ref="AssertMessageCustomerCreateAccountActionGroup" stepKey="seeSuccessMessage">
49+
<argument name="messageType" value="success"/>
50+
<argument name="message" value="{{customerSavedSuccessfullyMessage.value}}"/>
51+
</actionGroup>
52+
</test>
53+
</tests>

app/code/Magento/Review/Test/Mftf/Test/AdminReviewsByProductsReportTest.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
<description value="Review By Products Grid Filters"/>
1717
<severity value="AVERAGE"/>
1818
<testCaseId value="MC-32333"/>
19+
<skip>
20+
<issueId value="AC-15827"/>
21+
</skip>
1922
</annotations>
2023
<before>
2124
<!--Login-->

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,6 @@
1515

1616
<waitForElement selector="{{CheckoutPaymentSection.paymentSectionTitle}}" after="clickNext" stepKey="waitForPaymentSectionLoaded"/>
1717
<conditionalClick selector="{{CheckoutPaymentSection.checkMoneyOrderPayment}}" dependentSelector="{{CheckoutPaymentSection.billingAddress}}" visible="false" before="waitForPlaceOrderButton" stepKey="clickCheckMoneyOrderPayment"/>
18+
<remove keyForRemoval="clickPrintOrderLink"/>
1819
</actionGroup>
1920
</actionGroups>

0 commit comments

Comments
 (0)