Skip to content

Commit b730f27

Browse files
committed
#558: Content Types Output Style Attribute Removal
- Extending MFTF Tests for CSS Specificity
1 parent 88e60f3 commit b730f27

File tree

4 files changed

+130
-4
lines changed

4 files changed

+130
-4
lines changed

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,12 @@
311311
<data key="fieldName">css_classes</data>
312312
<data key="value">first-class second-class third-class</data>
313313
</entity>
314+
<entity name="PageBuilderAdvancedCssClassesPropertyCssSpecificity" type="pagebuilder_advanced_css_classes_property">
315+
<data key="name">CSS Classes</data>
316+
<data key="section">advanced</data>
317+
<data key="fieldName">css_classes</data>
318+
<data key="value">css__specificity</data>
319+
</entity>
314320
<entity name="PageBuilderAdvancedCssClassesProperty_Invalid_GreaterThan" type="pagebuilder_advanced_css_classes_property">
315321
<data key="name">CSS Classes</data>
316322
<data key="section">advanced</data>

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,16 @@
3535
<data key="selector">[contains(text(), 'a class="pagebuilder-button-primary"')]</data>
3636
<data key="selectorOnFrontend">//a[@class='pagebuilder-button-primary' and @onclick=&quot;location.href = 'https://google.com';&quot;]//span[.='Duplicate Button']</data>
3737
</entity>
38+
<entity name="PageBuilderHtmlPropertyCssSpecificityBefore" type="pagebuilder_html_property">
39+
<data key="name">HTML</data>
40+
<data key="section">general</data>
41+
<data key="fieldName">html</data>
42+
<data key="value">&lt;style type=&quot;text/css&quot;&gt;.css__specificity { text-align: center; }&lt;/style&gt;</data>
43+
</entity>
44+
<entity name="PageBuilderHtmlPropertyCssSpecificityAfter" type="pagebuilder_html_property">
45+
<data key="name">HTML</data>
46+
<data key="section">general</data>
47+
<data key="fieldName">html</data>
48+
<data key="value">&lt;style type=&quot;text/css&quot;&gt;#html-body .css__specificity { text-align: center; }&lt;/style&gt;</data>
49+
</entity>
3850
</entities>

app/code/Magento/PageBuilder/Test/Mftf/Section/PageBuilderHeadingSection/HeadingOnStorefrontSection.xml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
* See COPYING.txt for license details.
66
*/
77
-->
8-
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9-
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
8+
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
109
<section name="HeadingOnStorefront">
1110
<element name="base" type="text" selector="(//*[@data-content-type='heading'])[{{arg2}}]" parameterized="true"/>
1211
<element name="baseByTagName" type="text" selector="(//{{arg1}}[@data-content-type='heading'])[{{arg2}}]" parameterized="true"/>
@@ -25,8 +24,8 @@
2524
<element name="noBorderColor" type="text" selector="(//{{arg1}}[@data-content-type='heading'])[{{arg2}}][not(contains(@style,'border-color:'))]" parameterized="true" deprecated="Styles are not inline"/>
2625
<element name="borderWidth" type="text" selector="(//{{arg1}}[@data-content-type='heading'])[{{arg2}}][contains(@style,'border-width: {{arg3}}px;')]" parameterized="true" deprecated="Styles are not inline"/>
2726
<element name="borderRadius" type="text" selector="(//{{arg1}}[@data-content-type='heading'])[{{arg2}}][contains(@style,'border-radius: {{arg3}}px;')]" parameterized="true" deprecated="Styles are not inline"/>
28-
<element name="cssClasses" type="text" selector="(//{{arg1}}[@data-content-type='heading'])[{{arg2}}][contains(@class,'{{arg3}}')]" parameterized="true"/>
29-
<element name="noCssClasses" type="text" selector="(//{{arg1}}[@data-content-type='heading'])[{{arg2}}][not(@class)]" parameterized="true"/>
27+
<element name="cssClasses" type="text" selector="(//{{arg1}}[@data-content-type=&quot;heading&quot;])[{{arg2}}][contains(@class,&quot;{{arg3}}&quot;)]" parameterized="true"/>
28+
<element name="noCssClasses" type="text" selector="(//{{arg1}}[@data-content-type=&quot;heading&quot;])[{{arg2}}][not(@class)]" parameterized="true"/>
3029
<element name="margins" type="text" selector="(//{{arg1}}[@data-content-type='heading'])[{{arg2}}][contains(@style,'margin: {{arg3}}px;')]" parameterized="true" deprecated="Styles are not inline"/>
3130
<element name="noMargins" type="text" selector="(//{{arg1}}[@data-content-type='heading'])[{{arg2}}][not(contains(@style,'margin:'))]" parameterized="true" deprecated="Styles are not inline"/>
3231
<element name="padding" type="text" selector="(//{{arg1}}[@data-content-type='heading'])[{{arg2}}][contains(@style,'padding: {{arg3}}px;')]" parameterized="true" deprecated="Styles are not inline"/>
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
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" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
9+
<test name="HeadingCssSpecificityTest">
10+
<annotations>
11+
<features value="PageBuilder"/>
12+
<stories value="Heading"/>
13+
<title value="Heading - CSS Specificity"/>
14+
<description value="Internal (or external) CSS should be able to override Page Builder defined styles that would previously have been inlined."/>
15+
<severity value="AVERAGE"/>
16+
<group value="pagebuilder"/>
17+
<group value="pagebuilder-heading"/>
18+
</annotations>
19+
<before>
20+
<createData entity="_emptyCmsPage" stepKey="createCMSPage"/>
21+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
22+
<actionGroup ref="navigateToCMSPage" stepKey="navigateToCMSPage">
23+
<argument name="CMSPage" value="$$createCMSPage$$"/>
24+
</actionGroup>
25+
<actionGroup ref="switchToPageBuilderStage" stepKey="waitForPageBuilderDisplay"/>
26+
</before>
27+
<after>
28+
<deleteData createDataKey="createCMSPage" stepKey="deleteCMSPage"/>
29+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
30+
</after>
31+
<actionGroup ref="expandPageBuilderPanelMenuSection" stepKey="expandPageBuilderPanelMenuSection">
32+
<argument name="contentType" value="PageBuilderHeadingContentType"/>
33+
</actionGroup>
34+
<actionGroup ref="dragContentTypeToStage" stepKey="dragContentTypeToStage">
35+
<argument name="contentType" value="PageBuilderHeadingContentType"/>
36+
</actionGroup>
37+
<actionGroup ref="clickOutsideLiveEditHeading" stepKey="clickOutsideLiveEditHeading">
38+
<argument name="index" value="1"/>
39+
</actionGroup>
40+
<actionGroup ref="openPageBuilderEditPanel" stepKey="openPageBuilderEditPanel">
41+
<argument name="contentType" value="PageBuilderHeadingContentType"/>
42+
</actionGroup>
43+
<actionGroup ref="fillSlideOutPanelFieldGeneral" stepKey="enterHeadingTextProperty">
44+
<argument name="property" value="PageBuilderHeadingTextProperty"/>
45+
</actionGroup>
46+
<actionGroup ref="selectSlideOutPanelFieldGeneral" stepKey="enterHeadingTypeProperty">
47+
<argument name="property" value="PageBuilderHeadingTypeProperty_H1"/>
48+
</actionGroup>
49+
<actionGroup ref="chooseVisualSelectOption" stepKey="selectAlignmentLeft">
50+
<argument name="property" value="PageBuilderAdvancedAlignmentPropertyLeft"/>
51+
</actionGroup>
52+
<actionGroup ref="fillSlideOutPanelFieldGeneral" stepKey="enterHeadingClassesProperty">
53+
<argument name="property" value="PageBuilderAdvancedCssClassesPropertyCssSpecificity"/>
54+
</actionGroup>
55+
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings"/>
56+
<actionGroup ref="dragContentTypeToStage" stepKey="dragContentTypeToStage2">
57+
<argument name="contentType" value="PageBuilderHtmlContentType"/>
58+
</actionGroup>
59+
<actionGroup ref="openPageBuilderEditPanel" stepKey="openPageBuilderEditPanel2">
60+
<argument name="contentType" value="PageBuilderHtmlContentType"/>
61+
</actionGroup>
62+
<actionGroup ref="fillSlideOutPanelTextArea" stepKey="enterHtmlContent">
63+
<argument name="property" value="PageBuilderHtmlPropertyCssSpecificityBefore"/>
64+
</actionGroup>
65+
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings2"/>
66+
<!-- Verify in Stage -->
67+
<actionGroup ref="verifyHeadingInStage" stepKey="verifyHeadingInStage">
68+
<argument name="headingType" value="PageBuilderHeadingTypeProperty_H1"/>
69+
</actionGroup>
70+
<actionGroup ref="exitPageBuilderFullScreen" stepKey="exitPageBuilderFullScreen"/>
71+
<actionGroup ref="SaveAndContinueEditCmsPageActionGroup" stepKey="saveAndContinueEditCmsPage"/>
72+
<!-- Verify in Storefront -->
73+
<actionGroup ref="NavigateToStorefrontForCreatedPageActionGroup" stepKey="navigateToStoreFront">
74+
<argument name="page" value="$$createCMSPage.identifier$$"/>
75+
</actionGroup>
76+
<actionGroup ref="ValidateContentTypesStyleEqualsExpectedStyleActionGroup" stepKey="validateContentTypesStyleEqualsExpectedStyle">
77+
<argument name="selector" value="{{HeadingOnStorefront.cssClasses(PageBuilderHeadingTypeProperty_H1.value, '1', PageBuilderAdvancedCssClassesPropertyCssSpecificity.value)}}"/>
78+
<argument name="expectedProperty" value="{{PageBuilderAdvancedAlignmentPropertyLeft.value}}"/>
79+
<argument name="cssProperty" value="textAlign"/>
80+
</actionGroup>
81+
<!-- Edit HTML Code -->
82+
<actionGroup ref="navigateToCMSPage" stepKey="navigateToCMSPage">
83+
<argument name="CMSPage" value="$$createCMSPage$$"/>
84+
</actionGroup>
85+
<actionGroup ref="switchToPageBuilderStage" stepKey="waitForPageBuilderDisplay"/>
86+
<actionGroup ref="expandPageBuilderPanelMenuSection" stepKey="expandPageBuilderPanelMenuSection2">
87+
<argument name="contentType" value="PageBuilderHeadingContentType"/>
88+
</actionGroup>
89+
<actionGroup ref="openPageBuilderEditPanel" stepKey="openPageBuilderEditPanel3">
90+
<argument name="contentType" value="PageBuilderHtmlContentType"/>
91+
</actionGroup>
92+
<actionGroup ref="fillSlideOutPanelTextArea" stepKey="enterHtmlContent2">
93+
<argument name="property" value="PageBuilderHtmlPropertyCssSpecificityAfter"/>
94+
</actionGroup>
95+
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings3"/>
96+
<actionGroup ref="exitPageBuilderFullScreen" stepKey="exitPageBuilderFullScreen2"/>
97+
<actionGroup ref="SaveAndContinueEditCmsPageActionGroup" stepKey="saveAndContinueEditCmsPage2"/>
98+
<!-- Verify in Storefront -->
99+
<magentoCLI command="cache:clean full_page" stepKey="flushCache"/>
100+
<actionGroup ref="NavigateToStorefrontForCreatedPageActionGroup" stepKey="navigateToStoreFront2">
101+
<argument name="page" value="$$createCMSPage.identifier$$"/>
102+
</actionGroup>
103+
<actionGroup ref="ValidateContentTypesStyleEqualsExpectedStyleActionGroup" stepKey="validateContentTypesStyleEqualsExpectedStyle2">
104+
<argument name="selector" value="{{HeadingOnStorefront.cssClasses(PageBuilderHeadingTypeProperty_H1.value, '1', PageBuilderAdvancedCssClassesPropertyCssSpecificity.value)}}"/>
105+
<argument name="expectedProperty" value="{{PageBuilderAdvancedAlignmentPropertyCenter.value}}"/>
106+
<argument name="cssProperty" value="textAlign"/>
107+
</actionGroup>
108+
</test>
109+
</tests>

0 commit comments

Comments
 (0)