Skip to content

Commit 0db923c

Browse files
committed
Merge remote-tracking branch 'upstream/2.4-develop' into PR_2025_07_08_muntianu
2 parents cd89169 + 84505ca commit 0db923c

20 files changed

+282
-116
lines changed

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,5 +486,11 @@
486486
<data key="is_used_for_promo_rules">true</data>
487487
<requiredEntity type="FrontendLabel">ProductAttributeFrontendLabel</requiredEntity>
488488
</entity>
489+
<entity name="multiSelectAttributeWithThreeOptions" extends="productDropDownAttribute" type="ProductAttribute">
490+
<data key="frontend_input">multiselect</data>
491+
<data key="option1">1</data>
492+
<data key="option2">2</data>
493+
<data key="option3">3</data>
494+
</entity>
489495
</entities>
490496

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,5 +92,6 @@
9292
<element name="customSelectAttribute" type="select" selector="//select[@name='product[{{attribute_code}}]']" parameterized="true"/>
9393
<element name="customSwitcherAttribute" type="checkbox" selector="//input[@name='product[{{attribute_code}}]' and @value='{{checked_value}}']/parent::div[@data-role='switcher']" parameterized="true"/>
9494
<element name="attributeOptionUncheckDefaultValue" type="checkbox" selector="input[name='use_default[{{attribute_code}}]']" parameterized="true"/>
95+
<element name="customAttributeUnderMassUpdate" type="select" selector="//select[@name='attributes[{{attribute_code}}][]']" parameterized="true"/>
9596
</section>
9697
</sections>

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<element name="addToCartBtn" type="button" selector="button.action.tocart.primary" timeout="30"/>
1414
<element name="successMsg" type="button" selector="div.message-success" timeout="30"/>
1515
<element name="errorMsg" type="button" selector="div.message-error" timeout="30"/>
16+
<element name="errorMsgText" type="button" selector="div.message-error > div" timeout="30"/>
1617
<element name="alertMessage" type="text" selector=".page.messages [role=alert]"/>
1718
<element name="messagesBlock" type="text" selector=".page.messages" timeout="30"/>
1819
<element name="addToWishlist" type="button" selector="//a[@class='action towishlist']" timeout="30"/>
@@ -27,7 +28,7 @@
2728
<element name="qtyInputWithProduct" type="input" selector="//tr//strong[contains(.,'{{productName}}')]/../../td[@class='col qty']//input" parameterized="true"/>
2829
<element name="customOptionRadio" type="input" selector="//span[contains(text(),'{{customOption}}')]/../../input" parameterized="true"/>
2930
<element name="onlyProductsLeft" type="block" selector="//div[@class='product-info-price']//div[@class='product-info-stock-sku']//div[@class='availability only']"/>
30-
<element name="qtyErr" type="text" selector="//*[@data-ui-id='message-error']//div"/>
31+
<element name="qtyErr" type="text" selector="//div[@id='qty-error' and contains(@class, 'mage-error')]"/>
3132
<element name="addToCart" type="button" selector="button#product-addtocart-button" />
3233
<element name="attributeTypes" type="text" selector="//th[@class='col label' and text()='{{attributeName}}']/following-sibling::td[@class='col data']" parameterized="true"/>
3334
</section>
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
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="AdminMassUpdateProductAttributeWithMultiSelectTest">
11+
<annotations>
12+
<features value="Catalog"/>
13+
<stories value="Mass Update Product Attribute multiselect"/>
14+
<title value="Product Attribute of multiselect type changes can be saved with mass update"/>
15+
<description value="Verify that a product attribute of multiselect type changes can be saved with mass update in the admin update attributes."/>
16+
<testCaseId value="AC-4829"/>
17+
<severity value="MAJOR"/>
18+
<group value="Catalog"/>
19+
</annotations>
20+
<before>
21+
<createData entity="SimpleProduct" stepKey="createSimpleProduct"/>
22+
<!-- Pre-condition Step-1 Multiselect attribute is created with three options: 1, 2, 3 -->
23+
<createData entity="multiSelectAttributeWithThreeOptions" stepKey="createMultiSelectProductAttributeWithThreeOptions"/>
24+
<!-- Login as admin -->
25+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
26+
<actionGroup ref="AdminOpenProductAttributePageActionGroup" stepKey="goToProductAttributes"/>
27+
<actionGroup ref="NavigateToCreatedProductAttributeActionGroup" stepKey="openAttributeFromGrid">
28+
<argument name="ProductAttribute" value="$$createMultiSelectProductAttributeWithThreeOptions$$"/>
29+
</actionGroup>
30+
<actionGroup ref="CreateAttributeDropdownNthOptionActionGroup" stepKey="createOption1">
31+
<argument name="adminName" value="{{multiSelectAttributeWithThreeOptions.option1}}"/>
32+
<argument name="frontName" value="{{multiSelectAttributeWithThreeOptions.option1}}"/>
33+
<argument name="row" value="{{multiSelectAttributeWithThreeOptions.option1}}"/>
34+
</actionGroup>
35+
<actionGroup ref="CreateAttributeDropdownNthOptionActionGroup" stepKey="createOption2">
36+
<argument name="adminName" value="{{multiSelectAttributeWithThreeOptions.option2}}"/>
37+
<argument name="frontName" value="{{multiSelectAttributeWithThreeOptions.option2}}"/>
38+
<argument name="row" value="{{multiSelectAttributeWithThreeOptions.option2}}"/>
39+
</actionGroup>
40+
<actionGroup ref="CreateAttributeDropdownNthOptionActionGroup" stepKey="createOption3">
41+
<argument name="adminName" value="{{multiSelectAttributeWithThreeOptions.option3}}"/>
42+
<argument name="frontName" value="{{multiSelectAttributeWithThreeOptions.option3}}"/>
43+
<argument name="row" value="{{multiSelectAttributeWithThreeOptions.option3}}"/>
44+
</actionGroup>
45+
<actionGroup ref="AdminSaveProductAttributeActionGroup" stepKey="saveMultiSelectAttribute"/>
46+
<!-- Pre-condition Step-2 Multiselect Attribute added to default Attribute set -->
47+
<actionGroup ref="AdminOpenAttributeSetGridPageActionGroup" stepKey="openAttributeSetPage"/>
48+
<actionGroup ref="AdminOpenAttributeSetByNameActionGroup" stepKey="openDefaultAttributeSet"/>
49+
<actionGroup ref="AssignAttributeToGroupActionGroup" stepKey="assignAttributeToGroup">
50+
<argument name="group" value="Product Details"/>
51+
<argument name="attribute" value="$$createMultiSelectProductAttributeWithThreeOptions.attribute_code$$"/>
52+
</actionGroup>
53+
<actionGroup ref="SaveAttributeSetActionGroup" stepKey="saveAttributeSet"/>
54+
<!-- Pre-condition Step-3 Product is created based on default attribute set. Value of multiselect attribute set to 1 and 2 for this product -->
55+
<actionGroup ref="AdminOpenProductIndexPageActionGroup" stepKey="navigateToProductIndex"/>
56+
<actionGroup ref="FilterProductGridBySkuActionGroup" stepKey="filterProduct">
57+
<argument name="product" value="$$createSimpleProduct$$"/>
58+
</actionGroup>
59+
<actionGroup ref="OpenEditProductOnBackendActionGroup" stepKey="openEditProduct">
60+
<argument name="product" value="$$createSimpleProduct$$"/>
61+
</actionGroup>
62+
<waitForElementVisible
63+
selector="{{AdminProductFormSection.customSelectAttribute('$$createMultiSelectProductAttributeWithThreeOptions.attribute_code$$')}}"
64+
stepKey="waitForMultiSelectAttributeToSelect"/>
65+
<selectOption
66+
selector="{{AdminProductFormSection.customSelectAttribute('$$createMultiSelectProductAttributeWithThreeOptions.attribute_code$$')}}"
67+
parameterArray="['1','2']" stepKey="selectFirstAndSecondOptions"/>
68+
<actionGroup ref="SaveProductFormActionGroup" stepKey="saveProductForm"/>
69+
</before>
70+
<after>
71+
<!-- Delete product -->
72+
<deleteData createDataKey="createSimpleProduct" stepKey="deleteProduct"/>
73+
<!-- Delete attribute -->
74+
<actionGroup ref="NavigateToCreatedProductAttributeActionGroup" stepKey="openAttributeFromGrid">
75+
<argument name="ProductAttribute" value="$$createMultiSelectProductAttributeWithThreeOptions$$"/>
76+
</actionGroup>
77+
<actionGroup ref="DeleteProductAttributeByAttributeCodeActionGroup" stepKey="deleteProductAttribute"/>
78+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
79+
</after>
80+
<!-- Step 2 & 3 - Navigate: Products > Catalog and Select Product checkbox in grid -->
81+
<actionGroup ref="AdminOpenProductIndexPageActionGroup" stepKey="navigateToProductIndex"/>
82+
<actionGroup ref="ResetAdminDataGridToDefaultViewActionGroup" stepKey="resetGrid"/>
83+
<actionGroup ref="FilterProductGridBySkuActionGroup" stepKey="filterProduct">
84+
<argument name="product" value="$$createSimpleProduct$$"/>
85+
</actionGroup>
86+
<waitForElementClickable selector="{{AdminProductGridSection.productGridCheckboxOnRow('1')}}" stepKey="waitForFirstCheckboxClickable" />
87+
<checkOption selector="{{AdminProductGridSection.productGridCheckboxOnRow('1')}}" stepKey="clickCheckbox1"/>
88+
<!--Step 4 - Under ACTIONS select update attributes -->
89+
<actionGroup ref="AdminClickMassUpdateProductAttributesActionGroup" stepKey="clickMassUpdateProductAttributes"/>
90+
<!--Step 5 - Check the "change"-checkbox and alter the values from 1 and 2 to 3 only -->
91+
<scrollTo selector="{{AdminEditProductAttributesSection.toggleAttribute('$$createMultiSelectProductAttributeWithThreeOptions.attribute_code$$')}}" stepKey="scrollToAttributeTogglebtn" />
92+
<checkOption selector="{{AdminEditProductAttributesSection.toggleAttribute('$$createMultiSelectProductAttributeWithThreeOptions.attribute_code$$')}}" stepKey="toggleAttribute"/>
93+
<unselectOption
94+
selector="{{AdminProductFormSection.customAttributeUnderMassUpdate('$$createMultiSelectProductAttributeWithThreeOptions.attribute_code$$')}}"
95+
parameterArray="['1','2']" stepKey="uncheckFirstAndSecondOptions"/>
96+
<selectOption
97+
selector="{{AdminProductFormSection.customAttributeUnderMassUpdate('$$createMultiSelectProductAttributeWithThreeOptions.attribute_code$$')}}"
98+
parameterArray="['3']" stepKey="selectThridOption"/>
99+
<!--Step 6 - Click 'Save Attribute' button -->
100+
<actionGroup ref="AdminMassUpdateProductAttributeSaveActionGroup" stepKey="saveUpdatedProductAttribute"/>
101+
<!-- Start message queue for product attribute consumer -->
102+
<actionGroup ref="CliConsumerStartActionGroup" stepKey="startMessageQueue">
103+
<argument name="consumerName" value="{{AdminProductAttributeUpdateMessageConsumerData.consumerName}}"/>
104+
<argument name="maxMessages" value="{{AdminProductAttributeUpdateMessageConsumerData.messageLimit}}"/>
105+
</actionGroup>
106+
<!--Step 7 - Open created product and verify only option 3 attribute is selected -->
107+
<actionGroup ref="AdminProductPageOpenByIdActionGroup" stepKey="goToProductEditPageAgain">
108+
<argument name="productId" value="$createSimpleProduct.id$"/>
109+
</actionGroup>
110+
<waitForPageLoad stepKey="waitForProductPageLoad"/>
111+
<dontSeeOptionIsSelected
112+
selector="{{AdminProductFormSection.customSelectAttribute('$$createMultiSelectProductAttributeWithThreeOptions.attribute_code$$')}}"
113+
userInput="1" stepKey="assertOption1NotChecked"/>
114+
<dontSeeOptionIsSelected
115+
selector="{{AdminProductFormSection.customSelectAttribute('$$createMultiSelectProductAttributeWithThreeOptions.attribute_code$$')}}"
116+
userInput="2" stepKey="assertOption2NotChecked"/>
117+
<seeOptionIsSelected
118+
selector="{{AdminProductFormSection.customSelectAttribute('$$createMultiSelectProductAttributeWithThreeOptions.attribute_code$$')}}"
119+
userInput="3" stepKey="assertOption3IsChecked"/>
120+
</test>
121+
</tests>

app/code/Magento/CatalogInventory/Test/Mftf/Test/StoreFrontAddOutOfStockProductToShoppingCartTest.xml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,7 @@
1717
<severity value="CRITICAL"/>
1818
<testCaseId value="AC-5262"/>
1919
<group value="cloud"/>
20-
<!-- Will be fixed in scope of ACQE-7385 -->
21-
<group value="pr_exclude"/>
2220
</annotations>
23-
2421
<before>
2522
<!-- Set Enable Inventory Check On Cart Load = No -->
2623
<magentoCLI command="config:set {{DisableInventoryCheckOnCartLoad.path}} {{DisableInventoryCheckOnCartLoad.value}}" stepKey="disableCartLoad"/>
@@ -46,6 +43,8 @@
4643
<magentoCLI command="config:set {{EnableInventoryCheckOnCartLoad.path}} {{EnableInventoryCheckOnCartLoad.value}}" stepKey="enableCartLoad"/>
4744
<actionGroup ref="AdminLogoutActionGroup" stepKey="adminLogout"/>
4845
</after>
46+
<!-- Mouse Hover Product On Category Page initial check-->
47+
<actionGroup ref="StorefrontHoverProductOnCategoryPageActionGroup" stepKey="hoverProductInitial"/>
4948
<!-- Open New tab-->
5049
<openNewTab stepKey="openNewTab"/>
5150
<!-- Open Product From AdminPage-->
@@ -66,9 +65,9 @@
6665
<!-- Select Add to cart-->
6766
<waitForElementClickable selector="{{StorefrontCategoryMainSection.AddToCartBtn}}" stepKey="waitForAddToCartButton"/>
6867
<click selector="{{StorefrontCategoryMainSection.AddToCartBtn}}" stepKey="toCategory"/>
69-
<waitForElementVisible selector="{{StorefrontProductPageSection.errorMsg}}" stepKey="wait"/>
68+
<waitForPageLoad stepKey="waitForPage"/>
69+
<waitForElementVisible selector="{{StorefrontProductPageSection.errorMsgText}}" stepKey="wait"/>
7070
<!-- Assert the Error Message-->
71-
<see selector="{{StorefrontProductPageSection.errorMsg}}" userInput="Product that you are trying to add is not available." stepKey="seeErrorMessage"/>
71+
<waitForText userInput="Product that you are trying to add is not available." selector="{{StorefrontProductPageSection.errorMsgText}}" stepKey="seeErrorMessage"/>
7272
</test>
73-
7473
</tests>

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@
3838
<element name="shippingDHLErrorMessage" type="text" selector="#checkout-shipping-method-load .table-checkout-shipping-method tr.row-error .error div"/>
3939
<element name="smartPostShippingMethod" type="radio" selector="#checkout-shipping-method-load input[value='fedex_SMART_POST']"/>
4040
<element name="groundShippingMethod" type="radio" selector="#checkout-shipping-method-load input[value='fedex_FEDEX_GROUND']"/>
41+
<element name="fedexExpressServerShippingMethod" type="radio" selector="#checkout-shipping-method-load input[value='fedex_FEDEX_EXPRESS_SAVER']"/>
42+
<element name="fedex2dayShippingMethod" type="radio" selector="#checkout-shipping-method-load input[value='fedex_FEDEX_2_DAY']"/>
4143
<element name="shippingMethodDhlExpressEasyLabel" type="text" selector="#label_method_8_dhl"/>
4244
<element name="shippingMethodFedexLabel" type="text" selector="#label_carrier_null_fedex"/>
4345
<element name="smartPostFedexPrice" type="text" selector="//tr[td[@id='label_carrier_SMART_POST_fedex']]//td[contains(@class, 'col-price')]//span[contains(@class, 'price') and contains(@data-bind, 'price_excl_tax')]"/>

app/code/Magento/Checkout/Test/Mftf/Test/CheckCheckoutSuccessPageTest/CheckCheckoutSuccessPageAsRegisterCustomerTest.xml

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -137,14 +137,7 @@
137137

138138
<!-- See print page -->
139139
<click selector="{{CheckoutSuccessMainSection.printLink}}" stepKey="clickPrintLink"/>
140-
<helper class="Magento\Sales\Test\Mftf\Helper\SalesHelper" method="switchToWindowWithUrlAndClosePrintDialogIfEncountered" stepKey="switchToWindowWithUrlAndClosePrintDialogIfEncountered">
141-
<argument name="expectedUrl">sales/order/print/order_id/</argument>
142-
<argument name="expectedUrlComparisonType">COMPARISON_PATH_SUBSET_MATCH</argument>
143-
</helper>
144-
145-
<comment userInput="Step key preserved for backwards compatibility" stepKey="switchToWindow"/>
146-
<comment userInput="Step key preserved for backwards compatibility" stepKey="switchToTab"/>
147-
<comment userInput="Step key preserved for backwards compatibility" stepKey="seePrintPage"/>
140+
<waitForPageLoad stepKey="waitForPrintOrderPageLoad"/>
148141
<seeElement selector="{{StorefrontCustomerOrderViewSection.orderTitle}}" stepKey="seeOrderTitleOnPrint"/>
149142
<switchToWindow stepKey="switchToWindow2"/>
150143
</test>

app/code/Magento/Checkout/Test/Mftf/Test/StorefrontCheckoutWithPurchaseOrderNumberPressKeyEnterTest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848

4949
<actionGroup ref="GuestCheckoutFillingShippingSectionActionGroup" stepKey="guestCheckoutFillingShippingSection">
5050
<argument name="customerVar" value="CustomerEntityOne"/>
51-
<argument name="customerAddressVar" value="CustomerAddressSimple"/>
51+
<argument name="customerAddressVar" value="CustomerAddressSimpleWithSmallStreetAddress"/>
5252
</actionGroup>
5353

5454
<!-- Checkout select Purchase Order payment -->

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

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
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-
*/
3+
/**
4+
* Copyright 2017 Adobe
5+
* All Rights Reserved.
6+
*/
77
-->
88

99
<entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -34,6 +34,32 @@
3434
<data key="default_billing">true</data>
3535
<data key="region_qty">66</data>
3636
</entity>
37+
<entity name="CustomerAddressSimpleWithSmallStreetAddress" type="address">
38+
<data key="id">0</data>
39+
<data key="customer_id">12</data>
40+
<requiredEntity type="region">CustomerRegionOne</requiredEntity>
41+
<data key="region_id">0</data>
42+
<data key="country_id">US</data>
43+
<array key="street">
44+
<item>7700 W</item>
45+
<item>Bld D</item>
46+
</array>
47+
<data key="company">Magento</data>
48+
<data key="telephone">1234568910</data>
49+
<data key="fax">1234568910</data>
50+
<data key="postcode">78729</data>
51+
<data key="city">Austin</data>
52+
<data key="state">Texas</data>
53+
<data key="firstname">John</data>
54+
<data key="lastname">Doe</data>
55+
<data key="middlename">string</data>
56+
<data key="prefix">Mr</data>
57+
<data key="suffix">Sr</data>
58+
<data key="vat_id">vatData</data>
59+
<data key="default_shipping">true</data>
60+
<data key="default_billing">true</data>
61+
<data key="region_qty">66</data>
62+
</entity>
3763
<entity name="CustomerInvalidAddress" type="address">
3864
<data key="id">0</data>
3965
<data key="customer_id">12</data>

0 commit comments

Comments
 (0)