Skip to content

Resolve Mass Delete Widget should have "Confirmation Modal" #25733

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->

<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
<actionGroup name="AdminMassDeleteWidgetActionGroup">
<annotations>
<description>Goes to the Admin Widgets list page. Mass delete widgets.</description>
</annotations>
<arguments>
<argument name="row" type="string"/>
</arguments>

<amOnPage url="{{AdminWidgetsPage.url}}" stepKey="visitAdminWidetPage"/>
<conditionalClick selector="{{AdminDataGridHeaderSection.clearFilters}}"
dependentSelector="{{AdminDataGridHeaderSection.clearFilters}}"
visible="true" stepKey="clickClearFilters"/>

<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear1"/>
<waitForPageLoad stepKey="waitForPageLoad"/>
<click selector="{{AdminWidgetsSection.massActionSelect}}" stepKey="massActionSelectClick"/>
<click selector="{{AdminWidgetsSection.massActionSelectOptionAll}}" stepKey="massActionSelectOptionAllClick"/>
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear2"/>
<click selector="{{AdminWidgetsSection.massActionSelectAction}}" stepKey="massActionSelectActionClick"/>
<click selector="{{AdminWidgetsSection.massActionSelectActionDelete}}" stepKey="massActionSelectActionDeleteClick"/>
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear3"/>
<click selector="{{AdminWidgetsSection.massActionSelectActionDeleteSubmit}}" stepKey="massActionSelectActionDeleteSubmitClick1"/>
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear4"/>
<seeElement selector="{{AdminWidgetsSection.WidgetViewModalDismiss}}" stepKey="widgetViewModalDismissSeeElement"/>
<waitForPageLoad stepKey="waitForPageLoad3"/>
<seeElement selector="{{AdminWidgetsSection.WidgetViewModalClose}}" stepKey="widgetViewModalCloseSeeElement"/>
<click selector="{{AdminWidgetsSection.WidgetViewModalDismiss}}" stepKey="widgetViewModalDismissClick"/>
<waitForElementNotVisible selector="{{AdminWidgetsSection.WidgetViewModalDismiss}}" stepKey="waitForModalClosed"/>
<seeElement selector="{{AdminWidgetsSection.WidgetViewGridInstanceId(row)}}" stepKey="widgetViewGridRowSeeElement"/>
<waitForPageLoad stepKey="waitForPageLoad4"/>
<waitForElementVisible selector="{{AdminWidgetsSection.WidgetViewGridInstanceId(row)}}" stepKey="widgetViewGridInstanceIdWaitForElementVisible"/>
<click selector="{{AdminWidgetsSection.massActionSelectActionDeleteSubmit}}" stepKey="massActionSelectActionDeleteSubmitClick2"/>
<waitForElementVisible selector="{{AdminWidgetsSection.WidgetViewModalAccept}}" stepKey="waitForModalVisible"/>
<click selector="{{AdminWidgetsSection.WidgetViewModalAccept}}" stepKey="widgetViewModalAcceptClick"/>
<waitForPageLoad stepKey="waitForPageLoad5" />
<waitForElementVisible selector="{{AdminWidgetsSection.WidgetViewGridInstanceRow(row)}}" stepKey="widgetViewGridInstanceRowWaitForElementVisible"/>
<dontSeeElement selector="{{AdminWidgetsSection.WidgetViewGridInstanceId(row)}}" stepKey="widgetViewGridRowDontSeeElement"/>
</actionGroup>
</actionGroups>
5 changes: 5 additions & 0 deletions app/code/Magento/Widget/Test/Mftf/Data/WidgetData.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,14 @@
<entity name="WidgetWithBlock" type="widget">
<data key="type">CMS Static Block</data>
<data key="designTheme">Magento Luma</data>
<data key="design_theme">Magento Luma</data>
<data key="name" unique="suffix">testName</data>
<data key="store_id">All Store Views</data>
<array key="store_ids">
<item>All Store Views</item>
</array>
<data key="display">All Pages</data>
<data key="container">Page Top</data>
<data key="display_on">All Pages</data>
</entity>
</entities>
11 changes: 11 additions & 0 deletions app/code/Magento/Widget/Test/Mftf/Section/AdminWidgetsSection.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,16 @@
<element name="searchButton" type="button" selector=".action-default.scalable.action-secondary"/>
<element name="searchResult" type="text" selector="#widgetInstanceGrid_table>tbody>tr:nth-child(1)"/>
<element name="resetFilter" type="button" selector="button[data-action='grid-filter-reset']"/>
<element name="massActionSelect" type="select" selector="#widgetInstanceGrid_massaction-mass-select"/>
<element name="massActionSelectOptionAll" type="select" selector="//*[@id='widgetInstanceGrid_massaction-mass-select']//option[@value='selectAll']"/>
<element name="massActionSelectAction" type="multiselect" selector="//*[@id='widgetInstanceGrid_massaction-select']//option[contains(., 'Action')]" />
<element name="massActionSelectActionDelete" type="multiselect" selector="//*[@id='widgetInstanceGrid_massaction-select']//option[@value='delete']" />
<element name="massActionSelectActionDeleteSubmit" type="button" selector="#widgetInstanceGrid_massaction-form button.action-default"/>
<element name="WidgetViewModalAccept" type="button" selector=".modal-popup.confirm._show .action-accept"/>
<element name="WidgetViewModalDismiss" type="button" selector=".modal-popup.confirm._show .action-dismiss"/>
<element name="WidgetViewModalClose" type="button" selector=".modal-popup.confirm._show .action-close"/>
<element name="WidgetViewGridRow" type="text" selector="table.data-grid tbody tr[data-role=row]:nth-of-type({{row}})" parameterized="true"/>
<element name="WidgetViewGridInstanceRow" type="text" selector="table.data-grid tbody tr[data-role=row]:nth-of-type({{row}})" parameterized="true"/>
<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"/>
</section>
</sections>
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->

<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
<test name="AdminContentWidgetsMassDeletesTest">
<annotations>
<features value="Widget"/>
<stories value="Widget mass delete"/>
<title value="Admin mass delete widgets in grid"/>
<description value="Admin select widgets in grid and try to mass delete action, will show pop-up with confirm action"/>
<severity value="MAJOR"/>
<group value="widget"/>
</annotations>
<before>
<actionGroup ref="LoginAsAdmin" stepKey="LoginAsAdmin"/>
</before>
<after>
<actionGroup ref="logout" stepKey="logout"/>
</after>
<actionGroup ref="AdminNavigateMenuActionGroup" stepKey="navigateToContentWidgetsPageFirst">
<argument name="menuUiId" value="{{AdminMenuContent.dataUiId}}"/>
<argument name="submenuUiId" value="{{AdminMenuContentElementsWidgets.dataUiId}}"/>
</actionGroup>
<actionGroup ref="AdminAssertPageTitleActionGroup" stepKey="seePageTitleFirst">
<argument name="title" value="{{AdminMenuContentElementsWidgets.pageTitle}}"/>
</actionGroup>
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear1"/>
<actionGroup ref="AdminCreateAndSaveWidgetActionGroup" stepKey="addWidgetForTest1">
<argument name="widget" value="ProductsListWidget"/>
</actionGroup>
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear2"/>
<actionGroup ref="AdminCreateAndSaveWidgetActionGroup" stepKey="addWidgetForTest2">
<argument name="widget" value="ProductsListWidget"/>
</actionGroup>
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear4"/>
<actionGroup ref="AdminNavigateMenuActionGroup" stepKey="navigateToContentWidgetsPageSecond">
<argument name="menuUiId" value="{{AdminMenuContent.dataUiId}}"/>
<argument name="submenuUiId" value="{{AdminMenuContentElementsWidgets.dataUiId}}"/>
</actionGroup>
<actionGroup ref="AdminAssertPageTitleActionGroup" stepKey="seePageTitleSecond">
<argument name="title" value="{{AdminMenuContentElementsWidgets.pageTitle}}"/>
</actionGroup>
<waitForPageLoad stepKey="waitForPageLoad1"/>
<actionGroup ref="AdminMassDeleteWidgetActionGroup" stepKey="massWidgetDelete">
<argument name="row" value="1"/>
</actionGroup>
</test>
</tests>

1 change: 1 addition & 0 deletions app/code/Magento/Widget/i18n/en_US.csv
Original file line number Diff line number Diff line change
Expand Up @@ -71,3 +71,4 @@ Product,Product
Conditions,Conditions
"Widget ID","Widget ID"
"Inserting a widget does not create a widget instance.","Inserting a widget does not create a widget instance."
"Are you sure you want to delete the selected widget(s)?","Are you sure you want to delete the selected widget(s)?"
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
<item name="label" xsi:type="string" translate="true">Delete</item>
<item name="url" xsi:type="string">*/*/massDelete</item>
<item name="selected" xsi:type="string">0</item>
<item name="confirm" xsi:type="string" translate="true">Are you sure you want to delete the selected widget(s)?</item>
</item>
</argument>
</arguments>
Expand Down