Skip to content

Commit c81819d

Browse files
committed
MC-2244: Automate MFTF
1 parent 7e37090 commit c81819d

File tree

5 files changed

+61
-38
lines changed

5 files changed

+61
-38
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/Data/ContentTypeData.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,6 @@
141141
<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: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,23 @@
1414
<data key="section">general</data>
1515
<data key="fieldName">html</data>
1616
<data key="role">html</data>
17-
<data key="value">Type your HTML here...</data>
17+
<data key="value"/>
18+
<data key="placeholderText">Enter HTML, CSS or JavaScript code</data>
1819
</entity>
1920
<entity name="PageBuilderHtmlPropertyButton" type="pagebuilder_html_property">
2021
<data key="name">HTML</data>
2122
<data key="section">general</data>
2223
<data key="fieldName">html</data>
2324
<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>
24-
<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>
2527
</entity>
2628
<entity name="PageBuilderHtmlPropertyButtonDuplicate" type="pagebuilder_html_property">
2729
<data key="name">HTML</data>
2830
<data key="section">general</data>
2931
<data key="fieldName">html</data>
3032
<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>
31-
<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>
3235
</entity>
3336
</entities>

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

Lines changed: 13 additions & 12 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,'text: data.main.html')])[{{arg1}}]" 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"/>
1213
<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,'text: 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,'text: 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,'text: 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,'text: 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,'text: 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,'text: 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,'text: 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,'text: 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,'text: data.main.html')])[{{arg1}}][not(@class)]" parameterized="true"/>
23-
<element name="margins" type="text" selector="(//div[contains(@class,'pagebuilder-html')]//div[contains(@data-bind,'text: 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,'text: 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 contains(@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"/>

0 commit comments

Comments
 (0)