Skip to content

Commit 6f8a6a3

Browse files
committed
Merge remote-tracking branch 'mainline/develop' into cms-team-1-delivery
# Conflicts: # app/code/Magento/PageBuilder/Test/Mftf/Section/PageBuilderTextSection.xml
2 parents 752d4c6 + 3099e75 commit 6f8a6a3

File tree

44 files changed

+1587
-571
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+1587
-571
lines changed

app/code/Magento/PageBuilder/Model/Config/ContentType/AdditionalData/Provider/Wysiwyg/Config.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,25 +32,25 @@ class Config implements ProviderInterface
3232
/**
3333
* @var array
3434
*/
35-
private $additionalConfig;
35+
private $editors;
3636

3737
/**
3838
* Config constructor.
3939
* @param \Magento\Cms\Model\Wysiwyg\Config $wysiwygConfig
4040
* @param \Magento\PageBuilder\Model\Wysiwyg\InlineEditingSupportedAdapterList $inlineEditingChecker
4141
* @param \Magento\Ui\Block\Wysiwyg\ActiveEditor $activeEditor
42-
* @param array $additionalConfig
42+
* @param array $editors
4343
*/
4444
public function __construct(
4545
\Magento\Cms\Model\Wysiwyg\Config $wysiwygConfig,
4646
\Magento\PageBuilder\Model\Wysiwyg\InlineEditingSupportedAdapterList $inlineEditingChecker,
4747
\Magento\Ui\Block\Wysiwyg\ActiveEditor $activeEditor,
48-
$additionalConfig = []
48+
$editors = []
4949
) {
5050
$this->wysiwygConfig = $wysiwygConfig;
5151
$this->inlineEditingChecker = $inlineEditingChecker;
5252
$this->activeEditor = $activeEditor;
53-
$this->additionalConfig = $additionalConfig;
53+
$this->editors = $editors;
5454
}
5555

5656
/**
@@ -62,8 +62,8 @@ public function getData(string $itemName) : array
6262
$activeEditorPath = $this->activeEditor->getWysiwygAdapterPath();
6363
if ($this->inlineEditingChecker->isSupported($activeEditorPath)) {
6464
$config['adapter'] = $this->wysiwygConfig->getConfig()->getData();
65-
if (isset($this->additionalConfig[$activeEditorPath])) {
66-
$config['additional'] = $this->additionalConfig[$activeEditorPath];
65+
if (isset($this->editors[$activeEditorPath])) {
66+
$config['adapter_config'] = $this->editors[$activeEditorPath];
6767
}
6868
}
6969
return [$itemName => $config,];

app/code/Magento/PageBuilder/Model/Wysiwyg/InlineEditingSupportedAdapterList.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ public function __construct(
4242
*/
4343
public function isSupported(string $editorPath) : bool
4444
{
45-
46-
return $this->wysiwygAdaptersSupportingInlineEditing[$editorPath] && $this->wysiwygConfig->isEnabled() ?? false;
45+
return !empty($this->wysiwygAdaptersSupportingInlineEditing[$editorPath]) && $this->wysiwygConfig->isEnabled();
4746
}
4847
}

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

Lines changed: 36 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,19 @@
3636
<click selector="{{VariableSection.InsertWidget}}" stepKey="clickInsertVariable2"/>
3737
<waitForElementNotVisible selector="{{VariableSection.InsertWidget}}" stepKey="waitForVariableModalToClose"/>
3838
</actionGroup>
39+
<actionGroup name="addVariableToTinyMCE3" extends="addVariableToTinyMCE">
40+
<arguments>
41+
<argument name="variable" defaultValue=""/>
42+
</arguments>
43+
<comment userInput="Adding Variable To TinyMCE3" stepKey="commentAddVariableToTinyMCE"/>
44+
<waitForElementVisible selector="{{TextOnConfiguration.tinyMCE3VariableBtn}}" stepKey="waitForInsertVariable1"/>
45+
<click selector="{{TextOnConfiguration.tinyMCE3VariableBtn}}" stepKey="clickInsertVariable1"/>
46+
<waitForElementVisible selector="{{TextOnConfiguration.tinyMCE3VariableBtn}}" stepKey="waitForVariableModalToClose"/>
47+
</actionGroup>
3948
<actionGroup name="addPageLinkVariableWYSIWYGDisabled">
4049
<arguments>
4150
<argument name="variable" defaultValue=""/>
4251
</arguments>
43-
<comment userInput="Adding Variable To Tiny MCE" stepKey="commentAddVariableToTinyMCE"/>
4452
<waitForElementVisible selector="{{TextOnConfiguration.insertVariableButton}}" stepKey="waitForInsertVariable1"/>
4553
<click selector="{{TextOnConfiguration.insertVariableButton}}" stepKey="clickInsertVariable1"/>
4654
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear"/>
@@ -58,9 +66,9 @@
5866
<argument name="widget" defaultValue=""/>
5967
<argument name="page" defaultValue="" type="string"/>
6068
</arguments>
61-
<comment userInput="Adding Widget To Tiny MCE" stepKey="commentAddWidgetToTinyMCE"/>
69+
<comment userInput="Adding Widget To Tiny MCE" stepKey="commentAddWidget"/>
6270
<waitForElementVisible selector="{{TinyMCESection.InsertWidgetIcon}}" stepKey="waitForInsertWidget1"/>
63-
<click selector="{{TinyMCESection.InsertWidgetIcon}}" stepKey="clickInsertWidget1"/>
71+
<click selector="{{TinyMCESection.InsertWidgetIcon}}" stepKey="clickAddWidgetBtn"/>
6472
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear"/>
6573
<waitForElementVisible selector="{{WidgetSection.WidgetType}}" stepKey="waitForWidgetType"/>
6674
<selectOption selector="{{WidgetSection.WidgetType}}" userInput="{{TinyMCEWidgetCMSPageLink.widgetType}}" stepKey="selectCMSPageLinkWidget"/>
@@ -82,35 +90,25 @@
8290
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear5"/>
8391
<waitForElementNotVisible selector="{{WidgetSection.InsertWidget}}" stepKey="waitForInsertWidgetModalToClose"/>
8492
</actionGroup>
85-
<actionGroup name="addPageLinkWidgetWYSIWYGDisabled">
93+
<actionGroup name="addPageLinkWidgetToTinyMCE3" extends="addPageLinkWidgetToTinyMCE">
8694
<arguments>
8795
<argument name="widget" defaultValue=""/>
8896
<argument name="page" defaultValue="" type="string"/>
8997
</arguments>
90-
<comment userInput="Adding Widget" stepKey="commentAddWidget"/>
98+
<comment userInput="Adding Widget To TinyMCE3" stepKey="commentAddWidget"/>
99+
<waitForElementVisible selector="{{TextOnConfiguration.tinyMCE3WidgetBtn}}" stepKey="waitForInsertWidget1"/>
100+
<click selector="{{TextOnConfiguration.tinyMCE3WidgetBtn}}" stepKey="clickAddWidgetBtn"/>
101+
<waitForElementVisible selector="{{TextOnConfiguration.tinyMCE3WidgetBtn}}" stepKey="waitForInsertWidgetModalToClose"/>
102+
</actionGroup>
103+
<actionGroup name="addPageLinkWidgetWYSIWYGDisabled" extends="addPageLinkWidgetToTinyMCE">
104+
<arguments>
105+
<argument name="widget" defaultValue=""/>
106+
<argument name="page" defaultValue="" type="string"/>
107+
</arguments>
108+
<comment userInput="Adding Widget To Textarea" stepKey="commentAddWidget"/>
91109
<waitForElementVisible selector="{{TextOnConfiguration.insertWidgetButton}}" stepKey="waitForInsertWidget1"/>
92-
<click selector="{{TextOnConfiguration.insertWidgetButton}}" stepKey="clickInsertWidget1"/>
93-
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear"/>
94-
<waitForElementVisible selector="{{WidgetSection.WidgetType}}" stepKey="waitForWidgetType"/>
95-
<selectOption selector="{{WidgetSection.WidgetType}}" userInput="{{TinyMCEWidgetCMSPageLink.widgetType}}" stepKey="selectCMSPageLinkWidget"/>
96-
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear2"/>
97-
<waitForElementVisible selector="{{moveToCE.SelectPageButton}}" stepKey="waitForSelectPage"/>
98-
<click selector="{{moveToCE.SelectPageButton}}" stepKey="clickSelectPage"/>
99-
<waitForLoadingMaskToDisappear stepKey="waitForSelectPageModal"/>
100-
<waitForElementVisible selector="{{moveToCE.generalFilter('chooser_title')}}" stepKey="waitForGrid"/>
101-
<fillField selector="{{moveToCE.generalFilter('chooser_title')}}" userInput="{{page}}" stepKey="enterPageName"/>
102-
<click selector="{{AdminProductGridFilterSection.applyFilters}}" stepKey="clickSearch"/>
103-
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear3"/>
104-
<waitForElementVisible selector="//td[contains(@class,'col-url')][contains(text(),'{{page}}')]" stepKey="waitForSearchResult"/>
105-
<click selector="//td[contains(@class,'col-url')][contains(text(),'{{page}}')]" stepKey="clickCmsPageLinkRow"/>
106-
<waitForElementNotVisible selector="//td[contains(@class,'col-url')][contains(text(),'{{page}}')]" stepKey="waitForPageSelectionModalToClose"/>
107-
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear4"/>
108-
<waitForPageLoad stepKey="waitForPanelSlideOut"/>
109-
<waitForElementVisible selector="{{WidgetSection.InsertWidget}}" stepKey="waitForInsertWidget2"/>
110-
<click selector="{{WidgetSection.InsertWidget}}" stepKey="clickInsertWidget2"/>
111-
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear5"/>
112-
<waitForElementNotVisible selector="{{WidgetSection.InsertWidget}}" stepKey="waitForInsertWidgetModalToClose"/>
113-
<waitForElementVisible selector="{{TextOnConfiguration.textArea}}" stepKey="waitForTextArea"/>
110+
<click selector="{{TextOnConfiguration.insertWidgetButton}}" stepKey="clickAddWidgetBtn"/>
111+
<waitForElementVisible selector="{{TextOnConfiguration.textArea}}" stepKey="waitForInsertWidgetModalToClose"/>
114112
<executeJS function="return document.getElementById('{{TextOnConfiguration.textAreaId}}').value;" stepKey="getText"/>
115113
<assertContains actual="getText" actualType="variable" expected="{{widget.editPanelValue}}" expectedType="string" stepKey="assertValue"/>
116114
</actionGroup>
@@ -144,4 +142,15 @@
144142
<waitForPageLoad stepKey="waitForPageLoad2"/>
145143
<waitForElementNotVisible selector="{{WYSIWYGInsertLinkModal.modal}}" stepKey="waitForInsertLinkModalGone"/>
146144
</actionGroup>
145+
<actionGroup name="assertTextareaContainsValue">
146+
<arguments>
147+
<argument name="selector" type="string"/>
148+
<argument name="value" type="string"/>
149+
</arguments>
150+
<executeJS function="return Boolean(document.evaluate(&quot;{{selector}}&quot;, document.body).iterateNext().value.match(&apos;{{value}}&apos;))" stepKey="textareaValue"/>
151+
<assertEquals stepKey="assertTextareaContainsValue">
152+
<expectedResult type="bool">true</expectedResult>
153+
<actualResult type="variable">textareaValue</actualResult>
154+
</assertEquals>
155+
</actionGroup>
147156
</actionGroups>

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
<data key="fieldName">text</data>
1616
<data key="cmsPageLinkName" unique="suffix">cms-page-link-</data>
1717
<data key="value">test string</data>
18+
<data key="minHeight">50px</data>
1819
</entity>
1920
<entity name="PageBuilderTextContentTypeDefault" type="pagebuilder_text_property">
2021
<data key="name">Text</data>
@@ -50,11 +51,15 @@
5051
<entity name="TinyMCEWidgetCMSPageLink" type="pagebuilder_text_widget_property">
5152
<data key="widgetType">Magento\Cms\Block\Widget\Page\Link</data>
5253
<data key="editPanelValue">CMS Page Link</data>
53-
<data key="stageValue">{{widget type=&quot;Magento\\Cms\\Block\\Widget\\Page\\Link&quot; template=&quot;widget/link/link_block.phtml&quot; page_id=</data>
54+
<data key="stageValue">{{widget type=&quot;Magento\Cms\Block\Widget\Page\Link&quot; template=&quot;widget/link/link_block.phtml&quot; page_id=</data>
5455
<data key="stageValueEncoded">e3t3aWRnZXQgdHlwZT0iTWFnZW50b1xDbXNcQmxvY2tcV2lkZ2V0XFBhZ2VcTGluayIgdGVtcGxhdGU9IndpZGdldC9saW5rL2xpbmtfYmxvY2sucGh0bWwiIHBhZ2VfaWQ9</data>
5556
</entity>
5657
<entity name="PageBuilderTextArea_WidgetCMSPageLink" type="pagebuilder_text_widget_property">
5758
<data key="widgetType">Magento\Cms\Block\Widget\Page\Link</data>
5859
<data key="editPanelValue">{{widget type=&quot;Magento\\Cms\\Block\\Widget\\Page\\Link&quot; template=&quot;widget/link/link_block.phtml&quot; page_id=</data>
59-
</entity>
60+
</entity>
61+
<entity name="PageBuilderTextArea_WidgetCMSHomepageLink" type="pagebuilder_text_widget_property">
62+
<data key="widgetType">Magento\Cms\Block\Widget\Page\Link</data>
63+
<data key="editPanelValue">{{widget type="Magento\Cms\Block\Widget\Page\Link" template="widget/link/link_block.phtml" page_id="2" type_name="CMS Page Link"}}</data>
64+
</entity>
6065
</entities>

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

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,21 @@
1212
<element name="textAreaText" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]//div[.='{{arg2}}']" parameterized="true"/>
1313
<element name="hidden" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]/div/ancestor::*[contains(@class, 'pagebuilder-content-type-wrapper') and contains(@class, 'pagebuilder-content-type-hidden')]" parameterized="true"/>
1414
<element name="notHidden" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]/div/ancestor::*[contains(@class, 'pagebuilder-content-type-wrapper') and not(contains(@class, 'pagebuilder-content-type-hidden'))][1]" parameterized="true"/>
15-
<element name="textAreaTextContains" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]/div[contains(.,'{{arg2}}')]" parameterized="true"/>
15+
<element name="textAreaTextContains" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]//textarea[contains(@value,'{{arg2}}')]" parameterized="true"/>
1616
<element name="text" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]/div//*[contains(.,'{{arg2}}')]" parameterized="true"/>
1717
<element name="directive" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]/div//span[contains(.,'{{arg2}}')]" parameterized="true"/>
1818
<element name="mcePlaceholder" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]/div//*[starts-with(@id, '{{arg2}}')]" parameterized="true"/>
19+
<element name="variablePlaceholder" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg}}]//*[@data-bind='html: data.main.html']//*[contains(@class, 'magento-variable magento-placeholder')]" parameterized="true"/>
20+
<element name="widgetPlaceholder" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg}}]//*[@data-bind='html: data.main.html']//*[contains(@class, 'magento-placeholder magento-widget')]" parameterized="true"/>
1921
<element name="placeholder" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]//div[contains(@class, 'placeholder-text') and text()='Edit Text']" parameterized="true"/>
22+
<element name="textArea" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg}}]//textarea[contains(@class,'inline-wysiwyg-textarea')]" parameterized="true"/>
23+
<element name="textareaPlaceholder" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]//textarea[contains(@class, 'inline-wysiwyg-textarea') and contains(@placeholder,'Edit Text')]" parameterized="true"/>
24+
<element name="textPlaceholder" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg}}]//*[contains(@class, 'placeholder-text') and text()='Edit Text']" parameterized="true"/>
2025
<element name="tinymce" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg}}]//div[contains(@class, 'inline-wysiwyg')]" parameterized="true"/>
2126
<element name="importantStyle" type="text" selector="//span[text()='Important']"/>
2227
<element name="textInImportantStyle" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]//div[contains(normalize-space(@class), 'cms-content-important') and text()='{{arg2}}']" parameterized="true"/>
2328
<element name="emptyTextInImportantStyle" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]//div[contains(normalize-space(@class), 'cms-content-important')]" parameterized="true"/>
29+
<element name="imageSource" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]//img[contains(@src,'{{var1}}')]" parameterized="true"/>
2430
<!-- Advanced Configuration -->
2531
<element name="alignment" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]/div[contains(@style,'text-align: {{arg2}};')]" parameterized="true"/>
2632
<element name="noAlignment" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]/div[not(contains(@style,'text-align:'))]" parameterized="true"/>
@@ -46,6 +52,9 @@
4652
<element name="tinyMCEVariable" type="text" selector="(//body//span[contains(@class,'magento-variable') and .='{{arg1}}'])[{{arg2}}]" parameterized="true"/>
4753
<element name="tinyMCEWidget" type="text" selector="(//body//span[contains(@class,'magento-widget') and .='{{arg1}}'])[{{arg2}}]" parameterized="true"/>
4854
<element name="tinyMCEImage" type="text" selector="//img[contains(@src,'{{arg}}')]" parameterized="true"/>
55+
<element name="tinyMCE3" type="text" selector="#pagebuilder_text_form_content_tbl"/>
56+
<element name="tinyMCE3VariableBtn" type="text" selector="#pagebuilder_text_form_content_magentovariable"/>
57+
<element name="tinyMCE3WidgetBtn" type="text" selector="#pagebuilder_text_form_content_magentowidget"/>
4958
<!-- WYSIWYG Disabled -->
5059
<element name="textArea" type="text" selector="#pagebuilder_text_form_content"/>
5160
<element name="textAreaId" type="text" selector="pagebuilder_text_form_content"/>
@@ -58,14 +67,15 @@
5867
<element name="hidden" type="text" selector="(//div[@data-role='text'])[{{arg1}}][contains(@style, 'display: none')]" parameterized="true"/>
5968
<element name="notHidden" type="text" selector="(//div[@data-role='text'])[{{arg1}}][not(contains(@style, 'display: none'))]" parameterized="true"/>
6069
<element name="baseJs" type="text" selector="document.querySelectorAll('[data-role=\'text\']')[{{arg1}}]" parameterized="true"/>
61-
<element name="textAreaText" type="text" selector="(//div[@data-role='text'])[{{arg1}}][.='{{arg2}}']" parameterized="true"/>
6270
<element name="textAreaWidget" type="text" selector="(//div[@data-role='text'])[{{arg1}}]//a[contains(@href,'{{arg2}}{{arg3}}{{arg4}}')]" parameterized="true"/>
6371
<element name="textWidget" type="text" selector="(//div[@data-role='text'])[{{arg1}}]//a[contains(@href,'{{arg2}}{{arg3}}')]" parameterized="true"/>
72+
<element name="textAreaText" type="text" selector="(//div[@data-role='text'])[{{arg1}}][contains(text(),'{{arg2}}')]" parameterized="true"/>
6473
<element name="textAreaVariable" type="text" selector="(//div[@data-role='text'])[{{arg1}}]//a[contains(@href,'{{arg2}}{{arg3}}')]" parameterized="true"/>
6574
<element name="text" type="text" selector="(//div[@data-role='text'])[{{arg1}}]//*[contains(text(),'{{arg2}}')]" parameterized="true"/>
6675
<element name="empty" type="text" selector="//div[@data-role='text'][{{arg1}}][not(*)]" parameterized="true"/>
6776
<element name="image" type="text" selector="//div[@data-role='text'][{{arg1}}]//img[contains(@src,'{{arg2}}')]" parameterized="true"/>
6877
<element name="textInImportantStyle" type="text" selector="//div[contains(normalize-space(@class), 'cms-content-important') and text()='{{arg1}}']" parameterized="true"/>
78+
<element name="emptyTextInImportantStyle" type="text" selector="//div[@data-role='text'][{{arg1}}]//div[@class='cms-content-important'][not(*)]" parameterized="true"/>
6979
<!-- Advanced Configuration -->
7080
<element name="alignment" type="text" selector="(//div[@data-role='text'])[{{arg1}}][contains(@style,'text-align: {{arg2}};')]" parameterized="true"/>
7181
<element name="noAlignment" type="text" selector="(//div[@data-role='text'])[{{arg1}}][not(contains(@style,'text-align:'))]" parameterized="true"/>

0 commit comments

Comments
 (0)