<?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="AdminMediaGalleryCatalogUiVerifyUsedInLinkProductGridTest">
        <annotations>
            <features value="AdminMediaGalleryUsedInProductsFilter"/>
            <useCaseId value="https://github.com/magento/adobe-stock-integration/issues/1168"/>
            <title value="Used in products filter"/>
            <stories value="Story 58: User sees entities where asset is used in" />
            <testCaseId value="https://studio.cucumber.io/projects/131313/test-plan/folders/1320712/scenarios/4951848"/>
            <description value="User filters assets used in products"/>
            <severity value="CRITICAL"/>
            <group value="media_gallery_ui"/>
        </annotations>
        <before>
            <magentoCLI command="config:set cms/wysiwyg/enabled enabled" stepKey="enableWYSIWYG"/>
            <createData entity="SimpleSubCategory" stepKey="category"/>
            <createData entity="SimpleProduct" stepKey="product">
                <requiredEntity createDataKey="category"/>
            </createData>
            <actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
        </before>
        <after>
            <magentoCLI command="config:set cms/wysiwyg/enabled disabled" stepKey="disableWYSIWYG"/>
            <actionGroup ref="ResetAdminDataGridToDefaultViewActionGroup" stepKey="resetAdminDataGridToDefaultView"/>
            <actionGroup ref="AdminOpenCatalogProductPageActionGroup" stepKey="goToProductCatalogPage"/>
            <actionGroup ref="ResetAdminDataGridToDefaultViewActionGroup" stepKey="resetProductGridToDefaultView"/>
            <deleteData createDataKey="category" stepKey="deleteCategory"/>
        </after>
        <actionGroup ref="SearchForProductOnBackendActionGroup" stepKey="searchProduct">
            <argument name="product" value="$$product$$"/>
        </actionGroup>
        <actionGroup ref="OpenEditProductOnBackendActionGroup" stepKey="openEditProduct">
            <argument name="product" value="$$product$$"/>
        </actionGroup>
        <click selector="{{AdminProductFormSection.contentTab}}" stepKey="clickContentTab"/>
        <waitForElementVisible selector="{{CatalogWYSIWYGSection.TinyMCE4}}" stepKey="waitForTinyMCE4" />
        <click selector="{{CatalogWYSIWYGSection.InsertImageIcon}}" stepKey="clickInsertImageIcon" />
        <waitForPageLoad stepKey="waitForPageLoad" />
        <actionGroup ref="ClickBrowseBtnOnUploadPopupActionGroup" stepKey="clickBrowserBtn"/>
        <actionGroup ref="ClearFiltersAdminDataGridActionGroup" stepKey="clearFilter"/>
        <actionGroup ref="AdminMediaGalleryFolderSelectActionGroup" stepKey="selectWysiwygFolder">
            <argument name="name" value="wysiwyg"/>
        </actionGroup>
        <actionGroup ref="AdminEnhancedMediaGalleryUploadImageActionGroup" stepKey="uploadImage">
            <argument name="image" value="ImageUpload3"/>
        </actionGroup>
        <actionGroup ref="AdminMediaGalleryClickImageInGridActionGroup" stepKey="selectContentImageInGrid">
            <argument name="imageName" value="{{ImageMetadata.title}}"/>
        </actionGroup>
        <actionGroup ref="AdminMediaGalleryClickAddSelectedActionGroup" stepKey="clickAddSelectedContentImage"/>
        <actionGroup ref="AdminMediaGalleryClickOkButtonTinyMce4ActionGroup" stepKey="clickOkButton"/>
        <actionGroup ref="SaveProductFormActionGroup" stepKey="saveProduct"/>
        <actionGroup ref="AdminOpenCatalogProductPageActionGroup" stepKey="goToProductCatalogPage"/>
        <actionGroup ref="ResetAdminDataGridToDefaultViewActionGroup" stepKey="resetProductGridToDefaultView"/>

        <actionGroup ref="AdminOpenStandaloneMediaGalleryActionGroup" stepKey="openStandaloneMediaGallery"/>
        <actionGroup ref="AdminEnhancedMediaGalleryViewImageDetails" stepKey="openViewImageDetails"/>
        <actionGroup ref="AdminEnhancedMediaGalleryClickEntityUsedInActionGroup" stepKey="clickUsedInProducts">
            <argument name="entityName" value="Products"/>
        </actionGroup>
        <actionGroup ref="AdminAssertMediaGalleryFilterPlaceHolderGridActionGroup" stepKey="assertFilterApplied">
            <argument name="filterPlaceholder" value="{{ImageMetadata.title}}"/>
        </actionGroup>

        <deleteData createDataKey="product" stepKey="deleteProduct"/>
        <actionGroup ref="AdminOpenStandaloneMediaGalleryActionGroup" stepKey="openMediaGallery"/>

        <actionGroup ref="AdminEnhancedMediaGalleryViewImageDetails" stepKey="openViewImageDetailsToVerifyEmptyUsedIn"/>
        <actionGroup ref="AssertAdminEnhancedMediaGalleryUsedInSectionNotDisplayedActionGroup" stepKey="assertThereIsNoUsedInSection"/>
        <actionGroup ref="AdminEnhancedMediaGalleryCloseViewDetailsActionGroup" stepKey="closeDetails"/>
        <actionGroup ref="AdminEnhancedMediaGalleryEnableMassActionModeActionGroup" stepKey="enableMassActionToDeleteImages"/>
        <actionGroup ref="AdminEnhancedMediaGallerySelectImageForMassActionActionGroup" stepKey="selectFirstImageToDelete">
            <argument name="imageName" value="{{ImageMetadata.title}}"/>
        </actionGroup>
        <actionGroup ref="AdminEnhancedMediaGalleryClickDeleteImagesButtonActionGroup" stepKey="clickDeleteSelectedButton"/>
        <actionGroup ref="AdminEnhancedMediaGalleryConfirmDeleteImagesActionGroup" stepKey="deleteImages"/>
   </test>
</tests>
