<?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="ViewportSwitcherMobileButtonItemCanBeEditedInlineTest">
        <annotations>
            <features value="PageBuilder"/>
            <stories value="Viewport Switcher"/>
            <title value="Mobile Viewport: Inline Edit Button Item"/>
            <description value="A user should be able to edit a button item inline on the stage on mobile viewport"/>
            <severity value="CRITICAL"/>
            <group value="pagebuilder"/>
            <group value="pagebuilder-buttons"/>
            <group value="pagebuilder-buttonItem"/>
            <group value="pagebuilder-viewport-switcher"/>
        </annotations>
        <before>
            <createData entity="_emptyCmsPage" stepKey="createCMSPage"/>
            <actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
            <actionGroup ref="navigateToCMSPage" stepKey="navigateToAPageWithPageBuilder">
                <argument name="CMSPage" value="$$createCMSPage$$"/>
        </actionGroup>
        <actionGroup ref="switchToPageBuilderStage" stepKey="switchToPageBuilderStage"/>
        <actionGroup ref="dragContentTypeToStage" stepKey="dragRowToRootContainer">
            <argument name="contentType" value="PageBuilderRowContentType"/>
            <argument name="containerTargetType" value="PageBuilderRootContainerContentType"/>
        </actionGroup>
        <actionGroup ref="AdminSwitchPageBuilderViewportActionGroup" stepKey="switchToMobileViewport">
                <argument name="viewportButton" value="mobile"/>
                <argument name="viewportStage" value="mobile"/>
            </actionGroup>
        </before>
        <after>
            <resizeWindow width="1920" height="1080" stepKey="resizeWindowToDesktop"/>
            <deleteData createDataKey="createCMSPage" stepKey="deleteCMSPage"/>
            <actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
        </after>
        <!-- Add Button Group -->
        <actionGroup ref="expandPageBuilderPanelMenuSection" stepKey="expandPageBuilderPanelMenuSection">
            <argument name="contentType" value="PageBuilderButtonsContentType"/>
        </actionGroup>
        <actionGroup ref="dragContentTypeToStage" stepKey="dragButtonsOntoStage">
            <argument name="contentType" value="PageBuilderButtonsContentType"/>
        </actionGroup>
        <!-- Enter Text On Stage -->
        <waitForElementVisible selector="{{ButtonItemOnStage.editableButtonItemElement('1')}}" stepKey="waitForButtonEditable"/>
        <pressKey selector="{{ButtonItemOnStage.editableButtonItemElement('1')}}" userInput="{{PageBuilderButtonItemText_Common.value}}" stepKey="enterButtonText"/>
        <!-- Validate Stage -->
        <waitForElementVisible selector="{{ButtonItemOnStage.buttonItemText('1', PageBuilderButtonItemText_Common.value)}}" stepKey="waitForButtonTextStage1"/>
        <!-- Validate Edit Panel -->
        <actionGroup ref="openPageBuilderEditPanelSmallByIndex" stepKey="openEditMenuOnStage1">
            <argument name="section" value="ButtonItemOnStage"/>
            <argument name="targetIndex" value="1"/>
        </actionGroup>
        <actionGroup ref="seeInFieldSlideOutProperty" stepKey="seeButtonText">
            <argument name="property" value="PageBuilderButtonItemText_Common"/>
        </actionGroup>
        <actionGroup ref="closeEditPanelSettings" stepKey="closeEditPanelSettings2"/>
        <actionGroup ref="exitPageBuilderFullScreen" stepKey="exitPageBuilderFullScreen"/>
        <actionGroup ref="SaveAndContinueEditCmsPageActionGroup" stepKey="saveAndContinueEditCmsPage"/>
        <actionGroup ref="switchToPageBuilderStage" stepKey="switchToPageBuilderStage"/>
        <!-- Validate Stage After Save Desktop Viewport -->
        <waitForElementVisible selector="{{ButtonItemOnStage.buttonItemText('1', PageBuilderButtonItemText_Common.value)}}" stepKey="waitForButtonTextStage2"/>
        <!-- Validate Edit Panel After Save -->
        <actionGroup ref="openPageBuilderEditPanelSmallByIndex" stepKey="openEditMenuOnStage2">
            <argument name="section" value="ButtonItemOnStage"/>
            <argument name="targetIndex" value="1"/>
        </actionGroup>
        <actionGroup ref="seeInFieldSlideOutProperty" stepKey="seeButtonText2">
            <argument name="property" value="PageBuilderButtonItemText_Common"/>
        </actionGroup>
        <actionGroup ref="closeEditPanelSettings" stepKey="closeEditPanelSettings3"/>
        <!-- Validate Stage After Save Mobile Viewport -->
        <actionGroup ref="AdminSwitchPageBuilderViewportActionGroup" stepKey="switchToMobileViewportAfterSave">
            <argument name="viewportButton" value="mobile"/>
            <argument name="viewportStage" value="mobile"/>
        </actionGroup>
        <waitForElementVisible selector="{{ButtonItemOnStage.buttonItemText('1', PageBuilderButtonItemText_Common.value)}}" stepKey="waitForButtonTextStage3"/>
        <!-- Validate Edit Panel After Save -->
        <actionGroup ref="openPageBuilderEditPanelSmallByIndex" stepKey="openEditMenuOnStage3">
            <argument name="section" value="ButtonItemOnStage"/>
            <argument name="targetIndex" value="1"/>
        </actionGroup>
        <actionGroup ref="seeInFieldSlideOutProperty" stepKey="seeButtonText3">
            <argument name="property" value="PageBuilderButtonItemText_Common"/>
        </actionGroup>
        <actionGroup ref="closeEditPanelSettings" stepKey="closeEditPanelSettings4"/>
        <!-- Navigate To Storefront -->
        <actionGroup ref="NavigateToStorefrontForCreatedPageActionGroup" stepKey="navigateToCMSPageStorefront">
            <argument name="page" value="$$createCMSPage.identifier$$"/>
        </actionGroup>
        <!-- Validate Storefront Desktop -->
        <seeElement selector="{{ButtonItemOnStorefront.buttonItemText('1', PageBuilderButtonItemText_Common .value)}}" stepKey="seeButtonTextOnStorefront"/>
        <!-- Validate Storefront Mobile -->
        <resizeWindow width="767" height="1000" stepKey="resizeWindowToMobile"/>
        <seeElement selector="{{ButtonItemOnStorefront.buttonItemText('1', PageBuilderButtonItemText_Common .value)}}" stepKey="seeButtonTextOnStorefront2"/>
    </test>
</tests>
