Skip to content

Commit 51167f0

Browse files
committed
PB-179: Product Content Type Inner Contents Should Not Align Based On Alignment Configuration
- add tests coverage for Catalog Products List widget inner contents alignment
1 parent ff72ac1 commit 51167f0

File tree

5 files changed

+136
-0
lines changed

5 files changed

+136
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
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="addCategoryProductsListWidgetToTinyMCE">
11+
<arguments>
12+
<argument name="widget" defaultValue="TinyMCEWidgetCategoryProductsList"/>
13+
<argument name="page" defaultValue=""/>
14+
<argument name="productsCount" type="string" defaultValue="1"/>
15+
<argument name="condition" type="string" defaultValue="Category"/>
16+
<argument name="category" type="string" defaultValue=""/>
17+
<argument name="index" type="string" defaultValue="1"/>
18+
</arguments>
19+
<!-- Adding Category Products List Widget To Tiny MCE -->
20+
<waitForElementVisible selector="{{TinyMCESection.InsertWidgetIcon}}" stepKey="waitForInsertWidgetIcon"/>
21+
<click selector="{{TinyMCESection.InsertWidgetIcon}}" stepKey="clickInsertWidgetBtn"/>
22+
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear"/>
23+
<waitForElementVisible selector="{{WidgetSection.WidgetType}}" stepKey="waitForWidgetType"/>
24+
<selectOption selector="{{WidgetSection.WidgetType}}" userInput="{{widget.widgetType}}" stepKey="selectCatalogProductsListWidget"/>
25+
<waitForLoadingMaskToDisappear stepKey="waitForWidgetOptions"/>
26+
<waitForElementVisible selector="{{WidgetSection.NoOfProductToDisplay}}" stepKey="waitForNumberOfProductsToDisplayInput"/>
27+
<fillField selector="{{WidgetSection.NoOfProductToDisplay}}" userInput="{{productsCount}}" stepKey="fillNoOfProduct"/>
28+
<waitForLoadingMaskToDisappear stepKey="waitForSelectTemplate"/>
29+
<selectOption selector="{{WidgetSection.WidgetTemplate}}" userInput="{{widget.widgetTemplate}}" stepKey="selectTemplate"/>
30+
<click selector="{{WidgetSection.AddParam}}" stepKey="clickAddConditionsParam"/>
31+
<waitForElementVisible selector="{{WidgetSection.ConditionsDropdown}}" stepKey="waitForConditionsDropdownVisible"/>
32+
<selectOption selector="{{WidgetSection.ConditionsDropdown}}" userInput="{{condition}}" stepKey="selectCondition"/>
33+
<waitForLoadingMaskToDisappear stepKey="waitForRuleParam"/>
34+
<click selector="{{WidgetSection.RuleParam}}" stepKey="clickRuleParam"/>
35+
<waitForElementVisible selector="{{WidgetSection.Chooser}}" stepKey="waitForRuleParamChooser"/>
36+
<click selector="{{WidgetSection.Chooser}}" stepKey="clickChooser"/>
37+
<waitForLoadingMaskToDisappear stepKey="waitForCategoryField"/>
38+
<click selector="{{WidgetSection.PreCreateCategory(category)}}" stepKey="selectPreCategory"/>
39+
<click selector="{{WidgetSection.InsertWidget}}" stepKey="saveWidgetOptions"/>
40+
<waitForLoadingMaskToDisappear stepKey="waitForInsertWidgetModalToClose"/>
41+
<waitForElementNotVisible selector="{{WidgetSection.InsertWidget}}" stepKey="waitForInsertWidgetModalNotVisible"/>
42+
<waitForElementVisible selector="{{page.text(index, widget.editPanelValue)}}" stepKey="waitForWidgetVisible"/>
43+
</actionGroup>
44+
</actionGroups>

app/code/Magento/PageBuilder/Test/Mftf/Data/TextData.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,11 @@
7474
<data key="editPanelValue">{{widget type="Magento\Cms\Block\Widget\Page\Link" template="widget/link/link_block.phtml" page_id="2" type_name="CMS Page Link"}}</data>
7575
<data key="identifier">home</data>
7676
</entity>
77+
<entity name="TinyMCEWidgetCategoryProductsList" type="pagebuilder_text_widget_property">
78+
<data key="widgetType">Magento\CatalogWidget\Block\Product\ProductsList</data>
79+
<data key="editPanelValue">Catalog Products List</data>
80+
<data key="widgetTemplate">Products Grid Template</data>
81+
</entity>
7782
<entity name="PageBuilderVariableWidgetText" type="pagebuilder_text_property">
7883
<data key="value">test string</data>
7984
<data key="expectedString1">test str</data>

app/code/Magento/PageBuilder/Test/Mftf/Section/PageBuilderProductsSection/ProductsOnStorefrontSection.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
<element name="notHidden" type="text" parameterized="true" selector="(//div[contains(@data-content-type,'products')])[{{indexOfProductGroup}}][not(contains(@style, 'display: none'))]"/>
1515
<element name="product" type="text" parameterized="true" selector="(//div[contains(@data-content-type,'products')])[{{indexOfProductGroup}}]//ol//li[contains(@class,'product-item')]"/>
1616
<element name="productJS" type="text" selector="document.querySelectorAll('div[data-content-type=products] ol li.product-item')[{{indexOfProductItem}} - 1]" parameterized="true"/>
17+
<element name="productWidgetJS" type="text" selector="document.querySelectorAll('div[data-content-type=row]')[{{indexOfRow}}-1].querySelectorAll('.block.widget li.product-item')[{{indexOfProductItem}} - 1]" parameterized="true"/>
1718
<element name="productsInCarouselNotClonedBySlick" type="text" parameterized="true" selector="(//div[contains(@data-content-type,'products')])[{{indexOfProductGroup}}]//ol//div[contains(@class,'slick-slide') and not(contains(@class,'slick-cloned'))]//li[contains(@class,'product-item')]"/>
1819
<element name="productsInCarouselNotClonedBySlickJS" type="text" parameterized="true" selector="(document.querySelectorAll('div[data-content-type=products]')[{{indexOfProductGroup}} - 1]).querySelector('ol div.slick-slide:not(.slick-cloned) li.product-item')"/>
1920
<element name="productByIndex" type="text" parameterized="true" selector="((//div[contains(@data-content-type,'products')])[{{indexOfProductGroup}}]//ol//li[contains(@class,'product-item')])[{{indexOfProductItem}}]"/>

app/code/Magento/PageBuilder/Test/Mftf/Section/PageBuilderTextSection/TextOnStageSection.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
<element name="mcePlaceholder" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]/div//*[starts-with(@id, '{{arg2}}')]" parameterized="true"/>
2323
<element name="variablePlaceholder" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg}}]/div//*[contains(@class, 'magento-variable') and contains(@class, 'magento-placeholder')]" parameterized="true"/>
2424
<element name="widgetPlaceholder" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg}}]/div//*[contains(@class, 'magento-placeholder') and contains(@class, 'magento-widget')]" parameterized="true"/>
25+
<element name="widgetPlaceholderJS" type="text" selector="(document.querySelectorAll('div.pagebuilder-text')[{{indexOfText}} - 1]).querySelector('.magento-placeholder.magento-widget')" parameterized="true"/>
2526
<element name="placeholder" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]//div[contains(@class, 'placeholder-text') and text()='Edit Text']" parameterized="true"/>
2627
<element name="textArea" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg}}]//textarea[contains(@class,'inline-wysiwyg-textarea')]" parameterized="true"/>
2728
<element name="textareaPlaceholder" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]//textarea[contains(@class, 'inline-wysiwyg-textarea') and contains(@placeholder,'Edit Text')]" parameterized="true"/>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
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="TextInlineVerifyWidgetWithCatalogProductsListInnerContentAlignmentTest">
11+
<annotations>
12+
<features value="PageBuilder"/>
13+
<stories value="Text"/>
14+
<title value="Verify catalog products list widget inner content aligns correctly and see on storefront"/>
15+
<description value="Verify that user sees catalog products list widget inner content aligns correctly in Text Content Type and see it on storefront"/>
16+
<severity value="AVERAGE"/>
17+
<useCaseId value="PB-179"/>
18+
<testCaseId value="MC-33065"/>
19+
<group value="pagebuilder"/>
20+
<group value="pagebuilder-text"/>
21+
</annotations>
22+
<before>
23+
<magentoCLI command="config:set cms/wysiwyg/editor mage/adminhtml/wysiwyg/tiny_mce/tinymce4Adapter" stepKey="enableTinyMCE4_1"/>
24+
<createData entity="_defaultCategory" stepKey="createCategory"/>
25+
<createData entity="_defaultProduct" stepKey="createProduct">
26+
<requiredEntity createDataKey="createCategory"/>
27+
</createData>
28+
<createData entity="_emptyCmsPage" stepKey="createCMSPage"/>
29+
<actionGroup ref="LoginAsAdmin" stepKey="loginAsAdmin"/>
30+
<actionGroup ref="NavigateToCreatedCMSPageActionGroup" stepKey="navigateToCreatedCMSPage">
31+
<argument name="CMSPage" value="$$createCMSPage$$"/>
32+
</actionGroup>
33+
<actionGroup ref="switchToPageBuilderStage" stepKey="switchToPageBuilderStage"/>
34+
</before>
35+
<after>
36+
<deleteData createDataKey="createProduct" stepKey="deleteProduct"/>
37+
<deleteData createDataKey="createCategory" stepKey="deleteCategory"/>
38+
<deleteData createDataKey="createCMSPage" stepKey="deleteCMSPage"/>
39+
<actionGroup ref="logout" stepKey="logoutOfAdmin"/>
40+
</after>
41+
<!-- Add Category Products List widget to TinyMCE -->
42+
<actionGroup ref="expandPageBuilderPanelMenuSection" stepKey="expandPageBuilderPanelMenuSection">
43+
<argument name="contentType" value="PageBuilderTextContentType"/>
44+
</actionGroup>
45+
<actionGroup ref="dragContentTypeToStage" stepKey="dragTextOntoStage">
46+
<argument name="contentType" value="PageBuilderTextContentType"/>
47+
</actionGroup>
48+
<actionGroup ref="focusOnInlineTinyMCEEditor" stepKey="focusOnInlineTinyMCEEditor">
49+
<argument name="section" value="TextOnStage"/>
50+
</actionGroup>
51+
<actionGroup ref="addCategoryProductsListWidgetToTinyMCE" stepKey="addCategoryProductsListWidgetToTinyMCE">
52+
<argument name="widget" value="TinyMCEWidgetCategoryProductsList"/>
53+
<argument name="page" value="TextOnStage"/>
54+
<argument name="category" value="$$createCategory.name$$"/>
55+
</actionGroup>
56+
<!-- Set Alignment on Catalog Products List Widget -->
57+
<actionGroup ref="unFocusOptionMenu" stepKey="unFocusEditor">
58+
<argument name="contentType" value="PageBuilderTextContentType"/>
59+
</actionGroup>
60+
<actionGroup ref="openPageBuilderEditPanel" stepKey="openEditMenuOnStage">
61+
<argument name="contentType" value="PageBuilderTextContentType"/>
62+
</actionGroup>
63+
<actionGroup ref="chooseVisualSelectOption" stepKey="enterAlignment">
64+
<argument name="property" value="PageBuilderAdvancedAlignmentPropertyRight"/>
65+
</actionGroup>
66+
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings"/>
67+
<actionGroup ref="SaveAndContinueEditCmsPageActionGroup" stepKey="saveAndContinueEditCmsPage"/>
68+
<actionGroup ref="switchToPageBuilderStage" stepKey="switchToPageBuilderStage"/>
69+
<!-- Validate Catalog Products List Widget Placeholder Stays Aligned Right -->
70+
<executeJS function="return window.getComputedStyle({{TextOnStage.widgetPlaceholderJS('1')}}).textAlign" stepKey="grabComputedTextAlign"/>
71+
<assertEquals stepKey="assertComputedTextAlign">
72+
<expectedResult type="string">{{PageBuilderAdvancedAlignmentPropertyRight.value}}</expectedResult>
73+
<actualResult type="variable">grabComputedTextAlign</actualResult>
74+
</assertEquals>
75+
<actionGroup ref="NavigateToStorefrontForCreatedPageActionGroup" stepKey="navigateToStorefront">
76+
<argument name="page" value="$$createCMSPage.identifier$$"/>
77+
</actionGroup>
78+
<!-- Validate Product Item Inner Contents Stay Aligned Left Storefront -->
79+
<executeJS function="return window.getComputedStyle({{ProductsOnStorefront.productWidgetJS('1','1')}}).textAlign" stepKey="grabComputedTextAlignStorefront"/>
80+
<assertEquals stepKey="assertComputedTextAlignStorefront">
81+
<expectedResult type="string">{{PageBuilderAdvancedAlignmentPropertyLeft.value}}</expectedResult>
82+
<actualResult type="variable">grabComputedTextAlignStorefront</actualResult>
83+
</assertEquals>
84+
</test>
85+
</tests>

0 commit comments

Comments
 (0)