Skip to content

Commit 1769c20

Browse files
committed
MC-5025: Right/Left Margin Not Working For Content Types
- add new mftf test to check banner position with margins
1 parent 0bab6f4 commit 1769c20

File tree

4 files changed

+109
-0
lines changed

4 files changed

+109
-0
lines changed

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -460,4 +460,32 @@
460460
<waitForElementVisible selector="{{page.noMargins(index)}}" stepKey="waitForMarginVisible"/>
461461
<waitForElementVisible selector="{{page.noPadding(index)}}" stepKey="waitForPaddingVisible"/>
462462
</actionGroup>
463+
<actionGroup name="validatePositionRightWithinContainer">
464+
<arguments>
465+
<argument name="content" type="string"/>
466+
<argument name="contentMargins" defaultValue="PageBuilderMarginsPropertyDefault"/>
467+
<argument name="container" type="string"/>
468+
<argument name="containerPadding" defaultValue="PageBuilderPaddingPropertyDefault"/>
469+
<argument name="index" defaultValue="1" type="string"/>
470+
<argument name="pixelBuffer" defaultValue="5" type="string"/>
471+
</arguments>
472+
<!-- Validate right edge of content is within parent -->
473+
<comment userInput="Validate right edge of content is within parent" stepKey="commentValidateRightEdgeOfContentIsWithinParent"/>
474+
<executeJS function="return document.querySelectorAll('{{content}}')[{{index}}-1].getBoundingClientRect().right+{{contentMargins.marginRight}}" stepKey="contentRightPosition"/>
475+
<executeJS function="return document.querySelectorAll('{{container}}')[{{index}}-1].getBoundingClientRect().right-{{containerPadding.paddingRight}}" stepKey="parentRightPosition"/>
476+
<executeJS function="return Math.round(Math.abs({$contentRightPosition}-{$parentRightPosition}))" stepKey="rightPositionDifference"/>
477+
<assertLessThanOrEqual stepKey="assertRightPositionDifference">
478+
<expectedResult type="int">{{pixelBuffer}}</expectedResult>
479+
<actualResult type="variable">rightPositionDifference</actualResult>
480+
</assertLessThanOrEqual>
481+
<!-- Validate width of content and width of container are equal -->
482+
<comment userInput="Validate width of content and width of container are equal" stepKey="commentValidateWidthOfContentAndWidthOfContainerAreEqual"/>
483+
<executeJS function="return document.querySelectorAll('{{content}}')[{{index}}-1].getBoundingClientRect().width+{{contentMargins.marginLeft}}+{{contentMargins.marginRight}}" stepKey="contentWidth"/>
484+
<executeJS function="return document.querySelectorAll('{{container}}')[{{index}}-1].getBoundingClientRect().width-{{containerPadding.paddingLeft}}-{{containerPadding.paddingRight}}" stepKey="parentWidth"/>
485+
<executeJS function="return Math.round(Math.abs({$contentWidth}-{$parentWidth}))" stepKey="widthDifference"/>
486+
<assertLessThanOrEqual stepKey="assertWidthDifference">
487+
<expectedResult type="int">{{pixelBuffer}}</expectedResult>
488+
<actualResult type="variable">widthDifference</actualResult>
489+
</assertLessThanOrEqual>
490+
</actionGroup>
463491
</actionGroups>

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,16 @@
345345
<data key="marginBottom">1</data>
346346
<data key="marginLeft">1</data>
347347
</entity>
348+
<entity name="PageBuilderMarginsProperty_50" type="pagebuilder_margins_property">
349+
<data key="name">Margins and Padding</data>
350+
<data key="section">advanced</data>
351+
<data key="fieldName">margins_and_padding</data>
352+
<data key="value">50</data>
353+
<data key="marginTop">50</data>
354+
<data key="marginRight">50</data>
355+
<data key="marginBottom">50</data>
356+
<data key="marginLeft">50</data>
357+
</entity>
348358
<entity name="PageBuilderMarginsProperty500" type="pagebuilder_margins_property">
349359
<data key="name">Margins and Padding</data>
350360
<data key="section">advanced</data>

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
1111
<section name="BannerOnFrontend">
1212
<element name="base" type="button" selector="(//div[@data-role='banner'])[{{arg1}}]" parameterized="true"/>
13+
<element name="baseCSS" type="button" selector="[data-role=banner]"/>
1314
<element name="baseJS" type="button" selector="document.querySelectorAll('[data-role=banner] div.pagebuilder-banner-wrapper')[{{arg1}} - 1]" parameterized="true"/>
1415
<element name="hidden" type="button" selector="(//div[@data-role='banner'])[{{arg1}}][contains(@style, 'display: none')]" parameterized="true"/>
1516
<element name="notHidden" type="button" selector="(//div[@data-role='banner'])[{{arg1}}][not(contains(@style, 'display: none'))]" parameterized="true"/>
@@ -67,6 +68,7 @@
6768
</section>
6869
<section name="BannerOnBackend">
6970
<element name="base" type="button" selector="(//div[contains(@class,'pagebuilder-banner') and contains(@class,'pagebuilder-content-type')])[{{arg1}}]" parameterized="true"/>
71+
<element name="baseCSS" type="button" selector=".pagebuilder-banner.pagebuilder-content-type"/>
7072
<element name="hidden" type="button" selector="(//div[contains(@class,'pagebuilder-banner') and contains(@class,'pagebuilder-content-type')])[{{arg1}}]/ancestor::*[contains(@class, 'pagebuilder-content-type-wrapper') and contains(@class, 'pagebuilder-content-type-hidden')]" parameterized="true"/>
7173
<element name="notHidden" type="button" selector="(//div[contains(@class,'pagebuilder-banner') and contains(@class,'pagebuilder-content-type')])[{{arg1}}]/ancestor::*[contains(@class, 'pagebuilder-content-type-wrapper') and not(contains(@class, 'pagebuilder-content-type-hidden'))][1]" parameterized="true"/>
7274
<element name="wrapperJS" type="button" selector="document.querySelectorAll('[data-role=banner] div.pagebuilder-banner-wrapper')[{{arg1}} - 1]" parameterized="true"/>

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

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

99
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
1010
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
11+
<test name="BannerPosterWithMarginStaysInsideParent">
12+
<annotations>
13+
<features value="PageBuilder"/>
14+
<stories value="Banner"/>
15+
<title value="Poster - With margin stays inside of parent container"/>
16+
<description value="Verify that a Banner with margin stays inside parent container"/>
17+
<severity value="MAJOR"/>
18+
<useCaseId value="MC-5025"/>
19+
<testCaseId value="MC-5840"/>
20+
<group value="pagebuilder"/>
21+
<group value="pagebuilder-banner"/>
22+
<group value="pagebuilder-bannerPoster"/>
23+
</annotations>
24+
<before>
25+
<actionGroup ref="LoginAsAdmin" stepKey="loginAsAdmin"/>
26+
<actionGroup ref="navigateToAPageWithPageBuilder" stepKey="navigateToAPageWithPageBuilder"/>
27+
<actionGroup ref="switchToPageBuilderStage" stepKey="switchToPageBuilderStage"/>
28+
</before>
29+
<after>
30+
<actionGroup ref="logout" stepKey="logout"/>
31+
</after>
32+
<actionGroup ref="addPageBuilderPageTitle" stepKey="enterPageTitle">
33+
<argument name="contentType" value="PageBuilderBannerContentType"/>
34+
</actionGroup>
35+
<actionGroup ref="expandPageBuilderPanelGroup" stepKey="expandPageBuilderPanelGroup">
36+
<argument name="group" value="PageBuilderBannerContentType"/>
37+
</actionGroup>
38+
<actionGroup ref="dragContentTypeToStage" stepKey="dragBannerIntoStage">
39+
<argument name="contentType" value="PageBuilderBannerContentType"/>
40+
</actionGroup>
41+
<actionGroup ref="openPageBuilderEditPanel" stepKey="openEditMenuOnStage">
42+
<argument name="contentType" value="PageBuilderBannerContentType"/>
43+
</actionGroup>
44+
<!-- Fill Out Edit Panel -->
45+
<comment userInput="Fill Out Edit Panel" stepKey="commentFillEditPanel"/>
46+
<actionGroup ref="fillSlideOutPanelFieldMargins" stepKey="enterMargins">
47+
<argument name="property" value="PageBuilderMarginsProperty_50"/>
48+
</actionGroup>
49+
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings"/>
50+
<!-- Validate stage before save -->
51+
<comment userInput="Validate stage before save" stepKey="commentValidateStageBeforeSave"/>
52+
<actionGroup ref="validatePositionRightWithinContainer" stepKey="validatePositionRightBeforeSave">
53+
<argument name="content" value="{{BannerOnBackend.baseCSS}}"/>
54+
<argument name="contentMargins" value="PageBuilderMarginsProperty_50"/>
55+
<argument name="container" value="{{RowOnStage.baseCss}}"/>
56+
<argument name="containerPadding" value="PageBuilderPaddingPropertyRowDefault"/>
57+
</actionGroup>
58+
<actionGroup ref="saveAndContinueEditCmsPage" stepKey="saveAndContinueEditCmsPage"/>
59+
<actionGroup ref="switchToPageBuilderStage" stepKey="switchToPageBuilderStage"/>
60+
<!-- Validate stage after save -->
61+
<comment userInput="Validate stage after save" stepKey="commentValidateStageAfterSave"/>
62+
<actionGroup ref="validatePositionRightWithinContainer" stepKey="validatePositionRightAfterSave">
63+
<argument name="content" value="{{BannerOnBackend.baseCSS}}"/>
64+
<argument name="contentMargins" value="PageBuilderMarginsProperty_50"/>
65+
<argument name="container" value="{{RowOnStage.baseCss}}"/>
66+
<argument name="containerPadding" value="PageBuilderPaddingPropertyRowDefault"/>
67+
</actionGroup>
68+
<actionGroup ref="navigateToStoreFront" stepKey="navigateToStoreFront">
69+
<argument name="contentType" value="PageBuilderBannerContentType"/>
70+
</actionGroup>
71+
<!-- Validate storefront -->
72+
<comment userInput="Validate storefront" stepKey="commentValidateStorefront"/>
73+
<actionGroup ref="validatePositionRightWithinContainer" stepKey="validatePositionRightStorefront">
74+
<argument name="content" value="{{BannerOnFrontend.baseCSS}}"/>
75+
<argument name="contentMargins" value="PageBuilderMarginsProperty_50"/>
76+
<argument name="container" value="{{RowOnStorefront.innerCSS}}"/>
77+
<argument name="containerPadding" value="PageBuilderPaddingPropertyRowDefault"/>
78+
</actionGroup>
79+
</test>
1180
<test name="BannerPosterCanInlineEditContent">
1281
<annotations>
1382
<features value="PageBuilder"/>

0 commit comments

Comments
 (0)