Skip to content

Commit 1971941

Browse files
committed
Merge branch 'MC-5386-anchor-div-notification-banner-slider' of github.com:magento-obsessive-owls/magento2-page-builder into cms-team-1-delivery
2 parents 0b450f3 + 804c823 commit 1971941

File tree

20 files changed

+524
-20
lines changed

20 files changed

+524
-20
lines changed

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
<waitForElementVisible selector="{{section.textInIFrame(property.value)}}" stepKey="waitForTextVisible"/>
2323
<switchToIFrame stepKey="exitIFrame"/>
2424
</actionGroup>
25+
<actionGroup name="replaceTextToTinyMCE" extends="addTextToTinyMCE">
26+
<executeJS function="tinymce.activeEditor.setContent('{{property.value}}')" stepKey="addTextToWYSIWYG"/>
27+
</actionGroup>
2528
<actionGroup name="addVariableToTinyMCE">
2629
<arguments>
2730
<argument name="variable" defaultValue=""/>
@@ -137,10 +140,11 @@
137140
<argument name="url" type="string"/>
138141
<argument name="textToDisplay" type="string"/>
139142
<argument name="title" type="string" defaultValue=""/>
143+
<argument name="wysiwygArea" defaultValue="{{WYSIWYGOnPageBuilderInline.notCss}}" type="string"/>
140144
</arguments>
141145
<comment userInput="insertLinkInWYSIWYG" stepKey="comment"/>
142-
<waitForElementVisible selector="{{WYSIWYGOnPageBuilderInline.notCss}} {{section.InsertLink}}" stepKey="waitForInsertLinkButton"/>
143-
<click selector="{{WYSIWYGOnPageBuilderInline.notCss}} {{section.InsertLink}}" stepKey="clickInsertLinkButton"/>
146+
<waitForElementVisible selector="{{wysiwygArea}} {{section.InsertLink}}" stepKey="waitForInsertLinkButton"/>
147+
<click selector="{{wysiwygArea}} {{section.InsertLink}}" stepKey="clickInsertLinkButton"/>
144148
<waitForPageLoad stepKey="waitForPageLoad"/>
145149
<waitForElementVisible selector="{{WYSIWYGInsertLinkModal.modal}}" stepKey="waitForInsertLinkModal"/>
146150
<fillField selector="{{WYSIWYGInsertLinkModal.urlInput}}" userInput="{{url}}" stepKey="insertUrl"/>

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,13 @@
7575
<data key="fieldName">message</data>
7676
<data key="value">This is a really long message that will wrap when it is placed in a small container.</data>
7777
</entity>
78+
<entity name="PageBuilderBannerMessageInvalidProperty" type="pagebuilder_banner_message_property">
79+
<data key="name">Message Text</data>
80+
<data key="section">contents</data>
81+
<data key="fieldName">message</data>
82+
<data key="errorMessage">Adding link in both content and outer element is not allowed.</data>
83+
<data key="stageErrorMessage">We are unable to support links within the content field whilst having a link set on the content type. Please remove the content type link if you'd like to set a link within the content. We will automatically remove the links within the content field.</data>
84+
</entity>
7885
<!-- Background Color -->
7986
<entity name="PageBuilderBannerBackgroundColor_Empty" type="pagebuilder_banner_background_color_property">
8087
<data key="name">Background Color</data>
@@ -113,6 +120,12 @@
113120
<data key="fieldName">link_url</data>
114121
<data key="value">true</data>
115122
</entity>
123+
<entity name="PageBuilderBannerLinkUrlInvalidProperty" type="pagebuilder_banner_linkUrl_property">
124+
<data key="name">Link</data>
125+
<data key="section">contents</data>
126+
<data key="fieldName">link_url</data>
127+
<data key="errorMessage">Adding link in both content and outer element is not allowed.</data>
128+
</entity>
116129
<!-- Show Button -->
117130
<entity name="PageBuilderBannerShowButtonDefaultProperty" type="pagebuilder_banner_show_button_property">
118131
<data key="name">Show Button</data>

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

Lines changed: 13 additions & 0 deletions
Large diffs are not rendered by default.

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131
<element name="panelFieldNoPlaceholderText" type="input" selector='//div[@data-index="{{arg1}}"]/descendant::*[@name="{{arg2}}" and not(@placeholder)]' parameterized="true"/>
3232
<element name="panelFieldAfterLabelText" type="text" selector="//div[@data-index='{{arg1}}']//span[@data-bind='text: addafter' and .='{{arg2}}']" parameterized="true"/>
3333
<element name="panelFieldNoAfterLabelText" type="text" selector="//div[@data-index='{{arg1}}']//span[@data-bind='text: addafter']" parameterized="true"/>
34-
<element name="panelFieldValidationError" type="input" selector="//div[contains(@class,'_insert_form')]//div[@data-index='{{arg1}}']//div[@data-index='{{arg2}}' and contains(@class,'_error')]//div[contains(@class,'')]//input[@name='{{arg2}}']" parameterized="true"/>
35-
<element name="panelFieldValidationErrorMessage" type="button" selector="//div[contains(@class,'_insert_form')]//div[@data-index='{{arg1}}']//div[contains(@class,'admin__field-control')]//input[@name='{{arg2}}']//..//../label[.='{{arg3}}']" parameterized="true"/>
34+
<element name="panelFieldValidationError" type="input" selector="//div[contains(@class,'_insert_form')]//div[@data-index='{{arg1}}']//div[@data-index='{{arg2}}' and contains(@class,'_error')]//div[contains(@class,'')]//*[@name='{{arg2}}' or contains(@class,'mce-tinymce')]" parameterized="true"/>
35+
<element name="panelFieldValidationErrorMessage" type="button" selector="//div[contains(@class,'_insert_form')]//div[@data-index='{{arg1}}']//div[contains(@class,'admin__field-control')]//*[@name='{{arg2}}' or contains(@class,'mce-tinymce')]//..//..//..//label[.='{{arg3}}']" parameterized="true"/>
3636
<element name="panelMultiSelectFieldControl" type="input" selector="aside [data-index='{{arg1}}'] [data-index='{{arg2}}'] [data-role='advanced-select']" parameterized="true"/>
3737
<element name="panelMultiSelectFieldControlInput" type="input" selector="aside [data-index='{{arg1}}'] [data-index='{{arg2}}'] .admin__action-multiselect-search" parameterized="true"/>
3838
<element name="panelMultiSelectFieldControlResult" type="input" selector="//aside//div[@data-index='{{arg1}}']//div[@data-index='{{arg2}}']//div[contains(@class,'action-menu-item')]//span[.='{{arg3}}']" parameterized="true"/>

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

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2224,4 +2224,101 @@
22242224
<!-- Validate Image Editor On Storefront -->
22252225
<seeElement selector="{{BannerOnFrontend.messageContentTextAreaImage('1', PageBuilderBackgroundImage_JPG.value)}}" stepKey="validateImageFrontEnd"/>
22262226
</test>
2227+
<test name="BannerCannotHaveInlineWysiwygLinkAndLinkUrl">
2228+
<annotations>
2229+
<features value="PageBuilder"/>
2230+
<stories value="Banner"/>
2231+
<title value="Banner inline WYSIWYG editor will notify user that they cannot add TinyMCE Link and Link URL at the same time"/>
2232+
<description value="Banner edit form and inline editor validate banner TinyMCE Link and Link URL could not be added at the same time."/>
2233+
<severity value="MAJOR"/>
2234+
<useCaseId value="MC-5386"/>
2235+
<testCaseId value="MC-6052"/>
2236+
<group value="pagebuilder"/>
2237+
<group value="pagebuilder-banner"/>
2238+
<group value="pagebuilder-bannerCommon"/>
2239+
</annotations>
2240+
<before>
2241+
<actionGroup ref="LoginAsAdmin" stepKey="loginAsAdmin"/>
2242+
<actionGroup ref="navigateToAPageWithPageBuilder" stepKey="navigateToAPageWithPageBuilder"/>
2243+
<actionGroup ref="switchToPageBuilderStage" stepKey="switchToPageBuilderStage"/>
2244+
</before>
2245+
<after>
2246+
<actionGroup ref="logout" stepKey="logout"/>
2247+
</after>
2248+
<actionGroup ref="addPageBuilderPageTitle" stepKey="enterPageTitle">
2249+
<argument name="contentType" value="PageBuilderBannerContentType"/>
2250+
</actionGroup>
2251+
<actionGroup ref="expandPageBuilderPanelGroup" stepKey="expandPageBuilderPanelGroup">
2252+
<argument name="group" value="PageBuilderBannerContentType"/>
2253+
</actionGroup>
2254+
<actionGroup ref="dragContentTypeToStage" stepKey="dragBannerIntoStage">
2255+
<argument name="contentType" value="PageBuilderBannerContentType"/>
2256+
</actionGroup>
2257+
<actionGroup ref="openPageBuilderEditPanel" stepKey="openEditMenuOnStage">
2258+
<argument name="contentType" value="PageBuilderBannerContentType"/>
2259+
</actionGroup>
2260+
<!-- Check Invalid Link Url and Message Text -->
2261+
<comment userInput="Check Invalid Link Url and Message Text" stepKey="commentCheckInvalidLinkUrlAndMessageText"/>
2262+
<actionGroup ref="fillSlideOutPanelLinkUrlField" stepKey="enterLink">
2263+
<argument name="property" value="PageBuilderBannerLinkUrlProperty"/>
2264+
<argument name="selection" value="{{ExternalLink.url}}"/>
2265+
<argument name="newTab" value="PageBuilderBannerNewTabProperty"/>
2266+
</actionGroup>
2267+
<actionGroup ref="insertLinkInWYSIWYG" stepKey="insertLinkInWYSIWYG">
2268+
<argument name="url" value="{{ExternalLink.googleUrl}}"/>
2269+
<argument name="textToDisplay" value="{{ExternalLink.googleUrl}}"/>
2270+
</actionGroup>
2271+
<actionGroup ref="saveEditPanelAndValidateFieldError" stepKey="validateInvalidLinkUrl">
2272+
<argument name="property" value="PageBuilderBannerLinkUrlInvalidProperty"/>
2273+
</actionGroup>
2274+
<actionGroup ref="saveEditPanelAndValidateFieldError" stepKey="validateInvalidMessageWithUrl">
2275+
<argument name="property" value="PageBuilderBannerMessageInvalidProperty"/>
2276+
</actionGroup>
2277+
<!-- Correcting invalid fields -->
2278+
<comment userInput="Correcting invalid fields" stepKey="commentCorrectingInvalidFields"/>
2279+
<actionGroup ref="replaceTextToTinyMCE" stepKey="replaceMessageText">
2280+
<argument name="property" value="PageBuilderBannerMessageProperty"/>
2281+
<argument name="section" value="BannerOnConfigurationPanel"/>
2282+
</actionGroup>
2283+
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings"/>
2284+
<!-- Check inline editor will validate for not allowing TinyMCE Link and Link URL at the same time -->
2285+
<comment userInput="Check inline editor will validate for not allowing TinyMCE Link and Link URL at the same time" stepKey="commentCheckInlineEditorPreventAddingBothUrls"/>
2286+
<click selector="{{PageBuilderStage.inlineWYSIWYGEditor(PageBuilderBannerContentType.role, '1')}}" stepKey="focusOnEditorArea"/>
2287+
<waitForElementVisible selector="{{PageBuilderStage.inlineWYSIWYGEditorPanel(PageBuilderBannerContentType.role, '1')}}" stepKey="waitForEditorPanel"/>
2288+
<actionGroup ref="insertLinkInWYSIWYG" stepKey="insertLinkInStageInlineEditor">
2289+
<argument name="url" value="{{ExternalLink.googleUrl}}"/>
2290+
<argument name="textToDisplay" value="{{ExternalLink.googleUrl}}"/>
2291+
<argument name="wysiwygArea" value=""/>
2292+
</actionGroup>
2293+
<seeElement selector="{{PageBuilderStage.modal(PageBuilderBannerMessageInvalidProperty.stageErrorMessage)}}" stepKey="seeCorrectErrorModal"/>
2294+
<actionGroup ref="confirmRemovalModal" stepKey="confirmNestingLinkModal"/>
2295+
<!-- Checks for a tags within the tinyMCE with regex -->
2296+
<executeJS function="return (/&lt;a[\s]+([^&gt;]+)&gt;|&lt;a&gt;|&lt;\/a&gt;/igm).test(tinymce.activeEditor.getContent());" stepKey="grabIfAnchorInWysiwygBoolean"/>
2297+
<assertFalse stepKey="assertMessageHasNoAnchorTags">
2298+
<actualResult type="variable">grabIfAnchorInWysiwygBoolean</actualResult>
2299+
</assertFalse>
2300+
<!-- Check slide out editor will validate for not allowing TinyMCE Link and Link URL at the same time -->
2301+
<comment userInput="Check slide out editor will validate for not allowing TinyMCE Link and Link URL at the same time" stepKey="commentCheckSlideOutEditorPreventAddingBothUrls"/>
2302+
<click selector="{{PageBuilderPanel.searchPanel}}" stepKey="unFocusEditor"/>
2303+
<actionGroup ref="openPageBuilderEditPanel" stepKey="openEditMenuOnStageAfterInlineValidation">
2304+
<argument name="contentType" value="PageBuilderBannerContentType"/>
2305+
</actionGroup>
2306+
<!-- Checks for a tags within the tinyMCE with regex -->
2307+
<executeJS function="return (/&lt;a[\s]+([^&gt;]+)&gt;|&lt;a&gt;|&lt;\/a&gt;/igm).test(tinymce.activeEditor.getContent());" stepKey="grabIfAnchorInSlideOutWysiwygBoolean"/>
2308+
<assertFalse stepKey="assertMessageHasNoAnchorTags2">
2309+
<actualResult type="variable">grabIfAnchorInSlideOutWysiwygBoolean</actualResult>
2310+
</assertFalse>
2311+
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings2"/>
2312+
<actionGroup ref="saveAndContinueEditCmsPage" stepKey="saveAndContinueEditCmsPage"/>
2313+
<!-- Storefront: Validate No Link in Banner Content -->
2314+
<comment userInput="Storefront: Validate No Link in Banner Content" stepKey="CommentValidateNoLinkInBannerContent"/>
2315+
<actionGroup ref="navigateToStoreFront" stepKey="navigateToStoreFront">
2316+
<argument name="contentType" value="PageBuilderBannerContentType"/>
2317+
</actionGroup>
2318+
<!-- Checks for a tags within the message with regex -->
2319+
<executeJS function="return (/&lt;a[\s]+([^&gt;]+)&gt;|&lt;a&gt;|&lt;\/a&gt;/igm).test({{BannerOnFrontend.contentJS('1')}}.innerHTML);" stepKey="grabIfFrontendAnchorInContentBoolean"/>
2320+
<assertFalse stepKey="assertFrontendMessageHasNoAnchorTags">
2321+
<actualResult type="variable">grabIfFrontendAnchorInContentBoolean</actualResult>
2322+
</assertFalse>
2323+
</test>
22272324
</tests>

0 commit comments

Comments
 (0)