Skip to content

Commit 5cc6819

Browse files
authored
ENGCOM-6384: Resolve Mass Delete Widget should have "Confirmation Modal" #25733
2 parents e6b14a9 + c6672eb commit 5cc6819

File tree

6 files changed

+122
-0
lines changed

6 files changed

+122
-0
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
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+
9+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="AdminMassDeleteWidgetActionGroup">
12+
<annotations>
13+
<description>Goes to the Admin Widgets list page. Mass delete widgets.</description>
14+
</annotations>
15+
<arguments>
16+
<argument name="row" type="string"/>
17+
</arguments>
18+
19+
<amOnPage url="{{AdminWidgetsPage.url}}" stepKey="visitAdminWidetPage"/>
20+
<conditionalClick selector="{{AdminDataGridHeaderSection.clearFilters}}"
21+
dependentSelector="{{AdminDataGridHeaderSection.clearFilters}}"
22+
visible="true" stepKey="clickClearFilters"/>
23+
24+
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear1"/>
25+
<waitForPageLoad stepKey="waitForPageLoad"/>
26+
<click selector="{{AdminWidgetsSection.massActionSelect}}" stepKey="massActionSelectClick"/>
27+
<click selector="{{AdminWidgetsSection.massActionSelectOptionAll}}" stepKey="massActionSelectOptionAllClick"/>
28+
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear2"/>
29+
<click selector="{{AdminWidgetsSection.massActionSelectAction}}" stepKey="massActionSelectActionClick"/>
30+
<click selector="{{AdminWidgetsSection.massActionSelectActionDelete}}" stepKey="massActionSelectActionDeleteClick"/>
31+
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear3"/>
32+
<click selector="{{AdminWidgetsSection.massActionSelectActionDeleteSubmit}}" stepKey="massActionSelectActionDeleteSubmitClick1"/>
33+
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear4"/>
34+
<seeElement selector="{{AdminWidgetsSection.WidgetViewModalDismiss}}" stepKey="widgetViewModalDismissSeeElement"/>
35+
<waitForPageLoad stepKey="waitForPageLoad3"/>
36+
<seeElement selector="{{AdminWidgetsSection.WidgetViewModalClose}}" stepKey="widgetViewModalCloseSeeElement"/>
37+
<click selector="{{AdminWidgetsSection.WidgetViewModalDismiss}}" stepKey="widgetViewModalDismissClick"/>
38+
<waitForElementNotVisible selector="{{AdminWidgetsSection.WidgetViewModalDismiss}}" stepKey="waitForModalClosed"/>
39+
<seeElement selector="{{AdminWidgetsSection.WidgetViewGridInstanceId(row)}}" stepKey="widgetViewGridRowSeeElement"/>
40+
<waitForPageLoad stepKey="waitForPageLoad4"/>
41+
<waitForElementVisible selector="{{AdminWidgetsSection.WidgetViewGridInstanceId(row)}}" stepKey="widgetViewGridInstanceIdWaitForElementVisible"/>
42+
<click selector="{{AdminWidgetsSection.massActionSelectActionDeleteSubmit}}" stepKey="massActionSelectActionDeleteSubmitClick2"/>
43+
<waitForElementVisible selector="{{AdminWidgetsSection.WidgetViewModalAccept}}" stepKey="waitForModalVisible"/>
44+
<click selector="{{AdminWidgetsSection.WidgetViewModalAccept}}" stepKey="widgetViewModalAcceptClick"/>
45+
<waitForPageLoad stepKey="waitForPageLoad5" />
46+
<waitForElementVisible selector="{{AdminWidgetsSection.WidgetViewGridInstanceRow(row)}}" stepKey="widgetViewGridInstanceRowWaitForElementVisible"/>
47+
<dontSeeElement selector="{{AdminWidgetsSection.WidgetViewGridInstanceId(row)}}" stepKey="widgetViewGridRowDontSeeElement"/>
48+
</actionGroup>
49+
</actionGroups>

app/code/Magento/Widget/Test/Mftf/Data/WidgetData.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,14 @@
1111
<entity name="WidgetWithBlock" type="widget">
1212
<data key="type">CMS Static Block</data>
1313
<data key="designTheme">Magento Luma</data>
14+
<data key="design_theme">Magento Luma</data>
1415
<data key="name" unique="suffix">testName</data>
1516
<data key="store_id">All Store Views</data>
17+
<array key="store_ids">
18+
<item>All Store Views</item>
19+
</array>
1620
<data key="display">All Pages</data>
1721
<data key="container">Page Top</data>
22+
<data key="display_on">All Pages</data>
1823
</entity>
1924
</entities>

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,16 @@
1313
<element name="searchButton" type="button" selector=".action-default.scalable.action-secondary"/>
1414
<element name="searchResult" type="text" selector="#widgetInstanceGrid_table>tbody>tr:nth-child(1)"/>
1515
<element name="resetFilter" type="button" selector="button[data-action='grid-filter-reset']"/>
16+
<element name="massActionSelect" type="select" selector="#widgetInstanceGrid_massaction-mass-select"/>
17+
<element name="massActionSelectOptionAll" type="select" selector="//*[@id='widgetInstanceGrid_massaction-mass-select']//option[@value='selectAll']"/>
18+
<element name="massActionSelectAction" type="multiselect" selector="//*[@id='widgetInstanceGrid_massaction-select']//option[contains(., 'Action')]" />
19+
<element name="massActionSelectActionDelete" type="multiselect" selector="//*[@id='widgetInstanceGrid_massaction-select']//option[@value='delete']" />
20+
<element name="massActionSelectActionDeleteSubmit" type="button" selector="#widgetInstanceGrid_massaction-form button.action-default"/>
21+
<element name="WidgetViewModalAccept" type="button" selector=".modal-popup.confirm._show .action-accept"/>
22+
<element name="WidgetViewModalDismiss" type="button" selector=".modal-popup.confirm._show .action-dismiss"/>
23+
<element name="WidgetViewModalClose" type="button" selector=".modal-popup.confirm._show .action-close"/>
24+
<element name="WidgetViewGridRow" type="text" selector="table.data-grid tbody tr[data-role=row]:nth-of-type({{row}})" parameterized="true"/>
25+
<element name="WidgetViewGridInstanceRow" type="text" selector="table.data-grid tbody tr[data-role=row]:nth-of-type({{row}})" parameterized="true"/>
26+
<element name="WidgetViewGridInstanceId" type="text" selector="table.data-grid tbody tr[data-role=row]:nth-of-type({{row}}) td[data-column=instance_id]" parameterized="true"/>
1627
</section>
1728
</sections>
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
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+
9+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
11+
<test name="AdminContentWidgetsMassDeletesTest">
12+
<annotations>
13+
<features value="Widget"/>
14+
<stories value="Widget mass delete"/>
15+
<title value="Admin mass delete widgets in grid"/>
16+
<description value="Admin select widgets in grid and try to mass delete action, will show pop-up with confirm action"/>
17+
<severity value="MAJOR"/>
18+
<group value="widget"/>
19+
</annotations>
20+
<before>
21+
<actionGroup ref="LoginAsAdmin" stepKey="LoginAsAdmin"/>
22+
</before>
23+
<after>
24+
<actionGroup ref="logout" stepKey="logout"/>
25+
</after>
26+
<actionGroup ref="AdminNavigateMenuActionGroup" stepKey="navigateToContentWidgetsPageFirst">
27+
<argument name="menuUiId" value="{{AdminMenuContent.dataUiId}}"/>
28+
<argument name="submenuUiId" value="{{AdminMenuContentElementsWidgets.dataUiId}}"/>
29+
</actionGroup>
30+
<actionGroup ref="AdminAssertPageTitleActionGroup" stepKey="seePageTitleFirst">
31+
<argument name="title" value="{{AdminMenuContentElementsWidgets.pageTitle}}"/>
32+
</actionGroup>
33+
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear1"/>
34+
<actionGroup ref="AdminCreateAndSaveWidgetActionGroup" stepKey="addWidgetForTest1">
35+
<argument name="widget" value="ProductsListWidget"/>
36+
</actionGroup>
37+
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear2"/>
38+
<actionGroup ref="AdminCreateAndSaveWidgetActionGroup" stepKey="addWidgetForTest2">
39+
<argument name="widget" value="ProductsListWidget"/>
40+
</actionGroup>
41+
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear4"/>
42+
<actionGroup ref="AdminNavigateMenuActionGroup" stepKey="navigateToContentWidgetsPageSecond">
43+
<argument name="menuUiId" value="{{AdminMenuContent.dataUiId}}"/>
44+
<argument name="submenuUiId" value="{{AdminMenuContentElementsWidgets.dataUiId}}"/>
45+
</actionGroup>
46+
<actionGroup ref="AdminAssertPageTitleActionGroup" stepKey="seePageTitleSecond">
47+
<argument name="title" value="{{AdminMenuContentElementsWidgets.pageTitle}}"/>
48+
</actionGroup>
49+
<waitForPageLoad stepKey="waitForPageLoad1"/>
50+
<actionGroup ref="AdminMassDeleteWidgetActionGroup" stepKey="massWidgetDelete">
51+
<argument name="row" value="1"/>
52+
</actionGroup>
53+
</test>
54+
</tests>
55+

app/code/Magento/Widget/i18n/en_US.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,3 +71,4 @@ Product,Product
7171
Conditions,Conditions
7272
"Widget ID","Widget ID"
7373
"Inserting a widget does not create a widget instance.","Inserting a widget does not create a widget instance."
74+
"Are you sure you want to delete the selected widget(s)?","Are you sure you want to delete the selected widget(s)?"

app/code/Magento/Widget/view/adminhtml/layout/adminhtml_widget_instance_block.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
<item name="label" xsi:type="string" translate="true">Delete</item>
2626
<item name="url" xsi:type="string">*/*/massDelete</item>
2727
<item name="selected" xsi:type="string">0</item>
28+
<item name="confirm" xsi:type="string" translate="true">Are you sure you want to delete the selected widget(s)?</item>
2829
</item>
2930
</argument>
3031
</arguments>

0 commit comments

Comments
 (0)