<?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="AdminCreateWidgetActionGroup">
       <arguments>
           <argument name="widget"/>
       </arguments>
       <amOnPage url="{{AdminNewWidgetPage.url}}" stepKey="amOnAdminNewWidgetPage"/>
       <selectOption selector="{{AdminNewWidgetSection.widgetType}}" userInput="{{widget.type}}" stepKey="setWidgetType"/>
       <selectOption selector="{{AdminNewWidgetSection.widgetDesignTheme}}" userInput="{{widget.design_theme}}" stepKey="setWidgetDesignTheme"/>
       <click selector="{{AdminNewWidgetSection.continue}}" stepKey="clickContinue"/>
       <fillField selector="{{AdminNewWidgetSection.widgetTitle}}" userInput="{{widget.name}}" stepKey="fillTitle"/>
       <selectOption selector="{{AdminNewWidgetSection.widgetStoreIds}}" userInput="{{widget.store_ids[0]}}" stepKey="setWidgetStoreIds"/>
       <click selector="{{AdminNewWidgetSection.addLayoutUpdate}}" stepKey="clickAddLayoutUpdate"/>
       <selectOption selector="{{AdminNewWidgetSection.selectDisplayOn}}" userInput="{{widget.display_on}}" stepKey="setDisplayOn"/>
       <waitForAjaxLoad stepKey="waitForLoad"/>
       <selectOption selector="{{AdminNewWidgetSection.selectContainer}}" userInput="{{widget.container}}" stepKey="setContainer"/>
       <waitForAjaxLoad stepKey="waitForPageLoad"/>
       <scrollToTopOfPage stepKey="scrollToTopOfPage"/>
       <click selector="{{AdminNewWidgetSection.widgetOptions}}" stepKey="clickWidgetOptions"/>
   </actionGroup>

   <!--Create Product List Widget-->
   <actionGroup name="AdminCreateProductsListWidgetActionGroup" extends="AdminCreateWidgetActionGroup">
       <click selector="{{AdminNewWidgetSection.addNewCondition}}" stepKey="clickAddNewCondition"/>
       <selectOption selector="{{AdminNewWidgetSection.selectCondition}}" userInput="{{widget.condition}}" stepKey="selectCondition"/>
       <waitForElement selector="{{AdminNewWidgetSection.ruleParameter}}" stepKey="waitRuleParameter"/>
       <click selector="{{AdminNewWidgetSection.ruleParameter}}" stepKey="clickRuleParameter"/>
       <click selector="{{AdminNewWidgetSection.openChooser}}" stepKey="clickChooser"/>
       <waitForAjaxLoad stepKey="waitForAjaxLoad"/>
       <click selector="{{AdminNewWidgetSection.selectAll}}" stepKey="clickSelectAll"/>
       <click selector="{{AdminNewWidgetSection.applyParameter}}" stepKey="clickApplyRuleParameter"/>
       <click selector="{{AdminMainActionsSection.save}}" stepKey="clickSaveWidget"/>
       <see selector="{{AdminMessagesSection.successMessage}}" userInput="The widget instance has been saved" stepKey="seeSuccess"/>
   </actionGroup>

   <!--Create Dynamic Block Rotate Widget-->
   <actionGroup name="AdminCreateDynamicBlocksRotatorWidgetActionGroup" extends="AdminCreateWidgetActionGroup">
       <selectOption selector="{{AdminNewWidgetSection.displayMode}}" userInput="{{widget.display_mode}}" stepKey="selectDisplayMode"/>
       <selectOption selector="{{AdminNewWidgetSection.restrictTypes}}" userInput="{{widget.restrict_type}}" stepKey="selectRestrictType"/>
       <click selector="{{AdminNewWidgetSection.saveAndContinue}}" stepKey="clickSaveWidget"/>
       <see selector="{{AdminMessagesSection.successMessage}}" userInput="The widget instance has been saved" stepKey="seeSuccess"/>
   </actionGroup>

   <actionGroup name="AdminDeleteWidgetActionGroup">
       <arguments>
           <argument name="widget"/>
       </arguments>
       <amOnPage url="{{AdminWidgetsPage.url}}" stepKey="amOnAdmin"/>
       <waitForPageLoad stepKey="waitWidgetsLoad"/>
       <fillField selector="{{AdminWidgetsSection.widgetTitleSearch}}" userInput="{{widget.name}}" stepKey="fillTitle"/>
       <click selector="{{AdminWidgetsSection.searchButton}}" stepKey="clickContinue"/>
       <click selector="{{AdminWidgetsSection.searchResult}}" stepKey="clickSearchResult"/>
       <waitForPageLoad stepKey="waitForResultLoad"/>
       <click selector="{{AdminMainActionsSection.delete}}" stepKey="clickDelete"/>
       <waitForAjaxLoad stepKey="waitForAjaxLoad"/>
       <click selector="{{AdminConfirmationModalSection.ok}}" stepKey="confirmDelete"/>
       <waitForPageLoad stepKey="waitForDeleteLoad"/>
       <see selector="{{AdminMessagesSection.successMessage}}" userInput="The widget instance has been deleted" stepKey="seeSuccess"/>
   </actionGroup>
    <actionGroup name="AdminCreateProductLinkWidgetActionGroup" extends="AdminCreateWidgetActionGroup">
        <arguments>
            <argument name="product"/>
        </arguments>
        <selectOption selector="{{AdminNewWidgetSection.selectTemplate}}" userInput="{{widget.template}}" after="waitForPageLoad" stepKey="setTemplate"/>
        <waitForAjaxLoad after="setTemplate" stepKey="waitForPageLoad2"/>
        <click selector="{{AdminNewWidgetSection.selectProduct}}" after="clickWidgetOptions" stepKey="clickSelectProduct"/>
        <fillField selector="{{AdminNewWidgetSelectProductPopupSection.filterBySku}}" userInput="{{product.sku}}" after="clickSelectProduct" stepKey="fillProductNameInFilter"/>
        <click selector="{{AdminDataGridHeaderSection.applyFilters}}" after="fillProductNameInFilter" stepKey="applyFilter"/>
        <click selector="{{AdminNewWidgetSelectProductPopupSection.firstRow}}" after="applyFilter" stepKey="selectProduct"/>
        <click selector="{{AdminMainActionsSection.save}}" stepKey="clickSaveWidget"/>
        <see selector="{{AdminMessagesSection.successMessage}}" userInput="The widget instance has been saved" stepKey="seeSuccess"/>
    </actionGroup>
</actionGroups>
