Skip to content

Commit 89d3814

Browse files
author
saphaljha
committed
Updated code for validate empty nodeList and covered MFTF
1 parent 9f9d2cb commit 89d3814

File tree

4 files changed

+87
-11
lines changed

4 files changed

+87
-11
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<actionGroups
9+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="AdminCreateAndDeleteMultipleLayoutWidgetActionGroup">
12+
<annotations>
13+
<description>Goes to the Admin Widget creation page. Add and delete multiple layouts</description>
14+
</annotations>
15+
<arguments>
16+
<argument name="widget"/>
17+
</arguments>
18+
<amOnPage url="{{AdminNewWidgetPage.url}}" stepKey="amOnAdminNewWidgetPage"/>
19+
<selectOption selector="{{AdminNewWidgetSection.widgetType}}" userInput="{{widget.type}}" stepKey="setWidgetType"/>
20+
<selectOption selector="{{AdminNewWidgetSection.widgetDesignTheme}}" userInput="{{widget.design_theme}}" stepKey="setWidgetDesignTheme"/>
21+
<click selector="{{AdminNewWidgetSection.continue}}" stepKey="clickContinue"/>
22+
<fillField selector="{{AdminNewWidgetSection.widgetTitle}}" userInput="{{widget.name}}" stepKey="fillTitle"/>
23+
<selectOption selector="{{AdminNewWidgetSection.widgetStoreIds}}" userInput="{{widget.store_ids[0]}}" stepKey="setWidgetStoreIds"/>
24+
<click selector="{{AdminNewWidgetSection.addLayoutUpdate}}" stepKey="clickAddLayoutUpdate"/>
25+
<waitForAjaxLoad stepKey="waitForLoad"/>
26+
<click selector="{{AdminNewWidgetSection.addLayoutUpdate}}" stepKey="clickAddLayoutUpdate2"/>
27+
<waitForAjaxLoad stepKey="waitForLoad2"/>
28+
<click selector="{{AdminNewWidgetSection.addLayoutUpdate}}" stepKey="clickAddLayoutUpdate3"/>
29+
<waitForAjaxLoad stepKey="waitForLoad3"/>
30+
<seeNumberOfElements userInput="3" selector="{{AdminNewWidgetSection.CountDeleteButtons}}" stepKey="seeThreeDeleteButtons"/>
31+
<click selector="{{AdminNewWidgetSection.deleteActionThird}}" stepKey="clickThirdDeleteButton"/>
32+
<seeNumberOfElements userInput="2" selector="{{AdminNewWidgetSection.CountDeleteButtons}}" stepKey="seeTwoDeleteButtons"/>
33+
<click selector="{{AdminNewWidgetSection.deleteActionSecond}}" stepKey="clickSecondDeleteButton"/>
34+
<seeNumberOfElements userInput="1" selector="{{AdminNewWidgetSection.CountDeleteButtons}}" stepKey="seeOneDeleteButtons"/>
35+
<click selector="{{AdminNewWidgetSection.deleteActionFirst}}" stepKey="clickFirstDeleteButton"/>
36+
<seeNumberOfElements userInput="0" selector="{{AdminNewWidgetSection.CountDeleteButtons}}" stepKey="seeZeroDeleteButtons"/>
37+
</actionGroup>
38+
</actionGroups>

app/code/Magento/Widget/Test/Mftf/Section/AdminNewWidgetSection.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@
4949
<element name="displayPageControl" type="select" selector="[name='parameters[show_pager]']"/>
5050
<element name="numberOfProductsToDisplay" type="input" selector="[name='parameters[products_count]']"/>
5151
<element name="cacheLifetime" type="input" selector="[name='parameters[cache_lifetime]']"/>
52+
<element name="deleteWidgetLayoutAction" type="button" selector="#page_group_container > div:first-of-type > div.fieldset-wrapper-title > div > .action-default.action-delete"/>
53+
<element name="CountDeleteButtons" type="button" selector="#page_group_container > .fieldset-wrapper.page_group_container > div.fieldset-wrapper-title > div > .action-default.action-delete"/>
5254
</section>
5355
</sections>
5456

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
9+
<test name="AdminWidgetAddAndDeleteMultipleLayoutSectionsTest">
10+
<annotations>
11+
<features value="Widget"/>
12+
<stories value="Add and Delete multiple layouts when creating a Widget"/>
13+
<title value="Add and Delete multiple layouts"/>
14+
<description value="Admin should be able to Add and Delete multiple layouts"/>
15+
<severity value="CRITICAL"/>
16+
<group value="Widget"/>
17+
</annotations>
18+
<before>
19+
<actionGroup ref="AdminLoginActionGroup" stepKey="LoginAsAdmin"/>
20+
</before>
21+
<after>
22+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
23+
</after>
24+
<actionGroup ref="AdminNavigateMenuActionGroup" stepKey="navigateToContentWidgetsPageFirst">
25+
<argument name="menuUiId" value="{{AdminMenuContent.dataUiId}}"/>
26+
<argument name="submenuUiId" value="{{AdminMenuContentElementsWidgets.dataUiId}}"/>
27+
</actionGroup>
28+
<actionGroup ref="AdminAssertPageTitleActionGroup" stepKey="seePageTitleFirst">
29+
<argument name="title" value="{{AdminMenuContentElementsWidgets.pageTitle}}"/>
30+
</actionGroup>
31+
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear1"/>
32+
<actionGroup ref="AdminCreateAndDeleteMultipleLayoutWidgetActionGroup" stepKey="addWidgetForTest">
33+
<argument name="widget" value="ProductsListWidget"/>
34+
</actionGroup>
35+
</test>
36+
</tests>

lib/internal/Magento/Framework/View/Helper/SecureHtmlRenderer.php

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -112,19 +112,19 @@ function {$listenerFunction} () {
112112
{$attributeJavascript};
113113
}
114114
var {$elementName}Array = document.querySelectorAll("{$elementSelector}");
115-
116-
{$elementName}Array.forEach(function(element){
117-
if (element) {
118-
element.{$eventName} = function (event) {
119-
var targetElement = element;
120-
if (event && event.target) {
121-
targetElement = event.target;
115+
if({$elementName}Array.lenght !== 'undefined'){
116+
{$elementName}Array.forEach(function(element){
117+
if (element) {
118+
element.{$eventName} = function (event) {
119+
var targetElement = element;
120+
if (event && event.target) {
121+
targetElement = event.target;
122+
}
123+
{$listenerFunction}.apply(targetElement);
122124
}
123-
{$listenerFunction}.apply(targetElement);
124125
}
125-
}
126-
});
127-
126+
});
127+
}
128128
129129
script;
130130

0 commit comments

Comments
 (0)