Skip to content

Commit 4205339

Browse files
committed
ACQE:8577: Validate price changes for configurable product with dropdown and text swatch attributes displayed in widget
- Created test file and few other files
1 parent cc0ec25 commit 4205339

File tree

5 files changed

+322
-0
lines changed

5 files changed

+322
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright 2025 Adobe
5+
* All Rights Reserved.
6+
*/
7+
-->
8+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
10+
<actionGroup name="AdminConfigureWidgetWithSpecificProductsActionGroup">
11+
<annotations>
12+
<description>Create and configure a widget with specific products by selecting display type, container, and products via chooser.</description>
13+
</annotations>
14+
<arguments>
15+
<argument name="widget" type="entity" defaultValue="SampleCatalogProductsListWidget"/>
16+
<argument name="productId" type="string"/>
17+
<argument name="widgetOptionsTitle" type="string" defaultValue="{{SampleCatalogProductsListWidget.widget_options_title}}"/>
18+
<argument name="productsPerPage" type="string" defaultValue="{{SampleCatalogProductsListWidget.products_per_page}}"/>
19+
<argument name="productsToDisplay" type="string" defaultValue="{{SampleCatalogProductsListWidget.products_to_display}}"/>
20+
</arguments>
21+
<!-- Navigate to new widget page and select type -->
22+
<amOnPage url="{{AdminNewWidgetPage.url}}" stepKey="amOnAdminNewWidgetPage"/>
23+
<selectOption selector="{{AdminNewWidgetSection.widgetType}}" userInput="{{widget.type}}" stepKey="setWidgetType"/>
24+
<selectOption selector="{{AdminNewWidgetSection.widgetDesignTheme}}" userInput="{{widget.design_theme}}" stepKey="setWidgetDesignTheme"/>
25+
<click selector="{{AdminNewWidgetSection.continue}}" stepKey="clickContinue"/>
26+
<waitForPageLoad stepKey="waitForContinue"/>
27+
<!-- Fill widget title and select store view -->
28+
<waitForElementVisible selector="{{AdminNewWidgetSection.widgetTitle}}" stepKey="waitForTitle"/>
29+
<fillField selector="{{AdminNewWidgetSection.widgetTitle}}" userInput="{{widget.name}}" stepKey="fillWidgetTitle"/>
30+
<selectOption selector="{{AdminNewWidgetSection.widgetStoreIds}}" userInput="{{widget.store_ids[0]}}" stepKey="setWidgetStoreIds"/>
31+
<!-- Configure widget layout updates -->
32+
<click selector="{{AdminNewWidgetSection.addLayoutUpdate}}" stepKey="clickAddLayoutUpdate"/>
33+
<waitForElementVisible selector="{{AdminNewWidgetSection.selectDisplayOn}}" stepKey="waitForLayoutUpdate"/>
34+
<selectOption selector="{{AdminNewWidgetSection.selectDisplayOn}}" userInput="{{widget.display_on}}" stepKey="setDisplayOn"/>
35+
<waitForPageLoad stepKey="waitForLoad"/>
36+
<!-- Select container for configurable products -->
37+
<waitForElementVisible selector="{{AdminNewWidgetSection.configurableProductsContainer}}" stepKey="waitForContainerDropdown"/>
38+
<selectOption selector="{{AdminNewWidgetSection.configurableProductsContainer}}" userInput="{{widget.container}}" stepKey="setContainer"/>
39+
<waitForPageLoad stepKey="waitForPageLoad"/>
40+
<!-- Select Specific Products -->
41+
<waitForElementVisible selector="{{AdminNewWidgetSection.specificConfigurableProductsRadio}}" stepKey="waitForProductsRadio"/>
42+
<click selector="{{AdminNewWidgetSection.specificConfigurableProductsRadio}}" stepKey="selectSpecificProducts"/>
43+
<waitForElementVisible selector="{{AdminNewWidgetSection.configurableProductsChooser}}" stepKey="waitForChooserButton"/>
44+
<!-- Open product chooser and select product -->
45+
<click selector="{{AdminNewWidgetSection.configurableProductsChooser}}" stepKey="clickOpenChooser"/>
46+
<waitForElementVisible selector="{{AdminNewWidgetSection.chooserProductIdFilter}}" stepKey="waitForChooserGrid"/>
47+
<fillField selector="{{AdminNewWidgetSection.chooserProductIdFilter}}" userInput="{{productId}}" stepKey="fillProductIdInFilter"/>
48+
<click selector="{{AdminNewWidgetSection.chooserSearchButton}}" stepKey="clickSearchInChooser"/>
49+
<waitForPageLoad stepKey="waitForSearchResults"/>
50+
<click selector="{{AdminNewWidgetSection.chooserProductCheckboxById(productId)}}" stepKey="selectProduct1InChooser"/>
51+
<waitForPageLoad stepKey="waitAfterProductSelection"/>
52+
<!-- Configure widget options -->
53+
<scrollToTopOfPage stepKey="scrollToTopOfPage"/>
54+
<click selector="{{AdminNewWidgetSection.widgetOptions}}" stepKey="clickWidgetOptions"/>
55+
<waitForElementVisible selector="{{AdminNewWidgetSection.title}}" stepKey="waitForWidgetOptionsSection"/>
56+
<fillField selector="{{AdminNewWidgetSection.title}}" userInput="{{widgetOptionsTitle}}" stepKey="setWidgetOptionsTitle"/>
57+
<fillField selector="{{AdminNewWidgetSection.numberOfProductsPerPage}}" userInput="{{productsPerPage}}" stepKey="setNumberOfProductsPerPage"/>
58+
<fillField selector="{{AdminNewWidgetSection.numberOfProductsToDisplay}}" userInput="{{productsToDisplay}}" stepKey="setNumberOfProductsToDisplay"/>
59+
</actionGroup>
60+
</actionGroups>
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright 2025 Adobe
5+
* All Rights Reserved.
6+
*/
7+
-->
8+
<entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:DataGenerator/etc/dataProfileSchema.xsd">
10+
<!-- Dropdown Size Attribute -->
11+
<entity name="DropdownSizeAttributeData" type="attribute">
12+
<data key="frontend_label">my size</data>
13+
<data key="attribute_code">my_size</data>
14+
<data key="attribute_type">Dropdown</data>
15+
<data key="scope">Global</data>
16+
</entity>
17+
<!-- Text Swatch Color Attribute -->
18+
<entity name="TextSwatchColorAttributeData" type="attribute">
19+
<data key="frontend_label">color1</data>
20+
<data key="attribute_code">color_swatch</data>
21+
<data key="attribute_type">swatch_text</data>
22+
<data key="scope">Global</data>
23+
</entity>
24+
<!-- Size Options -->
25+
<entity name="AttributeOptionSmall" type="option">
26+
<data key="value">Small</data>
27+
</entity>
28+
<entity name="AttributeOptionMedium" type="option">
29+
<data key="value">Medium</data>
30+
</entity>
31+
<entity name="AttributeOptionLarge" type="option">
32+
<data key="value">Large</data>
33+
</entity>
34+
<!-- Color Options -->
35+
<entity name="AttributeOptionBlack" type="option">
36+
<data key="value">Black</data>
37+
</entity>
38+
<entity name="AttributeOptionWhite" type="option">
39+
<data key="value">White</data>
40+
</entity>
41+
<entity name="AttributeOptionBlue" type="option">
42+
<data key="value">Blue</data>
43+
</entity>
44+
<!-- Attribute Display Values for product configuration -->
45+
<entity name="SizeAttributeDisplay" type="display">
46+
<data key="small">my size: Small</data>
47+
<data key="large">my size: Large</data>
48+
<data key="small_black">my size: Small, color1: Black</data>
49+
<data key="large_black">my size: Large, color1: Black</data>
50+
<data key="small_white">my size: Small, color1: White</data>
51+
<data key="large_white">my size: Large, color1: White</data>
52+
</entity>
53+
</entities>
54+

app/code/Magento/Widget/Test/Mftf/Data/WidgetData.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,18 @@
3434
<data key="container">Main Content Area</data>
3535
<data key="display_on">All Pages</data>
3636
</entity>
37+
<entity name="SampleCatalogProductsListWidget" type="widget">
38+
<data key="type">Catalog Products List</data>
39+
<data key="design_theme">Magento Luma</data>
40+
<data key="name" unique="suffix">Catalog Products List</data>
41+
<array key="store_ids">
42+
<item>All Store Views</item>
43+
</array>
44+
<data key="sort_order">0</data>
45+
<data key="display_on">Configurable Product</data>
46+
<data key="container">Main Content Area</data>
47+
<data key="widget_options_title">Catalog Products List</data>
48+
<data key="products_per_page">1</data>
49+
<data key="products_to_display">1</data>
50+
</entity>
3751
</entities>

app/code/Magento/Widget/Test/Mftf/Section/AdminNewWidgetSection.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,19 @@
4949
<element name="specificEntitySelectContainer" type="select" selector="select[name='widget_instance[0][anchor_categories][block]']"/>
5050
<element name="specificEntitySelectRadio" type="input" selector="#specific_anchor_categories_0"/>
5151
<element name="specificEntityOptionsChooser" type="button" selector="#anchor_categories_ids_0 .widget-option-chooser"/>
52+
<element name="specificConfigurableProductsRadio" type="input" selector="//input[@type='radio' and @value='specific' and contains(@name, '[configurable_products][for]')]"/>
53+
<element name="configurableProductsContainer" type="select" selector="//select[contains(@name, '[configurable_products][block]')]"/>
54+
<element name="configurableProductsChooser" type="button" selector="//div[contains(@id, 'configurable_products_ids')]//a[@class='widget-option-chooser']"/>
55+
<element name="chooserProductIdFilter" type="input" selector="//input[@name='entity_id' and contains(@id, 'filter_entity_id')]"/>
56+
<element name="chooserSearchButton" type="button" selector="//button[@title='Search' and @data-action='grid-filter-apply']"/>
57+
<element name="chooserProductCheckboxById" type="checkbox" selector="//input[@type='checkbox' and @name='in_products' and @id='id_{{productId}}']" parameterized="true"/>
5258
<element name="widgetInstanceType" type="select" selector=".admin__field-control select#instance_code" />
5359
<element name="expandJsTree" type="button" selector="//*[@class='chooser']/div/ul/li/i[@role='presentation']"/>
5460
<element name="jsTreeAnchorCheckbox" type="select" selector="//*[@class='chooser']/div/ul[@role='presentation']/li/ul[@role='group']/li/a/i[@class='jstree-icon jstree-checkbox']"/>
5561
<!-- Catalog Product List Widget Options -->
5662
<element name="title" type="input" selector="[name='parameters[title]']"/>
5763
<element name="displayPageControl" type="select" selector="[name='parameters[show_pager]']"/>
64+
<element name="numberOfProductsPerPage" type="input" selector="[name='parameters[products_per_page]']"/>
5865
<element name="numberOfProductsToDisplay" type="input" selector="[name='parameters[products_count]']"/>
5966
<element name="template" type="select" selector="[name='parameters[template]']"/>
6067
<element name="cacheLifetime" type="input" selector="[name='parameters[cache_lifetime]']"/>

0 commit comments

Comments
 (0)