Skip to content

Commit 925a2a7

Browse files
committed
PB-365: Templates MFTF Test Coverage
- Adding MFTF tests for templates
1 parent 2dcfcea commit 925a2a7

File tree

7 files changed

+860
-127
lines changed

7 files changed

+860
-127
lines changed

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

Lines changed: 284 additions & 36 deletions
Large diffs are not rendered by default.

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,22 @@
1515
<entity name="PageBuilderTemplateNameRandom2" type="pagebuilder_template_name_property">
1616
<data key="name" unique="suffix">MFTF Second Template</data>
1717
</entity>
18+
<entity name="PageBuilderTemplateName_Sorting" type="pagebuilder_template_name_property">
19+
<data key="0">sorting_0</data>
20+
<data key="999">sorting_999</data>
21+
<data key="aaa">sorting_aaa</data>
22+
<data key="A">sorting_A</data>
23+
<data key="zzz">sorting_zzz</data>
24+
<data key="Z">sorting_Z</data>
25+
</entity>
26+
<entity name="PageBuilderTemplateName_EdgeCases" type="pagebuilder_template_name_property">
27+
<data key="empty"/>
28+
<data key="leadingSpace"> leadingSpaceTest</data>
29+
<data key="noLeadingSpace">leadingSpaceTest</data>
30+
<data key="0">0</data>
31+
<data key="commonCharacters">1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</data>
32+
<data key="specialCharacters">./;[]\-=&lt;&gt;?:"{}|_+!@#$%^&amp;*()`~Ω≈ç√∫˜µ≤≥÷åß∂ƒ©˙∆˚¬…æœ∑´®†¥¨ˆøπ“‘¡™£¢∞§¶•ªº–≠¸˛Ç◊ı˜Â¯˘¿ÅÍÎÏ˝ÓÔÒÚÆ☃Œ„´‰ˇÁ¨ˆØ∏”’`⁄€‹›fifl‡°·‚—±⅛⅜⅝⅞ЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя٠١٢٣٤٥٦٧٨٩ヽ</data>
33+
</entity>
1834
<!-- Template Created For -->
1935
<entity name="PageBuilderTemplateCreatedFor" type="pagebuilder_template_created_for_property">
2036
<data key="any">Any</data>
@@ -24,6 +40,14 @@
2440
<data key="block">Block</data>
2541
<data key="dynamicBlock">Dynamic Block</data>
2642
</entity>
43+
<!-- Template Grid -->
44+
<entity name="PageBuilderTemplateGridColumns" type="pagebuilder_template_grid_property">
45+
<data key="id">ID</data>
46+
<data key="previewImage">Preview Image</data>
47+
<data key="templateName">Template Name</data>
48+
<data key="createdFor">Created For</data>
49+
<data key="created">Created</data>
50+
</entity>
2751
<!-- User Roles -->
2852
<entity name="roleNoPageBuilderTemplates" type="user_role">
2953
<data key="name" unique="suffix">Role_Page_Builder_Templates_</data>

app/code/Magento/PageBuilder/Test/Mftf/Page/PageBuilderTemplatesGridPage.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<pages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
1010
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/PageObject.xsd">
1111
<page name="PageBuilderTemplatesGridPage" url="/pagebuilder/template" area="admin" module="Magento_PageBuilder">
12-
<section name="PageBuilderTemplatePageGrid"/>
12+
<section name="PageBuilderTemplatesGrid"/>
1313
<section name="PageBuilderDeleteTemplateConfirmationModal"/>
1414
</page>
1515
</pages>

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,4 +82,7 @@
8282
<element name="contentTypeRemoveByIndex" type="button" selector='(//div[contains(@class, "pagebuilder-content-type") and contains(@class, "pagebuilder-{{arg1}}")])[{{arg2}}]//div[contains(@class,"pagebuilder-options-visible")]//a[@title="Remove"]' parameterized="true"/>
8383
<element name="contentTypeRemoveDisabled" type="button" selector='.pagebuilder-options .remove-structural[title="Remove"].disabled'/>
8484
</section>
85+
<section name="AdminContentSection">
86+
<element name="container" type="text" selector="#container" timeout="10"/>
87+
</section>
8588
</sections>

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

Lines changed: 38 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,18 @@
1616
<element name="previewImage" type="text" selector="//aside[contains(@class,'template-manager-save') and contains(@class,'_show')]//*[@data-role='content']//form//img[@alt='Template Preview']"/>
1717
<element name="templateNameInput" type="text" selector="//aside[contains(@class,'template-manager-save') and contains(@class,'_show')]//*[@data-role='content']//form//input[@name='name']"/>
1818
<element name="createdForSelect" type="text" selector="//aside[contains(@class,'template-manager-save') and contains(@class,'_show')]//*[@data-role='content']//form//select[@name='created_for']"/>
19+
<element name="createdForOptions" type="text" selector="//aside[contains(@class,'template-manager-save') and contains(@class,'_show')]//*[@data-role='content']//form//select[@name='created_for']//option"/>
1920
<element name="createdForHelperText" type="text" selector="//aside[contains(@class,'template-manager-save') and contains(@class,'_show')]//*[@data-role='content']//form//select[@name='created_for']//..//..//span"/>
2021
<element name="saveButton" type="button" selector="//aside[contains(@class,'template-manager-save') and contains(@class,'_show')]//footer//button[contains(@class,'action-save')]//span[.='Save']"/>
2122
<element name="cancelButton" type="button" selector="//aside[contains(@class,'template-manager-save') and contains(@class,'_show')]//footer//button[contains(@class,'action-dismiss')]//span[.='Cancel']"/>
2223
</section>
24+
<section name="PageBuilderSaveTemplateErrorModal">
25+
<element name="modal" type="text" selector="//aside[contains(@class,'confirm') and contains(@class,'_show')]"/>
26+
<element name="title" type="text" selector="//aside[contains(@class,'confirm') and contains(@class,'_show')]//header//h1"/>
27+
<element name="closeButton" type="button" selector="//aside[contains(@class,'confirm') and contains(@class,'_show')]//header//button[contains(@class,'action-close')]"/>
28+
<element name="message" type="text" selector="//aside[contains(@class,'confirm') and contains(@class,'_show')]//*[@data-role='content']//*"/>
29+
<element name="okButton" type="button" selector="//aside[contains(@class,'confirm') and contains(@class,'_show')]//footer//button//span[.='OK']"/>
30+
</section>
2331
<section name="PageBuilderSaveTemplateConfirmationModal">
2432
<element name="modal" type="text" selector="//aside[contains(@class,'confirm') and contains(@class,'_show')]"/>
2533
<element name="title" type="text" selector="//aside[contains(@class,'confirm') and contains(@class,'_show')]//header//h1"/>
@@ -33,41 +41,6 @@
3341
<element name="title" type="text" selector="//aside[contains(@class,'pagebuilder_stage_template_pagebuilder_stage_template_modal')]//header//h1"/>
3442
<element name="closeButton" type="text" selector="//aside[contains(@class,'pagebuilder_stage_template_pagebuilder_stage_template_modal')]//header//button[contains(@class,'action-close')]"/>
3543
</section>
36-
<section name="PageBuilderApplyTemplateGrid">
37-
<element name="base" type="text" selector="//table[@data-role='grid']"/>
38-
<element name="emptyGrid" type="text" selector="//table[@data-role='grid']//tbody//td"/>
39-
<element name="columnHeader" type="text" parameterized="true" selector="//table[@data-role='grid']//thead//th[{{columnIndex}}]//span[.='{{columnName}}']"/>
40-
<element name="pagination" type="text" selector=".admin__data-grid-pager"/>
41-
<element name="paginationLeftButton" type="button" selector=".admin__data-grid-pager button.action-previous"/>
42-
<element name="paginationRightButton" type="button" selector=".admin__data-grid-pager button.action-next"/>
43-
<element name="paginationPage" type="input" selector=".admin__data-grid-pager input.admin__control-text"/>
44-
<element name="paginationTotalPages" type="text" parameterized="true" selector="//div[@class='admin__data-grid-pager']//label[@class='admin__control-support-text' and .='of {{total}}']"/>
45-
<element name="allRows" type="text" selector="//table[@data-role='grid']//tbody//tr"/>
46-
<element name="templateId" type="text" parameterized="true" selector="//table[@data-role='grid']//tbody//tr[{{rowIndex}}]//td[1]"/>
47-
<element name="image" type="text" parameterized="true" selector="//table[@data-role='grid']//tbody//tr[{{rowIndex}}]//td[2]//img"/>
48-
<element name="templateName" type="text" parameterized="true" selector="//table[@data-role='grid']//tbody//tr[{{rowIndex}}]//td[3]"/>
49-
<element name="createdFor" type="text" parameterized="true" selector="//table[@data-role='grid']//tbody//tr[{{rowIndex}}]//td[4]"/>
50-
<element name="createdDate" type="text" parameterized="true" selector="//table[@data-role='grid']//tbody//tr[{{rowIndex}}]//td[5]"/>
51-
<element name="applyButton" type="button" parameterized="true" selector="//tr//div[text()='{{textInRow}}']/parent::td/parent::tr//button[text()='Apply']"/>
52-
</section>
53-
<section name="PageBuilderTemplatePageGrid">
54-
<element name="pageTitle" type="text" selector="//header[contains(@class,'page-header')]//h1"/>
55-
<element name="base" type="text" selector="//table[@data-role='grid']"/>
56-
<element name="emptyGrid" type="text" selector="//table[@data-role='grid']//tbody//td"/>
57-
<element name="columnHeader" type="text" parameterized="true" selector="//table[@data-role='grid']//thead//th[{{columnIndex}}]//span[.='{{columnName}}']"/>
58-
<element name="pagination" type="text" selector=".admin__data-grid-pager"/>
59-
<element name="paginationLeftButton" type="button" selector=".admin__data-grid-pager button.action-previous"/>
60-
<element name="paginationRightButton" type="button" selector=".admin__data-grid-pager button.action-next"/>
61-
<element name="paginationPage" type="input" selector=".admin__data-grid-pager input.admin__control-text"/>
62-
<element name="paginationTotalPages" type="text" parameterized="true" selector="//div[@class='admin__data-grid-pager']//label[@class='admin__control-support-text' and .='of {{total}}']"/>
63-
<element name="allRows" type="text" selector="//table[@data-role='grid']//tbody//tr"/>
64-
<element name="templateId" type="text" parameterized="true" selector="//table[@data-role='grid']//tbody//tr[{{rowIndex}}]//td[1]"/>
65-
<element name="image" type="text" parameterized="true" selector="//table[@data-role='grid']//tbody//tr[{{rowIndex}}]//td[2]//img"/>
66-
<element name="templateName" type="text" parameterized="true" selector="//table[@data-role='grid']//tbody//tr[{{rowIndex}}]//td[3]"/>
67-
<element name="createdFor" type="text" parameterized="true" selector="//table[@data-role='grid']//tbody//tr[{{rowIndex}}]//td[4]"/>
68-
<element name="createdDate" type="text" parameterized="true" selector="//table[@data-role='grid']//tbody//tr[{{rowIndex}}]//td[5]"/>
69-
<element name="deleteButton" type="button" parameterized="true" selector="//tr//div[text()='{{textInRow}}']/parent::td/parent::tr//td[6]//a[text()='Delete']"/>
70-
</section>
7144
<section name="PageBuilderDeleteTemplateConfirmationModal">
7245
<element name="modal" type="text" selector="//aside[contains(@class,'confirm') and contains(@class,'_show')]"/>
7346
<element name="title" type="text" selector="//aside[contains(@class,'confirm') and contains(@class,'_show')]//header//h1"/>
@@ -76,10 +49,39 @@
7649
<element name="okButton" type="button" selector="//aside[contains(@class,'confirm') and contains(@class,'_show')]//footer//button//span[.='OK']"/>
7750
<element name="cancelButton" type="button" selector="//aside[contains(@class,'confirm') and contains(@class,'_show')]//footer//button//span[.='Cancel']"/>
7851
</section>
52+
<section name="PageBuilderTemplatesPage">
53+
<element name="pageTitle" type="text" selector="//header[contains(@class,'page-header')]//h1"/>
54+
</section>
7955
<section name="PageBuilderTemplateGridFilter">
56+
<element name="searchByKeyword" type="input" selector="#fulltext"/>
57+
<element name="searchByKeywordButton" type="button" selector=".action-submit"/>
8058
<element name="clearFilters" type="button" selector="//*[contains(@class,'admin__data-grid-header')]//button[@data-action='grid-filter-reset' and text()='Clear all']"/>
8159
<element name="filters" type="button" selector="//*[contains(@class,'admin__data-grid-header')]//button[@data-action='grid-filter-expand' and text()='Filters']"/>
8260
<element name="applyFilters" type="button" selector="//*[contains(@class,'admin__data-grid-header')]//button[@data-action='grid-filter-apply']//span[text()='Apply Filters']"/>
83-
<element name="templateName" type="text" selector="//*[contains(@class,'admin__data-grid-header')]//input[@name='name']"/>
61+
<element name="templateName" type="input" selector="//*[contains(@class,'admin__data-grid-header')]//input[@name='name']"/>
62+
<element name="templateIdFrom" type="input" selector="//*[contains(@class,'admin__data-grid-header')]//input[@name='template_id[from]']"/>
63+
<element name="templateIdTo" type="input" selector="//*[contains(@class,'admin__data-grid-header')]//input[@name='template_id[to]']"/>
64+
<element name="createdDateFrom" type="input" selector="//*[contains(@class,'admin__data-grid-header')]//input[@name='created_at[from]']"/>
65+
<element name="createdDateTo" type="input" selector="//*[contains(@class,'admin__data-grid-header')]//input[@name='created_at[to]']"/>
66+
<element name="createdForDropDown" type="button" selector="//label//span[text()='Created For']//parent::label//parent::*//*[contains(@class,'admin__action-multiselect-wrap')]"/>
67+
<element name="createdForInputByLabel" type="button" parameterized="true" selector="//label//span[text()='Created For']//parent::label//parent::*//*[contains(@class,'admin__action-multiselect-wrap')]//input/parent::*//span[text()='{{label}}']"/>
68+
<element name="selectedCreatedForOption" type="text" parameterized="true" selector="//label//span[text()='Created For']//parent::label//parent::*//*[contains(@class,'admin__action-multiselect-crumb')]//span[text()='{{label}}']"/>
69+
<element name="createdForDropDownDoneButton" type="text" selector="//button[@data-action='close-advanced-select']"/>
70+
</section>
71+
<section name="PageBuilderTemplatesGrid">
72+
<element name="totalRecordsFound" type="text" selector="//*[contains(@class, 'admin__control-support-text')]//span[text()='records found']//parent::*[contains(@class,'admin__control-support-text')]"/>
73+
<element name="totalRecordsPerPage" type="input" selector="//input[contains(@id,'listing_paging_sizes')]"/>
74+
<element name="emptyGrid" type="text" selector="//*[contains(@class,'pagebuilder_stage_template_pagebuilder_stage_template_modal_pagebuilder_stage_template_grid')]//table[@data-role='grid']//tbody//td"/>
75+
<element name="columnHeader" type="text" parameterized="true" selector="//*[contains(@class,'pagebuilder_stage_template_pagebuilder_stage_template_modal_pagebuilder_stage_template_grid')]//table[@data-role='grid']//thead//span[.='{{columnName}}']"/>
76+
<element name="previousPageButton" type="button" selector=".admin__data-grid-pager button.action-previous"/>
77+
<element name="nextPageButton" type="button" selector=".admin__data-grid-pager button.action-next"/>
78+
<element name="allRows" type="text" selector="//*[contains(@class,'pagebuilder_stage_template_pagebuilder_stage_template_modal_pagebuilder_stage_template_grid')]//table[@data-role='grid']//tbody//tr"/>
79+
<element name="templateId" type="text" parameterized="true" selector="//*[contains(@class,'pagebuilder_stage_template_pagebuilder_stage_template_modal_pagebuilder_stage_template_grid')]//table[@data-role='grid']//tbody//tr[{{rowIndex}}]//td[1]"/>
80+
<element name="image" type="text" parameterized="true" selector="//*[contains(@class,'pagebuilder_stage_template_pagebuilder_stage_template_modal_pagebuilder_stage_template_grid')]//table[@data-role='grid']//tbody//tr[{{rowIndex}}]//td[2]//img"/>
81+
<element name="templateName" type="text" parameterized="true" selector="//*[contains(@class,'pagebuilder_stage_template_pagebuilder_stage_template_modal_pagebuilder_stage_template_grid')]//table[@data-role='grid']//tbody//tr[{{rowIndex}}]//td[3]"/>
82+
<element name="createdFor" type="text" parameterized="true" selector="//*[contains(@class,'pagebuilder_stage_template_pagebuilder_stage_template_modal_pagebuilder_stage_template_grid')]//table[@data-role='grid']//tbody//tr[{{rowIndex}}]//td[4]"/>
83+
<element name="createdDate" type="text" parameterized="true" selector="//*[contains(@class,'pagebuilder_stage_template_pagebuilder_stage_template_modal_pagebuilder_stage_template_grid')]//table[@data-role='grid']//tbody//tr[{{rowIndex}}]//td[5]"/>
84+
<element name="applyButton" type="button" parameterized="true" selector="//tr//div[text()='{{textInRow}}']/parent::td/parent::tr//button[text()='Apply']"/>
85+
<element name="deleteButton" type="button" parameterized="true" selector="//tr//div[text()='{{textInRow}}']/parent::td/parent::tr//td[6]//a[text()='Delete']"/>
8486
</section>
8587
</sections>

app/code/Magento/PageBuilder/Test/Mftf/Test/AdminCMSPagePageBuilderTests.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@
233233
<after>
234234
<deleteData createDataKey="createCMSPage" stepKey="deleteCMSPage"/>
235235
<actionGroup ref="navigateToPageBuilderTemplatesGridPage" stepKey="navigateToPageBuilderTemplatesGridPage"/>
236-
<actionGroup ref="filterPageBuilderTemplateGrid" stepKey="filterPageBuilderTemplateGrid"/>
236+
<actionGroup ref="searchByKeywordPageBuilderTemplateGrid" stepKey="searchByKeywordPageBuilderTemplateGrid"/>
237237
<actionGroup ref="deletePageBuilderTemplate" stepKey="deletePageBuilderTemplate"/>
238238
<actionGroup ref="logout" stepKey="logout"/>
239239
</after>
@@ -250,7 +250,7 @@
250250
<actionGroup ref="verifyEmptyStage" stepKey="verifyEmptyStage"/>
251251
<!-- Apply Template -->
252252
<actionGroup ref="openPageBuilderApplyTemplateSlideOut" stepKey="openPageBuilderApplyTemplateSlideOut"/>
253-
<actionGroup ref="filterPageBuilderTemplateGrid" stepKey="filterPageBuilderTemplateGrid"/>
253+
<actionGroup ref="searchByKeywordPageBuilderTemplateGrid" stepKey="searchByKeywordPageBuilderTemplateGrid"/>
254254
<actionGroup ref="clickApplyFromPageBuilderApplyTemplateSlideOut" stepKey="clickApplyFromPageBuilderApplyTemplateSlideOut"/>
255255
<actionGroup ref="confirmApplyFromPageBuilderApplyTemplateSlideOut" stepKey="confirmApplyFromPageBuilderApplyTemplateSlideOut"/>
256256
<!-- Validate Stage -->

0 commit comments

Comments
 (0)