Skip to content

Commit a761899

Browse files
author
Hwashiang Yu
committed
MC-5386: Anchors Under Each Div if TinyMCE link Is Added to Banner/Slide (Add Notification for When Link Attribute Is Entered)
- Updated collected phrase for translation - Updated disimissible confirm to not have ability to change the content of modal button - Added test coverage for link url and link in message content validation - Added action groups and data to support new test coverage
1 parent 6fc6729 commit a761899

File tree

15 files changed

+319
-29
lines changed

15 files changed

+319
-29
lines changed

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

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,28 @@
3434
<waitForElementVisible selector="{{EditPanelForm.panelFieldValidationErrorMessage(property.section, property.fieldName, property.errorMessage)}}" stepKey="waitForErrorMessage"/>
3535
<waitForElementVisible selector="{{EditPanelForm.panelSectionError(property.section)}}" stepKey="waitForSectionError"/>
3636
</actionGroup>
37+
<actionGroup name="saveEditPanelAndValidateFieldErrorUrlInput">
38+
<arguments>
39+
<argument name="property"/>
40+
</arguments>
41+
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMask"/>
42+
<waitForElementVisible time="5" selector="{{EditPanelForm.editFormSave}}" stepKey="waitForColumnSaveButton"/>
43+
<click selector="{{EditPanelForm.editFormSave}}" stepKey="clickSaveColumn"/>
44+
<waitForElementVisible selector="{{EditPanelForm.panelFieldValidationError(property.section, property.fieldName)}}" stepKey="waitForErrorField"/>
45+
<waitForElementVisible selector="{{EditPanelForm.panelUrlInputFieldValidationErrorMessage(property.section, property.fieldName, property.errorMessage)}}" stepKey="waitForErrorMessage"/>
46+
<waitForElementVisible selector="{{EditPanelForm.panelSectionError(property.section)}}" stepKey="waitForSectionError"/>
47+
</actionGroup>
48+
<actionGroup name="saveEditPanelAndValidateFieldErrorWysiwyg">
49+
<arguments>
50+
<argument name="property"/>
51+
</arguments>
52+
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMask"/>
53+
<waitForElementVisible time="5" selector="{{EditPanelForm.editFormSave}}" stepKey="waitForColumnSaveButton"/>
54+
<click selector="{{EditPanelForm.editFormSave}}" stepKey="clickSaveColumn"/>
55+
<waitForElementVisible selector="{{EditPanelForm.panelWysiwygFieldValidationError(property.section, property.fieldName)}}" stepKey="waitForErrorField"/>
56+
<waitForElementVisible selector="{{EditPanelForm.panelWysiwygFieldValidationErrorMessage(property.section, property.fieldName, property.errorMessage)}}" stepKey="waitForErrorMessage"/>
57+
<waitForElementVisible selector="{{EditPanelForm.panelSectionError(property.section)}}" stepKey="waitForSectionError"/>
58+
</actionGroup>
3759
<actionGroup name="saveEditPanelAndValidateFieldErrorGeneralSection">
3860
<arguments>
3961
<argument name="form" defaultValue="EditPanelForm"/>

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,11 @@
150150
<waitForPageLoad stepKey="waitForPageLoad2"/>
151151
<waitForElementNotVisible selector="{{WYSIWYGInsertLinkModal.modal}}" stepKey="waitForInsertLinkModalGone"/>
152152
</actionGroup>
153+
154+
<actionGroup name="addPageLinkToTinyMCEInline" extends="insertLinkInWYSIWYG">
155+
<waitForElementVisible selector="{{TinyMCESection.InsertLink}}" stepKey="waitForInsertLinkButton"/>
156+
<click selector="{{TinyMCESection.InsertLink}}" stepKey="clickInsertLinkButton"/>
157+
</actionGroup>
153158
<actionGroup name="assertTextareaContainsValue">
154159
<arguments>
155160
<argument name="selector" type="string"/>

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,12 @@
6868
<data key="cmsPageLinkName" unique="suffix">cms-page-link-</data>
6969
<data key="value">Good Night!</data>
7070
</entity>
71+
<entity name="PageBuilderBannerMessageInvalidProperty" type="pagebuilder_banner_message_property">
72+
<data key="name">Message Text</data>
73+
<data key="section">contents</data>
74+
<data key="fieldName">message</data>
75+
<data key="errorMessage">Adding link in both content and outer element is not allowed.</data>
76+
</entity>
7177
<!-- Background Color -->
7278
<entity name="PageBuilderBannerBackgroundColor_Empty" type="pagebuilder_banner_background_color_property">
7379
<data key="name">Background Color</data>
@@ -106,6 +112,12 @@
106112
<data key="fieldName">link_url</data>
107113
<data key="value">true</data>
108114
</entity>
115+
<entity name="PageBuilderBannerLinkUrlInvalidProperty" type="pagebuilder_banner_linkUrl_property">
116+
<data key="name">Link</data>
117+
<data key="section">contents</data>
118+
<data key="fieldName">link_url</data>
119+
<data key="errorMessage">Adding link in both content and outer element is not allowed.</data>
120+
</entity>
109121
<!-- Show Button -->
110122
<entity name="PageBuilderBannerShowButtonDefaultProperty" type="pagebuilder_banner_show_button_property">
111123
<data key="name">Show Button</data>

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

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

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,10 @@
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"/>
3434
<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="panelWysiwygFieldValidationError" type="input" selector="//div[contains(@class,'_insert_form')]//div[@data-index='{{arg1}}']//div[@data-index='{{arg2}}' and contains(@class,'_error')]//div[contains(@class,'')]//textarea[@name='{{arg2}}']|//div[contains(@class,'_insert_form')]//div[@data-index='{{arg1}}']//div[@data-index='{{arg2}}' and contains(@class,'_error')]//div[contains(@class,'')]//div[contains(@class,'mce-tinymce')]" parameterized="true"/>
3536
<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"/>
37+
<element name="panelWysiwygFieldValidationErrorMessage" type="button" selector="//div[contains(@class,'_insert_form')]//div[@data-index='{{arg1}}']//div[contains(@class,'admin__field-control')]//textarea[@name='{{arg2}}']//..//..//../label[.='{{arg3}}']|//div[contains(@class,'_insert_form')]//div[@data-index='{{arg1}}']//div[contains(@class,'admin__field-control')]//div[contains(@class,'mce-tinymce')]//..//..//../label[.='{{arg3}}']" parameterized="true"/>
38+
<element name="panelUrlInputFieldValidationErrorMessage" 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"/>
3639
<element name="panelMultiSelectFieldControl" type="input" selector="aside [data-index='{{arg1}}'] [data-index='{{arg2}}'] [data-role='advanced-select']" parameterized="true"/>
3740
<element name="panelMultiSelectFieldControlInput" type="input" selector="aside [data-index='{{arg1}}'] [data-index='{{arg2}}'] .admin__action-multiselect-search" parameterized="true"/>
3841
<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: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2310,4 +2310,162 @@
23102310
<!-- Validate Image Editor On Storefront -->
23112311
<seeElement selector="{{BannerOnFrontend.messageContentTextAreaImage('1', PageBuilderBackgroundImage_JPG.value)}}" stepKey="validateImageFrontEnd"/>
23122312
</test>
2313+
2314+
<test name="BannerCannotHaveTinyMCELinkAndLinkUrl">
2315+
<annotations>
2316+
<features value="PageBuilder"/>
2317+
<stories value="Banner"/>
2318+
<title value="Can Not Add Both Banner TinyMCE Link and Link URL"/>
2319+
<description value="Banner edit form validate banner TinyMCE Link and Link URL could not be added at the same time."/>
2320+
<severity value="MAJOR"/>
2321+
<useCaseId value="MAGETWO-81599"/>
2322+
<testCaseId value="MC-2823"/>
2323+
<group value="pagebuilder"/>
2324+
<group value="pagebuilder-banner"/>
2325+
<group value="pagebuilder-bannerCommon"/>
2326+
</annotations>
2327+
<before>
2328+
<actionGroup ref="LoginAsAdmin" stepKey="loginAsAdmin"/>
2329+
<actionGroup ref="navigateToAPageWithPageBuilder" stepKey="navigateToAPageWithPageBuilder"/>
2330+
<actionGroup ref="switchToPageBuilderStage" stepKey="switchToPageBuilderStage"/>
2331+
</before>
2332+
<after>
2333+
<actionGroup ref="logout" stepKey="logout"/>
2334+
</after>
2335+
<actionGroup ref="addPageBuilderPageTitle" stepKey="enterPageTitle">
2336+
<argument name="contentType" value="PageBuilderBannerContentType"/>
2337+
</actionGroup>
2338+
<actionGroup ref="expandPageBuilderPanelGroup" stepKey="expandPageBuilderPanelGroup">
2339+
<argument name="group" value="PageBuilderBannerContentType"/>
2340+
</actionGroup>
2341+
<actionGroup ref="dragContentTypeToStage" stepKey="dragBannerIntoStage">
2342+
<argument name="contentType" value="PageBuilderBannerContentType"/>
2343+
</actionGroup>
2344+
<actionGroup ref="openPageBuilderEditPanel" stepKey="openEditMenuOnStage">
2345+
<argument name="contentType" value="PageBuilderBannerContentType"/>
2346+
</actionGroup>
2347+
<actionGroup ref="selectSlideOutPanelField" stepKey="enterBannerShowOverlayAlways">
2348+
<argument name="property" value="PageBuilderBannerShowContentOverlayAlwaysProperty"/>
2349+
</actionGroup>
2350+
<!-- Check Invalid Min -->
2351+
<comment userInput="Check Invalid Min" stepKey="commentCheckInvalidMin"/>
2352+
<actionGroup ref="fillSlideOutPanelFieldGeneral" stepKey="enterBannerOverlayTransparencyInvalidMin">
2353+
<argument name="property" value="PageBuilderBannerOverlayTransparencyInvalidMinProperty"/>
2354+
</actionGroup>
2355+
<actionGroup ref="saveEditPanelAndValidateFieldError" stepKey="validateInvalidMin">
2356+
<argument name="property" value="PageBuilderBannerOverlayTransparencyInvalidMinProperty"/>
2357+
</actionGroup>
2358+
<!-- Check Invalid Max -->
2359+
<comment userInput="Check Invalid Max" stepKey="commentCheckInvalidMax"/>
2360+
<actionGroup ref="fillSlideOutPanelFieldGeneral" stepKey="enterBannerOverlayTransparencyInvalidMax">
2361+
<argument name="property" value="PageBuilderBannerOverlayTransparencyInvalidMaxProperty"/>
2362+
</actionGroup>
2363+
<actionGroup ref="saveEditPanelAndValidateFieldError" stepKey="validateInvalidMax">
2364+
<argument name="property" value="PageBuilderBannerOverlayTransparencyInvalidMaxProperty"/>
2365+
</actionGroup>
2366+
<!-- Check Invalid Type -->
2367+
<comment userInput="Check Invalid Type" stepKey="commentCheckInvalidType"/>
2368+
<actionGroup ref="fillSlideOutPanelFieldGeneral" stepKey="enterBannerOverlayTransparencyInvalidType">
2369+
<argument name="property" value="PageBuilderBannerOverlayTransparencyInvalidTypeProperty"/>
2370+
</actionGroup>
2371+
<actionGroup ref="saveEditPanelAndValidateFieldError" stepKey="validateInvalidType">
2372+
<argument name="property" value="PageBuilderBannerOverlayTransparencyInvalidTypeProperty"/>
2373+
</actionGroup>
2374+
<!-- Check Valid -->
2375+
<comment userInput="Check Valid" stepKey="commentCheckValid"/>
2376+
<actionGroup ref="fillSlideOutPanelField" stepKey="enterBannerOverlayTransparencyValid">
2377+
<argument name="property" value="PageBuilderBannerOverlayTransparencyDefaultProperty"/>
2378+
</actionGroup>
2379+
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings"/>
2380+
</test>
2381+
<test name="BannerCannotHaveInlineWysiwygLinkAndLinkUrl">
2382+
<annotations>
2383+
<features value="PageBuilder"/>
2384+
<stories value="Banner"/>
2385+
<title value="Banner inline WYSIWYG editor will notify user of not adding "/>
2386+
<description value="Banner edit form and inline editor validate banner TinyMCE Link and Link URL could not be added at the same time."/>
2387+
<severity value="MAJOR"/>
2388+
<useCaseId value="MC-5386"/>
2389+
<testCaseId value="MC-6052"/>
2390+
<group value="pagebuilder"/>
2391+
<group value="pagebuilder-banner"/>
2392+
<group value="pagebuilder-bannerCommon"/>
2393+
</annotations>
2394+
<before>
2395+
<actionGroup ref="LoginAsAdmin" stepKey="loginAsAdmin"/>
2396+
<actionGroup ref="navigateToAPageWithPageBuilder" stepKey="navigateToAPageWithPageBuilder"/>
2397+
<actionGroup ref="switchToPageBuilderStage" stepKey="switchToPageBuilderStage"/>
2398+
</before>
2399+
<after>
2400+
<actionGroup ref="logout" stepKey="logout"/>
2401+
</after>
2402+
<actionGroup ref="addPageBuilderPageTitle" stepKey="enterPageTitle">
2403+
<argument name="contentType" value="PageBuilderBannerContentType"/>
2404+
</actionGroup>
2405+
<actionGroup ref="expandPageBuilderPanelGroup" stepKey="expandPageBuilderPanelGroup">
2406+
<argument name="group" value="PageBuilderBannerContentType"/>
2407+
</actionGroup>
2408+
<actionGroup ref="dragContentTypeToStage" stepKey="dragBannerIntoStage">
2409+
<argument name="contentType" value="PageBuilderBannerContentType"/>
2410+
</actionGroup>
2411+
<actionGroup ref="openPageBuilderEditPanel" stepKey="openEditMenuOnStage">
2412+
<argument name="contentType" value="PageBuilderBannerContentType"/>
2413+
</actionGroup>
2414+
<!-- Check Invalid Link Url and Message Text -->
2415+
<comment userInput="- Check Invalid Link Url and Message Text" stepKey="commentCheckInvalidLinkUrlAndMessageText"/>
2416+
<actionGroup ref="fillSlideOutPanelLinkUrlField" stepKey="enterLink">
2417+
<argument name="property" value="PageBuilderBannerLinkUrlProperty"/>
2418+
<argument name="selection" value="{{ExternalLink.url}}"/>
2419+
<argument name="newTab" value="PageBuilderBannerNewTabProperty"/>
2420+
</actionGroup>
2421+
<actionGroup ref="insertLinkInWYSIWYG" stepKey="insertLinkInWYSIWYG">
2422+
<argument name="url" value="{{ExternalLink.googleUrl}}"/>
2423+
<argument name="textToDisplay" value="{{ExternalLink.googleUrl}}"/>
2424+
</actionGroup>
2425+
<actionGroup ref="saveEditPanelAndValidateFieldErrorUrlInput" stepKey="validateInvalidLinkUrl">
2426+
<argument name="property" value="PageBuilderBannerLinkUrlInvalidProperty"/>
2427+
</actionGroup>
2428+
<actionGroup ref="saveEditPanelAndValidateFieldErrorWysiwyg" stepKey="validateInvalidMessageWithUrl">
2429+
<argument name="property" value="PageBuilderBannerMessageInvalidProperty"/>
2430+
</actionGroup>
2431+
<!-- Reset and Fill Url -->
2432+
<comment userInput="Reset and Fill Url" stepKey="commentResetAndFillUrl"/>
2433+
<actionGroup ref="closeEditPanelSettings" stepKey="closeEditPanelSettings"/>
2434+
<actionGroup ref="openPageBuilderEditPanel" stepKey="openEditMenuOnStageAfterInitialValidation">
2435+
<argument name="contentType" value="PageBuilderBannerContentType"/>
2436+
</actionGroup>
2437+
<actionGroup ref="fillSlideOutPanelLinkUrlField" stepKey="enterLinkAfterInitialValidation">
2438+
<argument name="property" value="PageBuilderBannerLinkUrlProperty"/>
2439+
<argument name="selection" value="{{ExternalLink.url}}"/>
2440+
<argument name="newTab" value="PageBuilderBannerNewTabProperty"/>
2441+
</actionGroup>
2442+
<actionGroup ref="addTextToTinyMCE" stepKey="enterMessageText">
2443+
<argument name="property" value="PageBuilderBannerMessageProperty"/>
2444+
<argument name="section" value="BannerOnConfigurationPanel"/>
2445+
</actionGroup>
2446+
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings"/>
2447+
<!-- Validate Inline Editor -->
2448+
<comment userInput="Validate Inline Editor" stepKey="commentValidateInlineEditor"/>
2449+
<click selector="{{PageBuilderStage.inlineWYSIWYGEditor(PageBuilderBannerContentType.role, '1')}}" stepKey="focusOnEditorArea"/>
2450+
<waitForElementVisible selector="{{PageBuilderStage.inlineWYSIWYGEditorPanel(PageBuilderBannerContentType.role, '1')}}" stepKey="waitForEditorPanel"/>
2451+
<actionGroup ref="addPageLinkToTinyMCEInline" stepKey="insertLinkInStageInlineEditor">
2452+
<argument name="url" value="{{ExternalLink.googleUrl}}"/>
2453+
<argument name="textToDisplay" value="{{ExternalLink.googleUrl}}"/>
2454+
</actionGroup>
2455+
<actionGroup ref="confirmRemovalModal" stepKey="confirmNestingLinkModal"/>
2456+
<executeJS function="return (/&lt;a[\s]+([^&gt;]+)&gt;|&lt;a&gt;|&lt;\/a&gt;/igm).test(tinymce.activeEditor.getContent());" stepKey="grabIfAnchorInWysiwygBoolean"/>
2457+
<assertFalse stepKey="assertMessageHasNoAnchorTags">
2458+
<actualResult type="variable">grabIfAnchorInWysiwygBoolean</actualResult>
2459+
</assertFalse>
2460+
<!-- Validate Slide Out Editor -->
2461+
<comment userInput="Validate Slide Out Editor" stepKey="commentValidateSlideOutEditor"/>
2462+
<click selector="{{PageBuilderPanel.searchPanel}}" stepKey="unFocusEditor"/>
2463+
<actionGroup ref="openPageBuilderEditPanel" stepKey="openEditMenuOnStageAfterInlineValidation">
2464+
<argument name="contentType" value="PageBuilderBannerContentType"/>
2465+
</actionGroup>
2466+
<executeJS function="return (/&lt;a[\s]+([^&gt;]+)&gt;|&lt;a&gt;|&lt;\/a&gt;/igm).test(tinymce.activeEditor.getContent());" stepKey="grabIfAnchorInSlideOutWysiwygBoolean"/>
2467+
<assertFalse stepKey="assertMessageHasNoAnchorTags2">
2468+
<actualResult type="variable">grabIfAnchorInSlideOutWysiwygBoolean</actualResult>
2469+
</assertFalse>
2470+
</test>
23132471
</tests>

0 commit comments

Comments
 (0)