Skip to content

Commit 6299646

Browse files
authored
Merge pull request #95 from magento-trigger/MC-1408-html
PageBuilder: HTML Content Block Renaming and Preview
2 parents 65ae6e6 + 20b90dc commit 6299646

File tree

19 files changed

+184
-87
lines changed

19 files changed

+184
-87
lines changed

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

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,15 @@
8282
<fillField selector="{{EditPanelForm.panelFieldControl(property.section, property.fieldName)}}" userInput="{{property.value}}" stepKey="fillPropertyField"/>
8383
<click selector="{{EditPanelForm.panelFieldLabel(property.section, property.fieldName, property.section, property.name)}}" stepKey="clickOnFieldLabel"/>
8484
</actionGroup>
85+
<actionGroup name="fillSlideOutPanelTextArea">
86+
<!-- This action group does not assert against the section changed icon since this doesn't exist for General sections -->
87+
<arguments>
88+
<argument name="property"/>
89+
</arguments>
90+
<waitForPageLoad stepKey="waitForPageLoad"/>
91+
<waitForElement time="2" selector="{{EditPanelForm.panelFieldControl(property.section, property.fieldName)}}" stepKey="waitForElementVisible"/>
92+
<fillField selector="{{EditPanelForm.panelFieldControl(property.section, property.fieldName)}}" userInput="{{property.value}}" stepKey="fillPropertyField"/>
93+
</actionGroup>
8594
<actionGroup name="fillSlideOutPanelFieldAndExpectToSeeErrorInFieldset">
8695
<arguments>
8796
<argument name="property"/>
@@ -206,6 +215,14 @@
206215
<see userInput="{{property.name}}" selector="{{EditPanelForm.panelFieldLabel(property.section, property.fieldName, property.section, property.name)}}" stepKey="seePropertyLabel"/>
207216
<seeInField selector="{{EditPanelForm.panelFieldControl(property.section, property.fieldName)}}" userInput="{{property.editPanelValue}}" stepKey="seeInFieldProperty"/>
208217
</actionGroup>
218+
<actionGroup name="seeInFieldWithoutLabelSlideOutProperty">
219+
<arguments>
220+
<argument name="property"/>
221+
</arguments>
222+
<waitForElement time="2" selector="{{EditPanelForm.panelFieldControl(property.section, property.fieldName)}}" stepKey="waitForElementVisible"/>
223+
<dontSeeElement selector="{{EditPanelForm.panelFieldLabel(property.section, property.fieldName, property.section, property.name)}}" stepKey="dontSeePropertyLabel"/>
224+
<seeInField selector="{{EditPanelForm.panelFieldControl(property.section, property.fieldName)}}" userInput="{{property.value}}" stepKey="seeInFieldProperty"/>
225+
</actionGroup>
209226
<actionGroup name="seeInFieldSlideOutIsZeroProperty">
210227
<!-- must have this instead of using seeInFieldSlideOutProperty w/ argument of 0 because of MFTF bug -->
211228
<arguments>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
<see userInput="Product" selector="{{PageBuilderPanel.magentoGroupContentType}}" stepKey="seeMagentoGroupProduct"/>
4949
<click selector="{{PageBuilderPanel.otherGroup}}" stepKey="clickOtherGroup"/>
5050
<see userInput="Anchor" selector="{{PageBuilderPanel.otherGroupContentType}}" stepKey="seeOtherGroupAnchor"/>
51-
<dontSee userInput="Code" selector="{{PageBuilderPanel.otherGroupContentType}}" stepKey="dontSeeOtherGroupCode"/>
51+
<dontSee selector="{{PageBuilderPanel.codeContentType}}" stepKey="dontSeeOtherGroupCode"/>
5252
<see userInput="Html" selector="{{PageBuilderPanel.otherGroupContentType}}" stepKey="seeOtherGroupHtml"/>
5353
<dontSee userInput="Search" selector="{{PageBuilderPanel.otherGroupContentType}}" stepKey="dontSeeOtherGroupSearch"/>
5454
</actionGroup>

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,9 @@
138138
<data key="pageNamePrefix">anchor</data>
139139
</entity>
140140
<entity name="PageBuilderHtmlContentType" type="pagebuilder_content_type">
141-
<data key="name">HTML</data>
141+
<data key="name">HTML Code</data>
142142
<data key="section">Other</data>
143143
<data key="role">html</data>
144-
<data key="pageNamePrefix">html</data>
144+
<data key="pageNamePrefix">html-code</data>
145145
</entity>
146146
</entities>

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

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,32 +10,27 @@
1010
xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataProfileSchema.xsd">
1111
<!-- HTML -->
1212
<entity name="PageBuilderHtmlPropertyDefault" type="pagebuilder_html_property">
13-
<data key="name">HTML</data>
14-
<data key="section">general</data>
15-
<data key="fieldName">html</data>
16-
<data key="role">html</data>
17-
<data key="value">Type your HTML here...</data>
18-
</entity>
19-
<entity name="PageBuilderHtmlProperty_Empty" type="pagebuilder_html_property">
2013
<data key="name">HTML</data>
2114
<data key="section">general</data>
2215
<data key="fieldName">html</data>
2316
<data key="role">html</data>
2417
<data key="value"/>
25-
<data key="errorMessage">This is a required field.</data>
18+
<data key="placeholderText">Enter HTML, CSS or JavaScript code</data>
2619
</entity>
2720
<entity name="PageBuilderHtmlPropertyButton" type="pagebuilder_html_property">
2821
<data key="name">HTML</data>
2922
<data key="section">general</data>
3023
<data key="fieldName">html</data>
3124
<data key="value">&lt;a class=&quot;pagebuilder-button-primary&quot; onclick=&quot;location.href = 'https://google.com';&quot;&gt;&lt;span&gt;Test Button&lt;/span&gt;&lt;/a&gt;</data>
32-
<data key="selector">//a[@class='pagebuilder-button-primary' and @onclick=&quot;location.href = 'https://google.com';&quot;]//span[.='Test Button']</data>
25+
<data key="selector">[contains(text(), 'a class="pagebuilder-button-primary"')]</data>
26+
<data key="selectorOnFrontend">//a[@class='pagebuilder-button-primary' and @onclick=&quot;location.href = 'https://google.com';&quot;]//span[.='Test Button']</data>
3327
</entity>
3428
<entity name="PageBuilderHtmlPropertyButtonDuplicate" type="pagebuilder_html_property">
3529
<data key="name">HTML</data>
3630
<data key="section">general</data>
3731
<data key="fieldName">html</data>
3832
<data key="value">&lt;a class=&quot;pagebuilder-button-primary&quot; onclick=&quot;location.href = 'https://google.com';&quot;&gt;&lt;span&gt;Duplicate Button&lt;/span&gt;&lt;/a&gt;</data>
39-
<data key="selector">//a[@class='pagebuilder-button-primary' and @onclick=&quot;location.href = 'https://google.com';&quot;]//span[.='Duplicate Button']</data>
33+
<data key="selector">[contains(text(), 'a class="pagebuilder-button-primary"')]</data>
34+
<data key="selectorOnFrontend">//a[@class='pagebuilder-button-primary' and @onclick=&quot;location.href = 'https://google.com';&quot;]//span[.='Duplicate Button']</data>
4035
</entity>
4136
</entities>

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

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,21 @@
88
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
99
xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
1010
<section name="HtmlOnStage">
11-
<element name="base" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'html: data.main.html')])[{{arg1}}]" parameterized="true"/>
12-
<element name="html" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'html: data.main.html')])[{{arg1}}]{{arg2}}" parameterized="true"/>
11+
<element name="base" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'text: data.main.html') or contains(@class,'placeholder-html-empty')])[{{arg1}}]" parameterized="true"/>
12+
<element name="empty" type="text" selector="(//div[contains(@class,'placeholder-html-empty')])[{{arg1}}]" parameterized="true"/>
13+
<element name="html" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'text: data.main.html')])[{{arg1}}]{{arg2}}" parameterized="true"/>
1314
<!-- Advanced Configuration -->
14-
<element name="alignment" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'html: data.main.html')])[{{arg1}}][contains(@style,'text-align: {{arg2}};')]" parameterized="true"/>
15-
<element name="noAlignment" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'html: data.main.html')])[{{arg1}}][not(contains(@style,'text-align:'))]" parameterized="true"/>
16-
<element name="border" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'html: data.main.html')])[{{arg1}}][contains(@style,'border-style: {{arg2}};')]" parameterized="true"/>
17-
<element name="borderColor" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'html: data.main.html')])[{{arg1}}][contains(@style,'border-color: {{arg2}};')]" parameterized="true"/>
18-
<element name="noBorderColor" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'html: data.main.html')])[{{arg1}}][not(contains(@style,'border-color:'))]" parameterized="true"/>
19-
<element name="borderWidth" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'html: data.main.html')])[{{arg1}}][contains(@style,'border-width: {{arg2}}px;')]" parameterized="true"/>
20-
<element name="borderRadius" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'html: data.main.html')])[{{arg1}}][contains(@style,'border-radius: {{arg2}}px;')]" parameterized="true"/>
21-
<element name="cssClasses" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'html: data.main.html')])[{{arg1}}][contains(@class,'{{arg2}}')]" parameterized="true"/>
22-
<element name="noCssClasses" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'html: data.main.html')])[{{arg1}}][not(@class)]" parameterized="true"/>
23-
<element name="margins" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'html: data.main.html')])[{{arg1}}][contains(@style,'margin: {{arg2}}px;')]" parameterized="true"/>
24-
<element name="padding" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'html: data.main.html')])[{{arg1}}][contains(@style,'padding: {{arg2}}px;')]" parameterized="true"/>
15+
<element name="alignment" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'text: data.main.html') or contains(@class,'placeholder-html-empty')])[{{arg1}}][contains(@style,'text-align: {{arg2}};')]" parameterized="true"/>
16+
<element name="noAlignment" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'text: data.main.html') or contains(@class,'placeholder-html-empty')])[{{arg1}}][not(contains(@style,'text-align:'))]" parameterized="true"/>
17+
<element name="border" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'text: data.main.html') or contains(@class,'placeholder-html-empty')])[{{arg1}}][contains(@style,'border-style: {{arg2}};')]" parameterized="true"/>
18+
<element name="borderColor" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'text: data.main.html') or contains(@class,'placeholder-html-empty')])[{{arg1}}][contains(@style,'border-color: {{arg2}};')]" parameterized="true"/>
19+
<element name="noBorderColor" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'text: data.main.html') or contains(@class,'placeholder-html-empty')])[{{arg1}}][not(contains(@style,'border-color:'))]" parameterized="true"/>
20+
<element name="borderWidth" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'text: data.main.html') or contains(@class,'placeholder-html-empty')])[{{arg1}}][contains(@style,'border-width: {{arg2}}px;')]" parameterized="true"/>
21+
<element name="borderRadius" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'text: data.main.html') or contains(@class,'placeholder-html-empty')])[{{arg1}}][contains(@style,'border-radius: {{arg2}}px;')]" parameterized="true"/>
22+
<element name="cssClasses" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'text: data.main.html') or contains(@class,'placeholder-html-empty')])[{{arg1}}][contains(@class,'{{arg2}}')]" parameterized="true"/>
23+
<element name="noCssClasses" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'text: data.main.html') or @class='placeholder-html-empty'])[{{arg1}}]" parameterized="true"/>
24+
<element name="margins" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'text: data.main.html') or contains(@class,'placeholder-html-empty')])[{{arg1}}][contains(@style,'margin: {{arg2}}px;')]" parameterized="true"/>
25+
<element name="padding" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'text: data.main.html') or contains(@class,'placeholder-html-empty')])[{{arg1}}][contains(@style,'padding: {{arg2}}px;')]" parameterized="true"/>
2526
</section>
2627
<section name="HtmlOnStorefront">
2728
<element name="base" type="text" selector="(//div[@data-role='html'])[{{arg1}}]" parameterized="true"/>
@@ -44,7 +45,7 @@
4445
<element name="htmlFieldErrorMessage" type="text" selector="//div[contains(@class,'pagebuilder_modal_form_pagebuilder_modal_form_modal_insert_form')]//div[@data-index='general']//..//../label[.='{{arg1}}']" parameterized="true"/>
4546
</section>
4647
<section name="HtmlOnBackendArbitraryHtml">
47-
<element name="content" type="button" selector="//div[contains(@class, 'pagebuilder-html')][1]//div[@class='my-div']"/>
48+
<element name="content" type="button" selector="//div[contains(@class, 'pagebuilder-html')][1]//div[contains(text(), '&lt;div class=&quot;my-div&quot;&gt;&lt;/div&gt;')]"/>
4849
</section>
4950
<section name="HtmlOnBackendWithImage">
5051
<element name="content" type="button" selector="//div[contains(@class, 'pagebuilder-html')][1]/img[not(contains(@src, '{{media'))]"/>
@@ -56,6 +57,6 @@
5657
<element name="content" type="button" selector="//div[contains(@class, 'pagebuilder-html')][1]/img[contains(@src, '{{media')]"/>
5758
</section>
5859
<section name="HtmlOnBackendNonexistentDataRole">
59-
<element name="content" type="button" selector="//div[contains(@class, 'pagebuilder-html')][1]//div[@data-role='row']/div[@data-role='non-existent-content-type']"/>
60+
<element name="content" type="button" selector="//div[contains(@class, 'pagebuilder-html')][1]//div[contains(text(), '&lt;div data-role=&quot;row&quot;&gt;&lt;div data-role=&quot;non-existent-content-type&quot;&gt;&lt;/div&gt;&lt;/div&gt;')]"/>
6061
</section>
6162
</sections>

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
<element name="magentoGroupContentType" type="button" selector='//*[@id="group-magento"]/div/div/ul/li/a/span[2]'/>
5454
<element name="otherGroup" type="button" selector='//*[@id="group-other"]'/>
5555
<element name="otherGroupContentType" type="button" selector='//*[@id="group-other"]/div/div/ul/li/a/span[2]'/>
56+
<element name="codeContentType" type="button" selector='//*[@id="group-other"]/div/div/ul/li/a/span[2][text()="Code"]'/>
5657
<element name="searchPanel" type="input" selector='//*[@id="search-content-types-input"]' timeout="30"/>
5758
<element name="searchResults" type="text" selector='//*[@id="search-results"]' timeout="30"/>
5859
<element name="nothingFound" type="text" selector='//*[@id="pagebuilder-panel"]/div[2]/div' timeout="30"/>

0 commit comments

Comments
 (0)