Skip to content

Commit

Permalink
Merge branch '2.4-develop' of https://github.com/mage-os/mirror-magento2
Browse files Browse the repository at this point in the history
 into 2.4-develop
  • Loading branch information
mage-os-ci committed Feb 24, 2025
2 parents 05e150a + 3a6536d commit d830962
Show file tree
Hide file tree
Showing 21 changed files with 248 additions and 152 deletions.
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
* Copyright 2024 Adobe
* All Rights Reserved.
*/
-->

Expand All @@ -25,5 +25,7 @@
<element name="noticeMessage" type="text" selector=".message-notice"/>
<element name="assertCacheManagementConfigurationStatus" type="button" selector="//td[@data-column='tags' and contains(text(),'CONFIG')]/following-sibling::td//span[@class='grid-severity-notice']//span"/>
<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"/>
<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"/>
<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"/>
</section>
</sections>
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
* Copyright 2024 Adobe
* All Rights Reserved.
*/
-->
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
<test name="AdminValidateEAVTypesAndAttributesConfigurationTest">
<annotations>
<features value="Cache"/>
<stories value="Cache Management"/>
<title value="Validate EAVTypes And Attributes Cache Type"/>
<description value="Validate EAVTypes And Attributes Cache Type After Cache Management"/>
<severity value="MAJOR"/>
<testCaseId value="AC-3833"/>
</annotations>
<before>
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
<actionGroup ref="AdminGoToCacheManagementPageActionGroup" stepKey="goToCacheManagementPage"/>
<!--Verify Cache Type EAV Types And Attributes Is ENABLED -->
<waitForText selector="{{AdminMessagesSection.assertCacheManagementStatusEnabled('EAV')}}" userInput="ENABLED" stepKey="verifyCacheTypeEAVTypesAndAttributesIsENABLED"/>
</before>
<after>
<!--Delete created entity -->
<deleteData createDataKey="createSimpleProduct" stepKey="deleteFirstProduct"/>
<actionGroup ref="NavigateToEditProductAttributeActionGroup" stepKey="goToEditPage">
<argument name="ProductAttribute" value="{{multiselectProductAttribute.attribute_code}}"/>
</actionGroup>
<actionGroup ref="DeleteProductAttributeByAttributeCodeActionGroup" stepKey="deleteProductAttribute"/>
<actionGroup ref="CliIndexerReindexActionGroup" stepKey="reindex">
<argument name="indices" value=""/>
</actionGroup>
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
</after>
<!-- Create Simple Product -->
<createData entity="SimpleProduct" stepKey="createSimpleProduct"/>
<!--Navigate to Stores > Attributes > Product.-->
<actionGroup ref="AdminOpenProductAttributePageActionGroup" stepKey="goToProductAttributes"/>
<!--Create new Product Attribute as TextField, with code and default value.-->
<actionGroup ref="CreateProductAttributeActionGroup" stepKey="createAttribute">
<argument name="attribute" value="multiselectProductAttribute"/>
</actionGroup>
<!--Navigate to Product Attribute, add Product Options and Save - 1-->
<actionGroup ref="NavigateToEditProductAttributeActionGroup" stepKey="goToEditPage1">
<argument name="ProductAttribute" value="{{multiselectProductAttribute.attribute_code}}"/>
</actionGroup>
<actionGroup ref="CreateAttributeDropdownNthOptionActionGroup" stepKey="createOption1">
<argument name="adminName" value="{{multiselectProductAttribute.option1_admin}}"/>
<argument name="frontName" value="{{multiselectProductAttribute.option1_frontend}}"/>
<argument name="row" value="1"/>
</actionGroup>
<actionGroup ref="AdminSetProductAttributeUseInLayeredNavigationOptionActionGroup" stepKey="setDropdownUseInLayeredNavigationNoResults">
<argument name="useInLayeredNavigationValue" value="Filterable (with results)"/>
</actionGroup>
<selectOption selector="{{AdvancedAttributePropertiesSection.UseInSearch}}" userInput="Yes" stepKey="selectIsSearchAble"/>
<selectOption selector="{{AttributePropertiesSection.useInSearchResultsLayeredNavigation}}" userInput="Yes" stepKey="selectUseInLayeredNavigationOption"/>
<click stepKey="saveAttribute" selector="{{AttributePropertiesSection.Save}}"/>
<!-- Open created product for edit -->
<actionGroup ref="AdminProductPageOpenByIdActionGroup" stepKey="goToProductEditPage">
<argument name="productId" value="$createSimpleProduct.id$"/>
</actionGroup>
<waitForPageLoad stepKey="waitForProductPageLoad"/>
<click selector="{{AdminProductFormSection.addAttributeBtn}}" stepKey="clickAddAttributeBtn"/>
<waitForPageLoad stepKey="waitForAttributeAdded"/>
<!-- Filter By Attribute Label on Add Attribute Page -->
<click selector="{{AdminProductFiltersSection.filter}}" stepKey="clickOnFilter"/>
<fillField selector="{{AdminProductAddAttributeModalSection.attributeCodeFilter}}" userInput="{{multiselectProductAttribute.attribute_code}}" stepKey="fillAttrCodeField" />
<click selector="{{AdminProductAttributeGridSection.Search}}" stepKey="clickSearchBtn" />
<click stepKey="clickonFirstRow" selector="{{AdminProductAddAttributeModalSection.firstRowCheckBox}}"/>
<click stepKey="clickOnAddSelected" selector="{{AdminProductAttributeGridSection.addSelected}}"/>
<waitForPageLoad stepKey="waitForAttributeAdded2"/>
<!-- Expand 'Attributes' tab -->
<actionGroup ref="AdminExpandProductAttributesTabActionGroup" stepKey="expandAttributesTab"/>
<!-- Check created attribute presents in the 'Attributes' tab -->
<waitForElementVisible selector="{{AdminProductAttributesSection.attributeDropdownByCode(multiselectProductAttribute.attribute_code)}}" stepKey="assertAttributeIsPresentInTab"/>
<!-- Select attribute options -->
<selectOption selector="{{AdminProductAttributesSection.attributeDropdownByCode(multiselectProductAttribute.attribute_code)}}" userInput="{{multiselectProductAttribute.option1_admin}}" stepKey="selectProduct1AttributeOption"/>
<!-- Save product -->
<actionGroup ref="SaveProductFormActionGroup" stepKey="saveProductForm"/>
<!--Verify Cache Type Page Cache Is INVALIDATED -->
<actionGroup ref="AdminGoToCacheManagementPageActionGroup" stepKey="goToCacheManagementPageAgain"/>
<waitForText selector="{{AdminMessagesSection.assertCacheManagementStatusInvalidated('FPC')}}" userInput="INVALIDATED" stepKey="verifyCacheTypePageCacheIsInvalidated"/>
<!--Flush Cache -->
<actionGroup ref="CliIndexerReindexActionGroup" stepKey="reindex">
<argument name="indices" value=""/>
</actionGroup>
<actionGroup ref="CliCacheCleanActionGroup" stepKey="flushCache">
<argument name="tags" value="full_page"/>
</actionGroup>
<!--Verify Cache Type Page Cache s Is Enabled -->
<actionGroup ref="AdminGoToCacheManagementPageActionGroup" stepKey="goToCacheManagementPageAgain1"/>
<waitForText selector="{{AdminMessagesSection.assertCacheManagementStatusEnabled('FPC')}}" userInput="ENABLED" stepKey="verifyCacheTypePageCacheIsENABLED"/>
<!-- Go to Storefront and search for product-->
<actionGroup ref="StorefrontOpenHomePageActionGroup" stepKey="goToFrontPage"/>
<actionGroup ref="StorefrontCheckQuickSearchStringActionGroup" stepKey="searchStorefront">
<argument name="phrase" value="$createSimpleProduct.name$"/>
</actionGroup>
<!-- Assert custom Attribute in Layered Navigation-->
<waitForElementVisible selector="{{StorefrontCategorySidebarSection.filterOptionsTitle(multiselectProductAttribute.attribute_code)}}" stepKey="waitForAttributeVisible"/>
<conditionalClick selector="{{StorefrontCategorySidebarSection.filterOptionsTitle(multiselectProductAttribute.attribute_code)}}" dependentSelector="{{StorefrontCategorySidebarSection.activeFilterOptions}}" visible="false" stepKey="clickToExpandAttribute"/>
<waitForElementVisible selector="{{StorefrontCategorySidebarSection.activeFilterOptions}}" stepKey="waitForAttributeOptionsVisible"/>
</test>
</tests>
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@
<arguments>
<argument name="customerVar" defaultValue="CustomerEntityOne"/>
<argument name="customerAddressVar" defaultValue="CustomerAddressSimple"/>
<!--First available shipping method will be selected if value is not passed for shippingMethod-->
<argument name="shippingMethod" defaultValue="" type="string"/>
<argument name="shippingMethod" defaultValue="Flat Rate" type="string"/>
</arguments>

<waitForElementVisible selector="{{CheckoutShippingSection.emailAddress}}" stepKey="waitForEmailField"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
* Copyright 2024 Adobe
* All Rights Reserved.
*/
-->

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
* Copyright 2024 Adobe
* Copyright 2025 Adobe
* All Rights Reserved.
*/
-->
Expand All @@ -12,22 +12,48 @@
<annotations>
<description>Validates that the Fedex Shipping method prices in the checkout page.</description>
</annotations>
<arguments>
<argument name="smartPostPrice" type="string" defaultValue="$17.25"/>
<argument name="groundPrice" type="string" defaultValue="$13.72"/>
<argument name="expressSaverPrice" type="string" defaultValue="$37.97"/>
<argument name="twoDayPrice" type="string" defaultValue="$44.11"/>
<argument name="twoDayAMPrice" type="string" defaultValue="$50.91"/>
<argument name="standardOvernightPrice" type="string" defaultValue="$90.31"/>
<argument name="priorityOvernightPrice" type="string" defaultValue="$100.37"/>
</arguments>
<waitForPageLoad stepKey="waitForPageLoad2" />
<waitForText selector="{{CheckoutShippingMethodsSection.smartPostFedexPrice}}" userInput="{{smartPostPrice}}" stepKey="waitForSmartPostPriceVisible"/>
<waitForText selector="{{CheckoutShippingMethodsSection.groundFedexPrice}}" userInput="{{groundPrice}}" stepKey="waitForGroundPriceVisible"/>
<waitForText selector="{{CheckoutShippingMethodsSection.expressSaverFedexPrice}}" userInput="{{expressSaverPrice}}" stepKey="waitForExpressPriceVisible"/>
<waitForText selector="{{CheckoutShippingMethodsSection.twoDayFedexPrice}}" userInput="{{twoDayPrice}}" stepKey="waitForTwodayPriceVisible"/>
<waitForText selector="{{CheckoutShippingMethodsSection.twoDayAMFedexPrice}}" userInput="{{twoDayAMPrice}}" stepKey="waitForTwodayAMPriceVisible"/>
<waitForText selector="{{CheckoutShippingMethodsSection.standardOvernightFedexPrice}}" userInput="{{standardOvernightPrice}}" stepKey="waitForStandardPriceVisible"/>
<waitForText selector="{{CheckoutShippingMethodsSection.priorityOvernightFedexPrice}}" userInput="{{priorityOvernightPrice}}" stepKey="waitForOvernightPriceVisible"/>
<waitForElement selector="{{CheckoutShippingMethodsSection.smartPostFedexMethod}}" stepKey="waitForSmartPostFedexMethod"/>
<grabTextFrom selector="{{CheckoutShippingMethodsSection.smartPostFedexPrice}}" stepKey="smartPostPrice"/>
<assertRegExp stepKey="waitForSmartPostPriceVisible">
<actualResult type="variable">$smartPostPrice</actualResult>
<expectedResult type="string">\$([0-9]+(\.[0-9]+)?)$</expectedResult>
</assertRegExp>
<waitForElement selector="{{CheckoutShippingMethodsSection.groundFedexMethod}}" stepKey="waitForGroundFedexMethod"/>
<grabTextFrom selector="{{CheckoutShippingMethodsSection.groundFedexPrice}}" stepKey="groundFedexPrice"/>
<assertRegExp stepKey="waitForGroundPriceVisible">
<actualResult type="variable">$groundFedexPrice</actualResult>
<expectedResult type="string">\$([0-9]+(\.[0-9]+)?)$</expectedResult>
</assertRegExp>
<waitForElement selector="{{CheckoutShippingMethodsSection.expressSaverFedexPrice}}" stepKey="waitForExpressSaverFedexMethod"/>
<grabTextFrom selector="{{CheckoutShippingMethodsSection.expressSaverFedexPrice}}" stepKey="expressSaverFedexPrice"/>
<assertRegExp stepKey="waitForExpressPriceVisible">
<actualResult type="variable">$expressSaverFedexPrice</actualResult>
<expectedResult type="string">\$([0-9]+(\.[0-9]+)?)$</expectedResult>
</assertRegExp>
<waitForElement selector="{{CheckoutShippingMethodsSection.twoDayFedexMethod}}" stepKey="waitForRwoDayFedexMethod"/>
<grabTextFrom selector="{{CheckoutShippingMethodsSection.twoDayFedexPrice}}" stepKey="twoDayFedexPrice"/>
<assertRegExp stepKey="waitForTwodayPriceVisible">
<actualResult type="variable">$twoDayFedexPrice</actualResult>
<expectedResult type="string">\$([0-9]+(\.[0-9]+)?)$</expectedResult>
</assertRegExp>
<waitForElement selector="{{CheckoutShippingMethodsSection.twoDayAMFedexMethod}}" stepKey="waitForTwoDayAMFedexMethod"/>
<grabTextFrom selector="{{CheckoutShippingMethodsSection.twoDayAMFedexPrice}}" stepKey="twoDayAMFedexPrice"/>
<assertRegExp stepKey="waitForTwodayAMPriceVisible">
<actualResult type="variable">$twoDayAMFedexPrice</actualResult>
<expectedResult type="string">\$([0-9]+(\.[0-9]+)?)$</expectedResult>
</assertRegExp>
<waitForElement selector="{{CheckoutShippingMethodsSection.standardOvernightFedexMethod}}" stepKey="waitForStandardOvernightFedexMethod"/>
<grabTextFrom selector="{{CheckoutShippingMethodsSection.standardOvernightFedexPrice}}" stepKey="standardOvernightFedexPrice"/>
<assertRegExp stepKey="waitForStandardPriceVisible">
<actualResult type="variable">$standardOvernightFedexPrice</actualResult>
<expectedResult type="string">\$([0-9]+(\.[0-9]+)?)$</expectedResult>
</assertRegExp>
<waitForElement selector="{{CheckoutShippingMethodsSection.priorityOvernightFedexMethod}}" stepKey="waitForPriorityOvernightFedexMethod"/>
<grabTextFrom selector="{{CheckoutShippingMethodsSection.priorityOvernightFedexPrice}}" stepKey="priorityOvernightFedexPrice"/>
<assertRegExp stepKey="waitForOvernightPriceVisible">
<actualResult type="variable">$priorityOvernightFedexPrice</actualResult>
<expectedResult type="string">\$([0-9]+(\.[0-9]+)?)$</expectedResult>
</assertRegExp>
</actionGroup>
</actionGroups>
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
* Copyright 2024 Adobe
* Copyright 2025 Adobe
* All Rights Reserved.
*/
-->
Expand Down Expand Up @@ -46,5 +46,12 @@
<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')]"/>
<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')]"/>
<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')]"/>
<element name="smartPostFedexMethod" type="text" selector="//tr[td[@id='label_carrier_SMART_POST_fedex']]//td[contains(@class, 'col-method') and contains(text(), 'Smart Post')]"/>
<element name="groundFedexMethod" type="text" selector="//tr[td[@id='label_method_FEDEX_GROUND_fedex']]//td[contains(@class, 'col-method') and contains(text(), 'Ground')]"/>
<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')]"/>
<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')]"/>
<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')]"/>
<element name="standardOvernightFedexMethod" type="text" selector="//tr[td[@id='label_method_STANDARD_OVERNIGHT_fedex']]//td[contains(@class, 'col-method') and contains(text(), 'Standard Overnight')]"/>
<element name="priorityOvernightFedexMethod" type="text" selector="//tr[td[@id='label_method_PRIORITY_OVERNIGHT_fedex']]//td[contains(@class, 'col-method') and contains(text(), 'Priority Overnight')]"/>
</section>
</sections>
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
* Copyright 2025 Adobe
* All Rights Reserved.
*/
-->

Expand Down Expand Up @@ -69,6 +69,7 @@
<waitForElementVisible selector="{{CheckoutPaymentSection.editShipToAddress}}" stepKey="waitForEditButtonToBeVisible"/>
<click selector="{{CheckoutPaymentSection.editShipToAddress}}" stepKey="clickOnEditButton"/>
<actionGroup ref="GuestCheckoutFillingShippingSectionActionGroup" stepKey="guestCheckoutFillingShippingSectionAgain">
<argument name="shippingMethod" value="Free Shipping"/>
<argument name="customerVar" value="CustomerEntityOne"/>
<argument name="customerAddressVar" value="CustomerAddressSimple"/>
</actionGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->
/**
* Copyright 2025 Adobe
* All Rights Reserved.
*/
-->

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

0 comments on commit d830962

Please sign in to comment.