Skip to content

Commit 126621f

Browse files
committed
MC-3329: Add Missing P0-P1 MFTF Tests For PageBuilder On Catalog Product (Description, Short Description, Attribute)
- Adding smoke tests for pagebuilder in catalog products - Deleting unused actiongroups - Adding/updating supporting actiongroups, data, sections
1 parent deba658 commit 126621f

16 files changed

+1418
-61
lines changed

app/code/Magento/PageBuilder/Test/Mftf/ActionGroup/AdminActionGroup.xml

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,6 @@
1313
<amOnPage url="{{PageBuilderCmsPage.url}}" stepKey="amOnPageBuilderPage"/>
1414
<waitForPageLoad stepKey="waitForPageLoad"/>
1515
</actionGroup>
16-
<actionGroup name="searchAndViewCmsPage">
17-
<arguments>
18-
<argument name="contentType"/>
19-
</arguments>
20-
<amOnPage url="{{CmsPagesPage.url}}" stepKey="onCmsPagesPageActionsSection"/>
21-
<waitForPageLoad stepKey="waitForCmsPagesGridLoad"/>
22-
<click selector="{{CmsPagesPageActionsSection.filterButton}}" stepKey="clickFiltersBtn" />
23-
<fillField selector="{{CmsPagesPageActionsSection.URLKey}}" userInput="{{contentType.name}}{{PageBuilderPageTitle.pageName}}" stepKey="fillOutURLKey" />
24-
<click selector="{{CmsPagesPageActionsSection.ApplyFiltersBtn}}" stepKey="clickApplyBtn" />
25-
<waitForPageLoad stepKey="waitForSearchResults" />
26-
<waitForElementVisible selector="{{CmsPagesPageActionsSection.firstItemSelectButton}}" stepKey="waitForFirstItemButton" />
27-
<click selector="{{CmsPagesPageActionsSection.firstItemSelectButton}}" stepKey="clickSelectButtonOnFirstItem"/>
28-
<waitForElementVisible selector="{{CmsPagesPageActionsSection.firstItemEditButton}}" stepKey="waitForFirstItemEditButton"/>
29-
<click selector="{{CmsPagesPageActionsSection.firstItemEditButton}}" stepKey="clickSelectEditOnFirstItem"/>
30-
<waitForPageLoad stepKey="waitForEditCmsPage"/>
31-
</actionGroup>
3216
<actionGroup name="addPageBuilderPageTitle">
3317
<arguments>
3418
<argument name="contentType"/>
@@ -49,13 +33,15 @@
4933
<waitForElementVisible time="30" selector="{{RowOnStage.base(rowIndex)}}" stepKey="waitForPageBuilderRow"/>
5034
</actionGroup>
5135
<actionGroup name="saveAndContinueEditCmsPage">
36+
<!-- This goes in CE repo -->
5237
<waitForElementVisible time="10" selector="{{CmsNewPagePageActionsSection.saveAndContinueEdit}}" stepKey="waitForSaveAndContinueVisibility"/>
5338
<click selector="{{CmsNewPagePageActionsSection.saveAndContinueEdit}}" stepKey="clickSaveAndContinueEditCmsPage"/>
5439
<waitForPageLoad stepKey="waitForCmsPageLoad"/>
5540
<waitForElementVisible time="1" selector="{{CmsNewPagePageActionsSection.cmsPageTitle}}" stepKey="waitForCmsPageSaveButton"/>
5641
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMask"/>
5742
</actionGroup>
5843
<actionGroup name="saveCmsPage">
44+
<!-- This goes in CE repo -->
5945
<waitForElementVisible selector="{{CmsNewPagePageActionsSection.expandSplitButton}}" stepKey="waitForSplitButton"/>
6046
<click selector="{{CmsNewPagePageActionsSection.expandSplitButton}}" stepKey="expandSplitButton"/>
6147
<waitForElementVisible selector="{{CmsNewPagePageActionsSection.savePage}}" stepKey="waitForSaveCmsPage"/>
@@ -77,6 +63,7 @@
7763
<dontSee selector="{{PageBuilderPanel.layoutGroup}}" stepKey="seePageBuilderVisible"/>
7864
</actionGroup>
7965
<actionGroup name="setLayout">
66+
<!-- This goes in CE repo -->
8067
<arguments>
8168
<argument name="designSection"/>
8269
<argument name="layoutOption"/>
@@ -102,11 +89,4 @@
10289
<actualResult type="variable">rowWidth</actualResult>
10390
</assertGreaterThan>
10491
</actionGroup>
105-
<actionGroup name="openPageBuilderOnCatalog">
106-
<click selector="{{PageBuilderCatalog.openPageBuilder}}" stepKey="clickOnPageBuilderBtn" />
107-
<!--See PageBuilder fullsize-->
108-
<comment userInput="See PageBuilder fullsize" stepKey="commentSeePageBuilderFullsize"/>
109-
<waitForElementVisible selector="{{PageBuilderPanel.layoutGroup}}" stepKey="waiForPageBuilderVisible" />
110-
<seeElement selector="{{PageBuilderStage.stageWrapperFullScreen}}" stepKey="seePageBuilderFullSizeScreen" />
111-
</actionGroup>
11292
</actionGroups>

app/code/Magento/PageBuilder/Test/Mftf/ActionGroup/CatalogProductActionGroup.xml

Lines changed: 43 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,51 @@
1010
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
1111
<actionGroup name="openPageBuilderForAttribute">
1212
<arguments>
13-
<argument name="attributeCode" type="string"/>
13+
<argument name="attributeCode" defaultValue="description" type="string"/>
1414
<argument name="section" defaultValue="PageBuilderProductAttribute"/>
1515
</arguments>
16-
<!-- Opening Page Builder for attribute -->
1716
<comment userInput="Opening Page Builder for attribute" stepKey="commentOpeningPageBuilder"/>
18-
<waitForElementVisible selector="{{section.PageBuilderBtn(attributeCode)}}" stepKey="seePagebuilderBtn"/>
19-
<click selector="{{section.PageBuilderBtn(attributeCode)}}" stepKey="enablePageBuilder"/>
20-
<waitForElementVisible selector="{{PageBuilderPanel.layoutGroup}}" stepKey="waiForPageBuilderVisible" />
17+
<waitForElementVisible selector="{{section.PageBuilderBtn(attributeCode)}}" stepKey="waitForPageBuilderButton"/>
18+
<click selector="{{section.PageBuilderBtn(attributeCode)}}" stepKey="clickOpenPageBuilder"/>
19+
<waitForPageLoad stepKey="waitForPageBuilderToOpen"/>
20+
<waitForElementVisible selector="{{PageBuilderPanel.layoutGroup}}" stepKey="waiForPageBuilderVisible"/>
21+
</actionGroup>
22+
<actionGroup name="expandAdminProductSection">
23+
<!-- This goes in CE repo -->
24+
<arguments>
25+
<argument name="sectionSelector" defaultValue="{{AdminProductContentSection.sectionHeader}}" type="string"/>
26+
<argument name="sectionDependentSelector" defaultValue="{{AdminProductContentSection.sectionHeader}}._show" type="string"/>
27+
</arguments>
28+
<waitForElementVisible time="30" selector="{{sectionSelector}}" stepKey="waitForSection"/>
29+
<conditionalClick selector="{{sectionSelector}}" dependentSelector="{{sectionDependentSelector}}" visible="false" stepKey="expandSection"/>
30+
<waitForPageLoad time="30" stepKey="waitForSectionToExpand"/>
31+
</actionGroup>
32+
<actionGroup name="navigateToCreatedProductEditPage">
33+
<!-- This goes in CE repo -->
34+
<arguments>
35+
<argument name="product" defaultValue="_defaultProduct"/>
36+
</arguments>
37+
<amOnPage url="{{AdminProductIndexPage.url}}" stepKey="goToAdminProductIndexPage"/>
38+
<waitForPageLoad stepKey="waitForProductIndexPageToLoad"/>
39+
<conditionalClick selector="{{AdminProductGridFilterSection.clearFilters}}" dependentSelector="{{AdminProductGridFilterSection.clearFilters}}" visible="true" stepKey="clickClearFilters"/>
40+
<waitForPageLoad stepKey="waitForClearFilters"/>
41+
<dontSeeElement selector="{{AdminProductGridFilterSection.clearFilters}}" stepKey="dontSeeClearFilters"/>
42+
<click selector="{{AdminProductGridFilterSection.viewDropdown}}" stepKey="openViewBookmarksTab"/>
43+
<click selector="{{AdminProductGridFilterSection.viewBookmark('Default View')}}" stepKey="resetToDefaultGridView"/>
44+
<waitForPageLoad stepKey="waitForResetToDefaultView"/>
45+
<see selector="{{AdminProductGridFilterSection.viewDropdown}}" userInput="Default View" stepKey="seeDefaultViewSelected"/>
46+
<click selector="{{AdminProductGridFilterSection.filters}}" stepKey="openProductFilters"/>
47+
<fillField selector="{{AdminProductGridFilterSection.skuFilter}}" userInput="{{product.sku}}" stepKey="fillProductSkuFilter"/>
48+
<click selector="{{AdminProductGridFilterSection.applyFilters}}" stepKey="clickApplyFilters"/>
49+
<waitForPageLoad stepKey="waitForFilterOnGrid"/>
50+
<click selector="{{AdminProductGridSection.selectRowBasedOnName(product.name)}}" stepKey="clickProduct"/>
51+
<waitForPageLoad stepKey="waitForProductEditPageLoad"/>
52+
<waitForElementVisible selector="{{AdminProductFormBundleSection.productSku}}" stepKey="waitForProductSKUField"/>
53+
<seeInField selector="{{AdminProductFormBundleSection.productSku}}" userInput="{{product.sku}}" stepKey="seeProductSKU"/>
54+
</actionGroup>
55+
<actionGroup name="NavigateToAndResetProductGridToDefaultView" extends="resetProductGridToDefaultView">
56+
<!-- This goes in CE repo -->
57+
<amOnPage url="{{AdminProductIndexPage.url}}" before="clickClearFilters" stepKey="goToAdminProductIndexPage"/>
58+
<waitForPageLoad after="goToAdminProductIndexPage" stepKey="waitForProductIndexPageToLoad"/>
2159
</actionGroup>
2260
</actionGroups>

app/code/Magento/PageBuilder/Test/Mftf/ActionGroup/ContentTypeSliderActionGroup.xml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@
1010
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
1111
<actionGroup name="switchSlide">
1212
<arguments>
13-
<argument name="section" defaultValue="SliderOnFrontend"/>
14-
<argument name="index" defaultValue="2" type="string"/>
13+
<argument name="sliderSection" defaultValue="SliderOnStage"/>
14+
<argument name="slideSection" defaultValue="SlideOnBackend"/>
15+
<argument name="sliderIndex" defaultValue="1" type="string"/>
16+
<argument name="slideIndex" defaultValue="1" type="string"/>
1517
</arguments>
16-
<waitForElementVisible selector="{{SliderOnFrontend.slideNavigator(index)}}" stepKey="waitForSliderButton"/>
17-
<click selector="{{SliderOnFrontend.slideNavigator(index)}}" stepKey="clickSliderButton"/>
18-
<waitForPageLoad stepKey="waitForPageLoad"/>
19-
<waitForElementVisible selector="{{SlideOnFrontend.slide(index)}}" stepKey="waitForSlide"/>
18+
<waitForElementVisible selector="{{sliderSection.slideNavigationDot(sliderIndex, slideIndex)}}" stepKey="waitForSlideNavigationDot"/>
19+
<click selector="{{sliderSection.slideNavigationDot(sliderIndex, slideIndex)}}" stepKey="clickSlideNavigationDot"/>
20+
<waitForPageLoad stepKey="waitForAnimation"/>
21+
<waitForElementVisible selector="{{slideSection.base(slideIndex)}}" stepKey="waitForSlide"/>
2022
</actionGroup>
2123
<actionGroup name="unfocusSlideOptions">
2224
<click selector="{{PageBuilderPanel.searchPanel}}" stepKey="clickOutsideLiveEdit"/>

app/code/Magento/PageBuilder/Test/Mftf/ActionGroup/ContentTypeTabsActionGroup.xml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,35 @@
2020
<assertElementContainsAttribute selector="{{section.tabPanel(from)}}" attribute="aria-hidden" expectedValue="true" stepKey="assertOldTabHidden"/>
2121
<assertElementContainsAttribute selector="{{section.tabPanel(to)}}" attribute="aria-hidden" expectedValue="false" stepKey="assertNewTabVisible"/>
2222
</actionGroup>
23+
<actionGroup name="inlineEditTabItemName">
24+
<arguments>
25+
<argument name="tabName" defaultValue="{{PageBuilderTabNameRandom1.value}}" type="string"/>
26+
<argument name="index" defaultValue="1" type="string"/>
27+
<argument name="pageBuilderArea" defaultValue="" type="string"/>
28+
</arguments>
29+
<comment userInput="inlineEditTabItemName" stepKey="comment"/>
30+
<waitForElementVisible selector="{{TabOnStage.tabHeaderEditableTitle(index)}}" stepKey="waitForTabHeaderVisible"/>
31+
<pressKey selector="{{TabOnStage.tabHeaderEditableTitle(index)}}" userInput="{{tabName}}" stepKey="enterTabName"/>
32+
<see selector="{{TabOnStage.tabHeader(index)}}" userInput="{{tabName}}" stepKey="seeTabName"/>
33+
<click selector="{{pageBuilderArea}}{{PageBuilderPanel.searchPanel}}" stepKey="unFocusLiveEdit"/>
34+
<waitForPageLoad stepKey="waitForUnFocus"/>
35+
</actionGroup>
36+
<actionGroup name="moveTabItem">
37+
<arguments>
38+
<argument name="x" defaultValue="null" type="string"/>
39+
<argument name="y" defaultValue="null" type="string"/>
40+
<argument name="tabGroupIndex" defaultValue="1" type="string"/>
41+
<argument name="tabItemIndexToMove" defaultValue="1" type="string"/>
42+
<argument name="tabItemIndexToMoveTo" defaultValue="2" type="string"/>
43+
</arguments>
44+
<comment userInput="moveTabItem" stepKey="comment"/>
45+
<waitForElementVisible selector="{{TabOnStage.tabHeader(tabItemIndexToMove)}}" stepKey="waitForTabItem1"/>
46+
<click selector="{{TabOnStage.tabHeader(tabItemIndexToMove)}}" stepKey="clickTabItem1"/>
47+
<waitForPageLoad stepKey="waitForPageLoad1"/>
48+
<!-- Note MFTF Bug: MQE-1185. We cannot reliably use offsets and therefore, dropping to index x will result in an actual drop of index x-1 -->
49+
<!-- Once bug is fixed, we need to add executeJS to calculate width & height of tab item to determine default offsets -->
50+
<dragAndDrop selector1="{{TabOnStage.moveHandle(tabGroupIndex, tabItemIndexToMove)}}" selector2="{{TabOnStage.tabHeader(tabItemIndexToMoveTo)}}" x="{{x}}" y="{{y}}" stepKey="dragAndDropTabItem"/>
51+
<waitForPageLoad stepKey="waitForPageLoad2"/>
52+
<waitForElementVisible selector="{{TabOnStage.tabHeader(tabItemIndexToMove)}}" stepKey="waitForTabItem2"/>
53+
</actionGroup>
2354
</actionGroups>

app/code/Magento/PageBuilder/Test/Mftf/ActionGroup/EditFormActionGroup.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@
5252
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMask"/>
5353
<waitForElementVisible time="5" selector="{{EditPanelForm.editFormSave}}" stepKey="waitForColumnSaveButton" />
5454
<click selector="{{EditPanelForm.editFormSave}}" stepKey="clickSaveColumn"/>
55-
<waitForElementNotVisible time="5" selector="{{EditPanelForm.editForm}}" stepKey="waitForEditFormNotVisible" />
5655
<waitForPageLoad stepKey="waitForSavePanelClose"/>
56+
<waitForElementNotVisible time="5" selector="{{EditPanelForm.editForm}}" stepKey="waitForEditFormNotVisible" />
5757
</actionGroup>
5858
<actionGroup name="expandConfigurationSection">
5959
<arguments>

app/code/Magento/PageBuilder/Test/Mftf/ActionGroup/StageActionGroup.xml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,19 @@
88

99
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
1010
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="openPageBuilderFullScreen">
12+
<waitForElementVisible selector="{{PageBuilderStage.openFullScreen}}" stepKey="waitForFullScreenButton"/>
13+
<click selector="{{PageBuilderStage.openFullScreen}}" stepKey="clickFullScreenButton"/>
14+
<waitForPageLoad stepKey="waitForFullScreenAnimation"/>
15+
<seeElement selector="{{PageBuilderStage.stageWrapperFullScreen}}" stepKey="seeStageFullScreen"/>
16+
<seeElement selector="{{PageBuilderStage.exitFullScreen}}" stepKey="seeExitFullScreenButton"/>
17+
</actionGroup>
18+
<actionGroup name="exitPageBuilderFullScreen">
19+
<waitForElementVisible selector="{{PageBuilderStage.exitFullScreen}}" stepKey="waitForExitPageBuilderFullScreenButton"/>
20+
<click selector="{{PageBuilderStage.exitFullScreen}}" stepKey="exitPageBuilderFullScreen"/>
21+
<waitForPageLoad stepKey="waitForExitFullScreen"/>
22+
<dontSeeElementInDOM selector="{{PageBuilderStage.exitFullScreen}}" stepKey="dontSeeExitPageBuilderFullScreenButton"/>
23+
</actionGroup>
1124
<actionGroup name="validateContentTypeHeightOnStage">
1225
<arguments>
1326
<argument name="contentType"/>

app/code/Magento/PageBuilder/Test/Mftf/ActionGroup/StorefrontActionGroup.xml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,12 @@
1515
<amOnPage url="{{contentType.pageNamePrefix}}{{PageBuilderPageTitle.pageName}}" stepKey="amOnStoreFrontPage"/>
1616
<waitForPageLoad time="30" stepKey="waitForPageLoad"/>
1717
</actionGroup>
18-
<actionGroup name="navigateToStorefrontForCreatedCMSPage">
18+
<actionGroup name="navigateToStorefrontForCreatedPage">
19+
<!-- This goes in CE repo -->
1920
<arguments>
20-
<argument name="CMSPage" type="string"/>
21+
<argument name="page" type="string"/>
2122
</arguments>
22-
<amOnPage url="{{CMSPage}}" stepKey="goToStorefront"/>
23+
<amOnPage url="{{page}}" stepKey="goToStorefront"/>
2324
<waitForPageLoad stepKey="waitForPageLoad"/>
2425
</actionGroup>
2526
<actionGroup name="validateContentTypeInsideContainerStorefront">

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@
1515
<data key="fieldName">tab_name</data>
1616
<data key="value">Tab 1</data>
1717
</entity>
18+
<entity name="PageBuilderTabName2Default" type="pagebuilder_tab_property">
19+
<data key="name">Tab Name</data>
20+
<data key="section">general</data>
21+
<data key="fieldName">tab_name</data>
22+
<data key="value">Tab 2</data>
23+
</entity>
1824
<entity name="PageBuilderTabNameRandom1" type="pagebuilder_tab_property">
1925
<data key="name">Tab Name</data>
2026
<data key="section">general</data>

app/code/Magento/PageBuilder/Test/Mftf/Section/PageBuilderRowSection.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
<element name="borderWidth" type="text" selector="(//div[@data-role='row'])[{{arg1}}][contains(@style,'border-width: {{arg2}}px;')]" parameterized="true"/>
7373
</section>
7474
<section name="RowOnStorefront">
75+
<element name="allRows" type="text" selector="div[data-role='row']"/>
7576
<element name="base" type="text" selector="(//div[@data-role='row'])[{{arg1}}]/div" parameterized="true"/>
7677
<element name="baseCSS" type="text" selector="[data-role=row]"/>
7778
<element name="baseJS" type="text" selector="document.querySelectorAll('[data-role=row] > div')[{{arg1}} - 1]" parameterized="true"/>

app/code/Magento/PageBuilder/Test/Mftf/Section/PageBuilderStageSection.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
<element name="inlineTextAreaEditor" type="button" selector="(//div[@data-role='{{arg1}}'])[{{arg2}}]//textarea[@class='inline-wysiwyg-textarea']" parameterized="true"/>
4343
</section>
4444
<section name="PageBuilderPanel">
45+
<element name="leftPanel" type="input" selector='#pagebuilder-panel'/>
4546
<element name="searchField" type="input" selector='//*[@id="pagebuilder-panel"]/div[1]/a'/>
4647
<element name="clearSearch" type="button" selector='//*[@id="pagebuilder-panel"]/div[1]/a'/>
4748
<element name="collapsePanel" type="button" selector='//div[contains(@class, "panel-controls")]//a[contains(@class, "collapse")]'/>

0 commit comments

Comments
 (0)