Skip to content

Commit d3d375f

Browse files
committed
Merge branch '2.4-develop' of https://github.com/magento-commerce/magento2ce into ACP2E-3541
2 parents 724db18 + 3a6536d commit d3d375f

21 files changed

+248
-152
lines changed

app/code/Magento/Backend/Test/Mftf/Section/AdminMessagesSection.xml

Lines changed: 4 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 2024 Adobe
5+
* All Rights Reserved.
66
*/
77
-->
88

@@ -25,5 +25,7 @@
2525
<element name="noticeMessage" type="text" selector=".message-notice"/>
2626
<element name="assertCacheManagementConfigurationStatus" type="button" selector="//td[@data-column='tags' and contains(text(),'CONFIG')]/following-sibling::td//span[@class='grid-severity-notice']//span"/>
2727
<element name="assertCacheManagementLayoutsStatus" type="button" selector="//td[@data-column='tags' and contains(text(),'LAYOUT_GENERAL_CACHE_TAG')]/following-sibling::td//span[@class='grid-severity-notice']//span"/>
28+
<element name="assertCacheManagementStatusEnabled" type="button" selector="//td[@data-column='tags' and contains(text(),'{{cache}}')]/following-sibling::td//span[@class='grid-severity-notice']//span" parameterized="true"/>
29+
<element name="assertCacheManagementStatusInvalidated" type="button" selector="//td[@data-column='tags' and contains(text(),'{{cacheType}}')]/following-sibling::td//span[@class='grid-severity-minor']//span" parameterized="true"/>
2830
</section>
2931
</sections>
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
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="AdminValidateEAVTypesAndAttributesConfigurationTest">
11+
<annotations>
12+
<features value="Cache"/>
13+
<stories value="Cache Management"/>
14+
<title value="Validate EAVTypes And Attributes Cache Type"/>
15+
<description value="Validate EAVTypes And Attributes Cache Type After Cache Management"/>
16+
<severity value="MAJOR"/>
17+
<testCaseId value="AC-3833"/>
18+
</annotations>
19+
<before>
20+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
21+
<actionGroup ref="AdminGoToCacheManagementPageActionGroup" stepKey="goToCacheManagementPage"/>
22+
<!--Verify Cache Type EAV Types And Attributes Is ENABLED -->
23+
<waitForText selector="{{AdminMessagesSection.assertCacheManagementStatusEnabled('EAV')}}" userInput="ENABLED" stepKey="verifyCacheTypeEAVTypesAndAttributesIsENABLED"/>
24+
</before>
25+
<after>
26+
<!--Delete created entity -->
27+
<deleteData createDataKey="createSimpleProduct" stepKey="deleteFirstProduct"/>
28+
<actionGroup ref="NavigateToEditProductAttributeActionGroup" stepKey="goToEditPage">
29+
<argument name="ProductAttribute" value="{{multiselectProductAttribute.attribute_code}}"/>
30+
</actionGroup>
31+
<actionGroup ref="DeleteProductAttributeByAttributeCodeActionGroup" stepKey="deleteProductAttribute"/>
32+
<actionGroup ref="CliIndexerReindexActionGroup" stepKey="reindex">
33+
<argument name="indices" value=""/>
34+
</actionGroup>
35+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
36+
</after>
37+
<!-- Create Simple Product -->
38+
<createData entity="SimpleProduct" stepKey="createSimpleProduct"/>
39+
<!--Navigate to Stores > Attributes > Product.-->
40+
<actionGroup ref="AdminOpenProductAttributePageActionGroup" stepKey="goToProductAttributes"/>
41+
<!--Create new Product Attribute as TextField, with code and default value.-->
42+
<actionGroup ref="CreateProductAttributeActionGroup" stepKey="createAttribute">
43+
<argument name="attribute" value="multiselectProductAttribute"/>
44+
</actionGroup>
45+
<!--Navigate to Product Attribute, add Product Options and Save - 1-->
46+
<actionGroup ref="NavigateToEditProductAttributeActionGroup" stepKey="goToEditPage1">
47+
<argument name="ProductAttribute" value="{{multiselectProductAttribute.attribute_code}}"/>
48+
</actionGroup>
49+
<actionGroup ref="CreateAttributeDropdownNthOptionActionGroup" stepKey="createOption1">
50+
<argument name="adminName" value="{{multiselectProductAttribute.option1_admin}}"/>
51+
<argument name="frontName" value="{{multiselectProductAttribute.option1_frontend}}"/>
52+
<argument name="row" value="1"/>
53+
</actionGroup>
54+
<actionGroup ref="AdminSetProductAttributeUseInLayeredNavigationOptionActionGroup" stepKey="setDropdownUseInLayeredNavigationNoResults">
55+
<argument name="useInLayeredNavigationValue" value="Filterable (with results)"/>
56+
</actionGroup>
57+
<selectOption selector="{{AdvancedAttributePropertiesSection.UseInSearch}}" userInput="Yes" stepKey="selectIsSearchAble"/>
58+
<selectOption selector="{{AttributePropertiesSection.useInSearchResultsLayeredNavigation}}" userInput="Yes" stepKey="selectUseInLayeredNavigationOption"/>
59+
<click stepKey="saveAttribute" selector="{{AttributePropertiesSection.Save}}"/>
60+
<!-- Open created product for edit -->
61+
<actionGroup ref="AdminProductPageOpenByIdActionGroup" stepKey="goToProductEditPage">
62+
<argument name="productId" value="$createSimpleProduct.id$"/>
63+
</actionGroup>
64+
<waitForPageLoad stepKey="waitForProductPageLoad"/>
65+
<click selector="{{AdminProductFormSection.addAttributeBtn}}" stepKey="clickAddAttributeBtn"/>
66+
<waitForPageLoad stepKey="waitForAttributeAdded"/>
67+
<!-- Filter By Attribute Label on Add Attribute Page -->
68+
<click selector="{{AdminProductFiltersSection.filter}}" stepKey="clickOnFilter"/>
69+
<fillField selector="{{AdminProductAddAttributeModalSection.attributeCodeFilter}}" userInput="{{multiselectProductAttribute.attribute_code}}" stepKey="fillAttrCodeField" />
70+
<click selector="{{AdminProductAttributeGridSection.Search}}" stepKey="clickSearchBtn" />
71+
<click stepKey="clickonFirstRow" selector="{{AdminProductAddAttributeModalSection.firstRowCheckBox}}"/>
72+
<click stepKey="clickOnAddSelected" selector="{{AdminProductAttributeGridSection.addSelected}}"/>
73+
<waitForPageLoad stepKey="waitForAttributeAdded2"/>
74+
<!-- Expand 'Attributes' tab -->
75+
<actionGroup ref="AdminExpandProductAttributesTabActionGroup" stepKey="expandAttributesTab"/>
76+
<!-- Check created attribute presents in the 'Attributes' tab -->
77+
<waitForElementVisible selector="{{AdminProductAttributesSection.attributeDropdownByCode(multiselectProductAttribute.attribute_code)}}" stepKey="assertAttributeIsPresentInTab"/>
78+
<!-- Select attribute options -->
79+
<selectOption selector="{{AdminProductAttributesSection.attributeDropdownByCode(multiselectProductAttribute.attribute_code)}}" userInput="{{multiselectProductAttribute.option1_admin}}" stepKey="selectProduct1AttributeOption"/>
80+
<!-- Save product -->
81+
<actionGroup ref="SaveProductFormActionGroup" stepKey="saveProductForm"/>
82+
<!--Verify Cache Type Page Cache Is INVALIDATED -->
83+
<actionGroup ref="AdminGoToCacheManagementPageActionGroup" stepKey="goToCacheManagementPageAgain"/>
84+
<waitForText selector="{{AdminMessagesSection.assertCacheManagementStatusInvalidated('FPC')}}" userInput="INVALIDATED" stepKey="verifyCacheTypePageCacheIsInvalidated"/>
85+
<!--Flush Cache -->
86+
<actionGroup ref="CliIndexerReindexActionGroup" stepKey="reindex">
87+
<argument name="indices" value=""/>
88+
</actionGroup>
89+
<actionGroup ref="CliCacheCleanActionGroup" stepKey="flushCache">
90+
<argument name="tags" value="full_page"/>
91+
</actionGroup>
92+
<!--Verify Cache Type Page Cache s Is Enabled -->
93+
<actionGroup ref="AdminGoToCacheManagementPageActionGroup" stepKey="goToCacheManagementPageAgain1"/>
94+
<waitForText selector="{{AdminMessagesSection.assertCacheManagementStatusEnabled('FPC')}}" userInput="ENABLED" stepKey="verifyCacheTypePageCacheIsENABLED"/>
95+
<!-- Go to Storefront and search for product-->
96+
<actionGroup ref="StorefrontOpenHomePageActionGroup" stepKey="goToFrontPage"/>
97+
<actionGroup ref="StorefrontCheckQuickSearchStringActionGroup" stepKey="searchStorefront">
98+
<argument name="phrase" value="$createSimpleProduct.name$"/>
99+
</actionGroup>
100+
<!-- Assert custom Attribute in Layered Navigation-->
101+
<waitForElementVisible selector="{{StorefrontCategorySidebarSection.filterOptionsTitle(multiselectProductAttribute.attribute_code)}}" stepKey="waitForAttributeVisible"/>
102+
<conditionalClick selector="{{StorefrontCategorySidebarSection.filterOptionsTitle(multiselectProductAttribute.attribute_code)}}" dependentSelector="{{StorefrontCategorySidebarSection.activeFilterOptions}}" visible="false" stepKey="clickToExpandAttribute"/>
103+
<waitForElementVisible selector="{{StorefrontCategorySidebarSection.activeFilterOptions}}" stepKey="waitForAttributeOptionsVisible"/>
104+
</test>
105+
</tests>

app/code/Magento/Checkout/Test/Mftf/ActionGroup/GuestCheckoutFillingShippingSectionActionGroup.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@
1515
<arguments>
1616
<argument name="customerVar" defaultValue="CustomerEntityOne"/>
1717
<argument name="customerAddressVar" defaultValue="CustomerAddressSimple"/>
18-
<!--First available shipping method will be selected if value is not passed for shippingMethod-->
19-
<argument name="shippingMethod" defaultValue="" type="string"/>
18+
<argument name="shippingMethod" defaultValue="Flat Rate" type="string"/>
2019
</arguments>
2120

2221
<waitForElementVisible selector="{{CheckoutShippingSection.emailAddress}}" stepKey="waitForEmailField"/>

app/code/Magento/Checkout/Test/Mftf/ActionGroup/StorefrontAssertShippingMethodPresentInCartActionGroup.xml

Lines changed: 2 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 2024 Adobe
5+
* All Rights Reserved.
66
*/
77
-->
88

Lines changed: 43 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<!--
33
/**
4-
* Copyright 2024 Adobe
4+
* Copyright 2025 Adobe
55
* All Rights Reserved.
66
*/
77
-->
@@ -12,22 +12,48 @@
1212
<annotations>
1313
<description>Validates that the Fedex Shipping method prices in the checkout page.</description>
1414
</annotations>
15-
<arguments>
16-
<argument name="smartPostPrice" type="string" defaultValue="$17.25"/>
17-
<argument name="groundPrice" type="string" defaultValue="$13.72"/>
18-
<argument name="expressSaverPrice" type="string" defaultValue="$37.97"/>
19-
<argument name="twoDayPrice" type="string" defaultValue="$44.11"/>
20-
<argument name="twoDayAMPrice" type="string" defaultValue="$50.91"/>
21-
<argument name="standardOvernightPrice" type="string" defaultValue="$90.31"/>
22-
<argument name="priorityOvernightPrice" type="string" defaultValue="$100.37"/>
23-
</arguments>
2415
<waitForPageLoad stepKey="waitForPageLoad2" />
25-
<waitForText selector="{{CheckoutShippingMethodsSection.smartPostFedexPrice}}" userInput="{{smartPostPrice}}" stepKey="waitForSmartPostPriceVisible"/>
26-
<waitForText selector="{{CheckoutShippingMethodsSection.groundFedexPrice}}" userInput="{{groundPrice}}" stepKey="waitForGroundPriceVisible"/>
27-
<waitForText selector="{{CheckoutShippingMethodsSection.expressSaverFedexPrice}}" userInput="{{expressSaverPrice}}" stepKey="waitForExpressPriceVisible"/>
28-
<waitForText selector="{{CheckoutShippingMethodsSection.twoDayFedexPrice}}" userInput="{{twoDayPrice}}" stepKey="waitForTwodayPriceVisible"/>
29-
<waitForText selector="{{CheckoutShippingMethodsSection.twoDayAMFedexPrice}}" userInput="{{twoDayAMPrice}}" stepKey="waitForTwodayAMPriceVisible"/>
30-
<waitForText selector="{{CheckoutShippingMethodsSection.standardOvernightFedexPrice}}" userInput="{{standardOvernightPrice}}" stepKey="waitForStandardPriceVisible"/>
31-
<waitForText selector="{{CheckoutShippingMethodsSection.priorityOvernightFedexPrice}}" userInput="{{priorityOvernightPrice}}" stepKey="waitForOvernightPriceVisible"/>
16+
<waitForElement selector="{{CheckoutShippingMethodsSection.smartPostFedexMethod}}" stepKey="waitForSmartPostFedexMethod"/>
17+
<grabTextFrom selector="{{CheckoutShippingMethodsSection.smartPostFedexPrice}}" stepKey="smartPostPrice"/>
18+
<assertRegExp stepKey="waitForSmartPostPriceVisible">
19+
<actualResult type="variable">$smartPostPrice</actualResult>
20+
<expectedResult type="string">\$([0-9]+(\.[0-9]+)?)$</expectedResult>
21+
</assertRegExp>
22+
<waitForElement selector="{{CheckoutShippingMethodsSection.groundFedexMethod}}" stepKey="waitForGroundFedexMethod"/>
23+
<grabTextFrom selector="{{CheckoutShippingMethodsSection.groundFedexPrice}}" stepKey="groundFedexPrice"/>
24+
<assertRegExp stepKey="waitForGroundPriceVisible">
25+
<actualResult type="variable">$groundFedexPrice</actualResult>
26+
<expectedResult type="string">\$([0-9]+(\.[0-9]+)?)$</expectedResult>
27+
</assertRegExp>
28+
<waitForElement selector="{{CheckoutShippingMethodsSection.expressSaverFedexPrice}}" stepKey="waitForExpressSaverFedexMethod"/>
29+
<grabTextFrom selector="{{CheckoutShippingMethodsSection.expressSaverFedexPrice}}" stepKey="expressSaverFedexPrice"/>
30+
<assertRegExp stepKey="waitForExpressPriceVisible">
31+
<actualResult type="variable">$expressSaverFedexPrice</actualResult>
32+
<expectedResult type="string">\$([0-9]+(\.[0-9]+)?)$</expectedResult>
33+
</assertRegExp>
34+
<waitForElement selector="{{CheckoutShippingMethodsSection.twoDayFedexMethod}}" stepKey="waitForRwoDayFedexMethod"/>
35+
<grabTextFrom selector="{{CheckoutShippingMethodsSection.twoDayFedexPrice}}" stepKey="twoDayFedexPrice"/>
36+
<assertRegExp stepKey="waitForTwodayPriceVisible">
37+
<actualResult type="variable">$twoDayFedexPrice</actualResult>
38+
<expectedResult type="string">\$([0-9]+(\.[0-9]+)?)$</expectedResult>
39+
</assertRegExp>
40+
<waitForElement selector="{{CheckoutShippingMethodsSection.twoDayAMFedexMethod}}" stepKey="waitForTwoDayAMFedexMethod"/>
41+
<grabTextFrom selector="{{CheckoutShippingMethodsSection.twoDayAMFedexPrice}}" stepKey="twoDayAMFedexPrice"/>
42+
<assertRegExp stepKey="waitForTwodayAMPriceVisible">
43+
<actualResult type="variable">$twoDayAMFedexPrice</actualResult>
44+
<expectedResult type="string">\$([0-9]+(\.[0-9]+)?)$</expectedResult>
45+
</assertRegExp>
46+
<waitForElement selector="{{CheckoutShippingMethodsSection.standardOvernightFedexMethod}}" stepKey="waitForStandardOvernightFedexMethod"/>
47+
<grabTextFrom selector="{{CheckoutShippingMethodsSection.standardOvernightFedexPrice}}" stepKey="standardOvernightFedexPrice"/>
48+
<assertRegExp stepKey="waitForStandardPriceVisible">
49+
<actualResult type="variable">$standardOvernightFedexPrice</actualResult>
50+
<expectedResult type="string">\$([0-9]+(\.[0-9]+)?)$</expectedResult>
51+
</assertRegExp>
52+
<waitForElement selector="{{CheckoutShippingMethodsSection.priorityOvernightFedexMethod}}" stepKey="waitForPriorityOvernightFedexMethod"/>
53+
<grabTextFrom selector="{{CheckoutShippingMethodsSection.priorityOvernightFedexPrice}}" stepKey="priorityOvernightFedexPrice"/>
54+
<assertRegExp stepKey="waitForOvernightPriceVisible">
55+
<actualResult type="variable">$priorityOvernightFedexPrice</actualResult>
56+
<expectedResult type="string">\$([0-9]+(\.[0-9]+)?)$</expectedResult>
57+
</assertRegExp>
3258
</actionGroup>
3359
</actionGroups>

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<!--
33
/**
4-
* Copyright 2024 Adobe
4+
* Copyright 2025 Adobe
55
* All Rights Reserved.
66
*/
77
-->
@@ -46,5 +46,12 @@
4646
<element name="twoDayAMFedexPrice" type="text" selector="//tr[td[@id='label_method_FEDEX_2_DAY_AM_fedex']]//td[contains(@class, 'col-price')]//span[contains(@class, 'price') and contains(@data-bind, 'price_excl_tax')]"/>
4747
<element name="standardOvernightFedexPrice" type="text" selector="//tr[td[@id='label_method_STANDARD_OVERNIGHT_fedex']]//td[contains(@class, 'col-price')]//span[contains(@class, 'price') and contains(@data-bind, 'price_excl_tax')]"/>
4848
<element name="priorityOvernightFedexPrice" type="text" selector="//tr[td[@id='label_method_PRIORITY_OVERNIGHT_fedex']]//td[contains(@class, 'col-price')]//span[contains(@class, 'price') and contains(@data-bind, 'price_excl_tax')]"/>
49+
<element name="smartPostFedexMethod" type="text" selector="//tr[td[@id='label_carrier_SMART_POST_fedex']]//td[contains(@class, 'col-method') and contains(text(), 'Smart Post')]"/>
50+
<element name="groundFedexMethod" type="text" selector="//tr[td[@id='label_method_FEDEX_GROUND_fedex']]//td[contains(@class, 'col-method') and contains(text(), 'Ground')]"/>
51+
<element name="expressSaverFedexMethod" type="text" selector="//tr[td[@id='label_method_FEDEX_EXPRESS_SAVER_fedex']]//td[contains(@class, 'col-method') and contains(text(), 'Express Saver')]"/>
52+
<element name="twoDayFedexMethod" type="text" selector="//tr[td[@id='label_method_FEDEX_2_DAY_fedex']]//td[contains(@class, 'col-method') and contains(text(), '2 Day')]"/>
53+
<element name="twoDayAMFedexMethod" type="text" selector="//tr[td[@id='label_method_FEDEX_2_DAY_AM_fedex']]//td[contains(@class, 'col-method') and contains(text(), '2 Day AM')]"/>
54+
<element name="standardOvernightFedexMethod" type="text" selector="//tr[td[@id='label_method_STANDARD_OVERNIGHT_fedex']]//td[contains(@class, 'col-method') and contains(text(), 'Standard Overnight')]"/>
55+
<element name="priorityOvernightFedexMethod" type="text" selector="//tr[td[@id='label_method_PRIORITY_OVERNIGHT_fedex']]//td[contains(@class, 'col-method') and contains(text(), 'Priority Overnight')]"/>
4956
</section>
5057
</sections>

app/code/Magento/Checkout/Test/Mftf/Test/StorefrontVerifyShipToShipMethodContainsSameDataTest.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 2025 Adobe
5+
* All Rights Reserved.
66
*/
77
-->
88

@@ -69,6 +69,7 @@
6969
<waitForElementVisible selector="{{CheckoutPaymentSection.editShipToAddress}}" stepKey="waitForEditButtonToBeVisible"/>
7070
<click selector="{{CheckoutPaymentSection.editShipToAddress}}" stepKey="clickOnEditButton"/>
7171
<actionGroup ref="GuestCheckoutFillingShippingSectionActionGroup" stepKey="guestCheckoutFillingShippingSectionAgain">
72+
<argument name="shippingMethod" value="Free Shipping"/>
7273
<argument name="customerVar" value="CustomerEntityOne"/>
7374
<argument name="customerAddressVar" value="CustomerAddressSimple"/>
7475
</actionGroup>

app/code/Magento/CurrencySymbol/Test/Mftf/Test/StorefrontSwitchingMultipleCurrenciesTest.xml

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

99
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
1010
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
@@ -16,6 +16,8 @@
1616
<severity value="MAJOR"/>
1717
<testCaseId value="AC-5358"/>
1818
<features value="CurrencySymbol"/>
19+
<!--Will be fixed in scope of ACQE-7613-->
20+
<group value="pr_exclude"/>
1921
</annotations>
2022
<before>
2123
<!--Login as admin-->

0 commit comments

Comments
 (0)