Skip to content

Commit fa895c8

Browse files
committed
MC-13769: Add Missing P0-P1 MFTF Tests For PageBuilder On CMS Block - Render Content Through Block
- Adding tests to render tabs, buttons, heading, divider through block - Adding supporting selectors, data, actiongroups - Leaving todos for others to resolve
1 parent 4c06306 commit fa895c8

File tree

5 files changed

+644
-79
lines changed

5 files changed

+644
-79
lines changed

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,22 @@
5757
<waitForElementVisible selector="{{page.thickness(index, thickness.value)}}" stepKey="waitForThicknessVisible"/>
5858
<waitForElementVisible selector="{{page.noWidth(index)}}" stepKey="waitForWidthVisible"/>
5959
</actionGroup>
60+
<actionGroup name="validateDividerWidthPercentage">
61+
<arguments>
62+
<argument name="page"/>
63+
<argument name="dividerWidth" defaultValue="PageBuilderDividerLineWidth_Default"/>
64+
<argument name="padding" defaultValue="PageBuilderPaddingProperty10"/>
65+
<argument name="border" defaultValue="PageBuilderAdvancedBorderWidthProperty0"/>
66+
<argument name="index" defaultValue="1" type="string"/>
67+
<!-- expectedOffset is necessary because divider width is equal to (expected width) + (line thickness attribute*2) in admin when rendered through Block -->
68+
<argument name="expectedOffset" defaultValue="0" type="string"/>
69+
</arguments>
70+
<!-- Check width of line against width of container -->
71+
<executeJS function="return Math.round(((document.querySelectorAll('{{page.baseCSS}}')[{{index}}-1].getBoundingClientRect().width) - {{padding.paddingLeft}} - {{padding.paddingRight}} - {{border.value}}*2)*{{dividerWidth.decimalValue}})" stepKey="expectedWidth"/>
72+
<executeJS function="return Math.round((document.querySelectorAll('{{page.lineElementCSS}}')[{{index}}-1].getBoundingClientRect().width)-{{expectedOffset}})" stepKey="lineWidth"/>
73+
<assertLessThanOrEqual stepKey="assertLineWidth">
74+
<expectedResult type="variable">expectedWidth</expectedResult>
75+
<actualResult type="variable">lineWidth</actualResult>
76+
</assertLessThanOrEqual>
77+
</actionGroup>
6078
</actionGroups>

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,12 +114,14 @@
114114
<data key="section">general</data>
115115
<data key="fieldName">line_width</data>
116116
<data key="value">100%</data>
117+
<data key="decimalValue">1</data>
117118
</entity>
118119
<entity name="PageBuilderDividerLineWidth_50" type="pagebuilder_divider_line_width_property">
119120
<data key="name">Line Width</data>
120121
<data key="section">general</data>
121122
<data key="fieldName">line_width</data>
122123
<data key="value">50%</data>
124+
<data key="decimalValue">0.5</data>
123125
</entity>
124126
<entity name="PageBuilderDividerLineWidth_Empty" type="pagebuilder_divider_line_width_property">
125127
<data key="name">Line Width</data>

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
1111
<section name="DividerOnStage">
1212
<element name="allDividers" type="text" selector="//div[contains(@class,'pagebuilder-divider')]"/>
13+
<element name="baseCSS" type="text" selector="[data-role=divider]"/>
1314
<element name="base" type="text" selector="(//div[contains(@class,'pagebuilder-divider')])[{{arg1}}]" parameterized="true"/>
15+
<element name="lineElementCSS" type="text" selector="[data-role=divider] hr"/>
1416
<element name="hidden" type="text" selector="(//div[contains(@class,'pagebuilder-divider')])[{{arg1}}]/ancestor::*[contains(@class, 'pagebuilder-content-type-wrapper') and contains(@class, 'pagebuilder-content-type-hidden')]" parameterized="true"/>
1517
<element name="notHidden" type="text" selector="(//div[contains(@class,'pagebuilder-divider')])[{{arg1}}]/parent::*[contains(@class, 'pagebuilder-content-type-wrapper') and not(contains(@class, 'pagebuilder-content-type-hidden'))][1]" parameterized="true"/>
1618
<element name="color" type="text" selector="(//div[contains(@class,'pagebuilder-divider')])[{{arg1}}]//hr[contains(@style,'border-color: {{arg2}};')]" parameterized="true"/>
@@ -34,7 +36,9 @@
3436
</section>
3537
<section name="DividerOnStorefront">
3638
<element name="allDividers" type="text" selector="//div[@data-role='divider']"/>
39+
<element name="baseCSS" type="text" selector="[data-role=divider]"/>
3740
<element name="base" type="text" selector="(//div[@data-role='divider'])[{{arg1}}]" parameterized="true"/>
41+
<element name="lineElementCSS" type="text" selector="[data-role=divider] hr"/>
3842
<element name="hidden" type="text" selector="(//div[@data-role='divider'])[{{arg1}}][contains(@style, 'display: none')]" parameterized="true"/>
3943
<element name="notHidden" type="text" selector="(//div[@data-role='divider'])[{{arg1}}][not(contains(@style, 'display: none'))]" parameterized="true"/>
4044
<element name="color" type="text" selector="(//div[@data-role='divider'])[{{arg1}}]//hr[contains(@style,'border-color: {{arg2}};')]" parameterized="true"/>

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
<element name="tabsMinHeight" type="button" selector="//div[@data-role='tabs']//div[@class='tabs-content'][contains(@style, 'min-height: {{arg1}}px')]" parameterized="true"/>
3333
<element name="tabsNavAligned" type="button" selector="(//div[@data-role='tabs']//descendant::*[@role='tablist'][contains(@style, 'text-align: {{arg1}};')])" parameterized="true"/>
3434
<element name="tabsContentAdvancedStyles" type="button" selector="//div[@class='tabs-content'][contains(@style, 'border-style: solid;')][contains(@style, 'border-color: rgb(0, 0, 0);')][contains(@style, 'border-width: 10px;')][contains(@style, 'border-radius: 12px;')][contains(@style, 'min-height: 300px;')]"/>
35+
<element name="tabsContentMinHeight" type="button" selector="(//div[@data-role='tabs']//descendant::*[contains(@class,'tabs-content')][contains(@style,'min-height: {{minHeight}}px;')])" parameterized="true"/>
3536
<element name="tabsContentCSS" type="text" selector="[data-role=tabs] .tabs-content[data-element=content]"/>
3637
<element name="tabsAlignment" type="text" selector="//div[@class='tabs-content'and contains(@style,'text-align: {{arg1}}')]" parameterized="true"/>
3738
<element name="tabsContentHeightJS" type="button" selector="document.querySelectorAll('[class=tabs-content]')[{{arg1}}].clientHeight" parameterized="true"/>
@@ -112,6 +113,7 @@
112113
<element name="backgroundAttachment" type="button" selector="(//div[@data-role='tab-item'])[{{arg1}}][contains(@style,'background-attachment: {{arg2}};')]" parameterized="true"/>
113114
<element name="backgroundColor" type="button" selector="(//div[@data-role='tab-item'])[{{arg1}}][contains(@style,'background-color: {{arg2}};')]" parameterized="true"/>
114115
<element name="noBackgroundColor" type="button" selector="(//div[@data-role='tab-item'])[{{arg1}}][not(contains(@style,'background-color:'))]" parameterized="true"/>
116+
<element name="backgroundImage" type="button" selector="(//div[@data-role='tab-item'])[{{arg1}}][contains(@style,'background-image: url(') and contains(@style,'{{arg2}}')]" parameterized="true"/>
115117
<element name="noBackgroundImage" type="button" selector="(//div[@data-role='tab-item'])[{{arg1}}][not(contains(@style,'background-image:'))]" parameterized="true"/>
116118
</section>
117119
</sections>

0 commit comments

Comments
 (0)