<?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="AdminPageBuilderProductsCarouselSettingsValidateDefaultCarouselModeTest">
        <annotations>
            <features value="PageBuilder"/>
            <stories value="Products"/>
            <title value="Carousel - Validate Default Carousel Mode"/>
            <description value="Validate that Default carousel mode functions for the Products carousel."/>
            <severity value="BLOCKER"/>
            <useCaseId value="PB-173"/>
            <testCaseId value="MC-22742"/>
            <group value="pagebuilder"/>
            <group value="pagebuilder-products"/>
            <group value="pagebuilder-productsCarousel"/>
            <group value="cloud"/>
        </annotations>
        <before>
            <createData entity="PageBuilderProductsSubCategory" stepKey="createCategory"/>
            <createData entity="_defaultProduct" stepKey="createProduct6">
                <requiredEntity createDataKey="createCategory"/>
            </createData>
            <createData entity="_defaultProduct" stepKey="createProduct5">
                <requiredEntity createDataKey="createCategory"/>
            </createData>
            <createData entity="_defaultProduct" stepKey="createProduct4">
                <requiredEntity createDataKey="createCategory"/>
            </createData>
            <createData entity="_defaultProduct" stepKey="createProduct3">
                <requiredEntity createDataKey="createCategory"/>
            </createData>
            <createData entity="_defaultProduct" stepKey="createProduct2">
                <requiredEntity createDataKey="createCategory"/>
            </createData>
            <createData entity="_defaultProduct" stepKey="createProduct1">
                <requiredEntity createDataKey="createCategory"/>
            </createData>
            <createData entity="_emptyCmsPage" stepKey="createCMSPage"/>
            <actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
            <actionGroup ref="navigateToCMSPage" stepKey="navigateToCMSPage">
                <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>
        </before>
        <after>
            <deleteData createDataKey="createCategory" stepKey="deleteCategory"/>
            <deleteData createDataKey="createProduct6" stepKey="deleteProduct6"/>
            <deleteData createDataKey="createProduct5" stepKey="deleteProduct5"/>
            <deleteData createDataKey="createProduct4" stepKey="deleteProduct4"/>
            <deleteData createDataKey="createProduct3" stepKey="deleteProduct3"/>
            <deleteData createDataKey="createProduct2" stepKey="deleteProduct2"/>
            <deleteData createDataKey="createProduct1" stepKey="deleteProduct1"/>
            <deleteData createDataKey="createCMSPage" stepKey="deleteCMSPage"/>
            <actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
        </after>
        <actionGroup ref="expandPageBuilderPanelMenuSection" stepKey="expandMenuSectionAddContent">
            <argument name="contentType" value="PageBuilderProductsContentType"/>
        </actionGroup>
        <actionGroup ref="dragContentTypeToStage" stepKey="dragOntoStage">
            <argument name="contentType" value="PageBuilderProductsContentType"/>
        </actionGroup>
        <actionGroup ref="openPageBuilderEditPanel" stepKey="openEditAfterDrop">
            <argument name="contentType" value="PageBuilderProductsContentType"/>
        </actionGroup>
        <actionGroup ref="chooseVisualSelectOption" stepKey="selectAppearance">
            <argument name="property" value="PageBuilderProductsProductCarouselAppearance"/>
        </actionGroup>
        <actionGroup ref="chooseVisualSelectOption" stepKey="chooseSelectProductsBy">
            <argument name="property" value="PageBuilderProductsSelectProductsByCategory"/>
        </actionGroup>
        <actionGroup ref="selectCategoryFromCategoryDropDown" stepKey="selectCategory">
            <argument name="category" value="$$createCategory.name$$"/>
        </actionGroup>
        <actionGroup ref="chooseVisualSelectOption" stepKey="selectCarouselMode">
            <argument name="property" value="PageBuilderProductsCarouselSettingsCarouselMode_Default"/>
        </actionGroup>
        <actionGroup ref="conditionalClickSlideOutPanelFieldGeneral" stepKey="enableShowDots">
            <argument name="property" value="PageBuilderProductsCarouselSettingsShowDots_Enabled"/>
        </actionGroup>
        <actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings"/>
        <!-- Validate Stage -->
        <actionGroup ref="validateProductCarouselSettingsAttributes" stepKey="validateProductCarouselSettingsAttributesStage"/>
        <actionGroup ref="validateProductCarouselNavigationDots" stepKey="validateProductCarouselNavigationDotsStage1"/>
        <actionGroup ref="validateProductOpacityInDefaultProductCarousel" stepKey="validateProduct1OpacityStage1"/>
        <actionGroup ref="validateProductOpacityInDefaultProductCarousel" stepKey="validateProduct3OpacityStage1">
            <argument name="productItemIndex" value="3"/>
        </actionGroup>
        <actionGroup ref="validateCanSeeProductInDefaultProductCarousel" stepKey="validateCanSeeProduct1Stage1">
            <argument name="product" value="$$createProduct1$$"/>
        </actionGroup>
        <actionGroup ref="validateCannotSeeProductInDefaultProductCarousel" stepKey="validateCannotSeeProduct6Stage1">
            <argument name="product" value="$$createProduct6$$"/>
        </actionGroup>
        <!-- Stage: Click Navigation Dot 2 -->
        <actionGroup ref="clickProductCarouselNavigationDot" stepKey="clickSecondNavigationDotStage"/>
        <actionGroup ref="validateProductCarouselNavigationDots" stepKey="validateProductCarouselNavigationDotsStage2">
            <argument name="activeNavigationDot" value="2"/>
        </actionGroup>
        <actionGroup ref="validateProductOpacityInDefaultProductCarousel" stepKey="validateProduct1OpacityStage2"/>
        <actionGroup ref="validateProductOpacityInDefaultProductCarousel" stepKey="validateProduct3OpacityStage2">
            <argument name="productItemIndex" value="3"/>
        </actionGroup>
        <actionGroup ref="validateCanSeeProductInDefaultProductCarousel" stepKey="validateCanSeeProduct6Stage2">
            <argument name="product" value="$$createProduct6$$"/>
        </actionGroup>
        <actionGroup ref="validateCannotSeeProductInDefaultProductCarousel" stepKey="validateCannotSeeProduct1Stage2">
            <argument name="product" value="$$createProduct1$$"/>
        </actionGroup>
        <actionGroup ref="exitPageBuilderFullScreen" stepKey="exitPageBuilderFullScreen"/>
        <actionGroup ref="SaveAndContinueEditCmsPageActionGroup" stepKey="saveAndContinueEditCmsPage"/>
        <!-- Validate Storefront -->
        <actionGroup ref="NavigateToStorefrontForCreatedPageActionGroup" stepKey="navigateToCMSPageStorefront">
            <argument name="page" value="$$createCMSPage.identifier$$"/>
        </actionGroup>
        <actionGroup ref="validateProductCarouselSettingsAttributes" stepKey="validateProductCarouselSettingsAttributesStorefront">
            <argument name="page" value="ProductsOnStorefront"/>
        </actionGroup>
        <actionGroup ref="validateProductCarouselNavigationDots" stepKey="validateProductCarouselNavigationDotsStorefront1">
            <argument name="page" value="ProductsOnStorefront"/>
            <argument name="activeNavigationDot" value="1"/>
        </actionGroup>
        <actionGroup ref="validateProductOpacityInDefaultProductCarousel" stepKey="validateProduct1OpacityStorefront1">
            <argument name="page" value="ProductsOnStorefront"/>
        </actionGroup>
        <actionGroup ref="validateProductOpacityInDefaultProductCarousel" stepKey="validateProduct3OpacityStorefront1">
            <argument name="page" value="ProductsOnStorefront"/>
            <argument name="productItemIndex" value="3"/>
        </actionGroup>
        <actionGroup ref="validateCanSeeProductInDefaultProductCarousel" stepKey="validateCanSeeProduct1Storefront1">
            <argument name="page" value="ProductsOnStorefront"/>
            <argument name="product" value="$$createProduct1$$"/>
        </actionGroup>
        <actionGroup ref="validateCannotSeeProductInDefaultProductCarousel" stepKey="validateCannotSeeProduct6Storefront1">
            <argument name="page" value="ProductsOnStorefront"/>
            <argument name="product" value="$$createProduct6$$"/>
        </actionGroup>
        <!-- Storefront: Click Navigation Dot 2 -->
        <actionGroup ref="clickProductCarouselNavigationDot" stepKey="clickSecondNavigationDotStorefront">
            <argument name="page" value="ProductsOnStorefront"/>
            <argument name="navigationDotIndex" value="2"/>
        </actionGroup>
        <actionGroup ref="validateProductCarouselNavigationDots" stepKey="validateProductCarouselNavigationDotsStorefront2">
            <argument name="page" value="ProductsOnStorefront"/>
            <argument name="activeNavigationDot" value="2"/>
        </actionGroup>
        <actionGroup ref="validateProductOpacityInDefaultProductCarousel" stepKey="validateProduct1OpacityStorefront2">
            <argument name="page" value="ProductsOnStorefront"/>
        </actionGroup>
        <actionGroup ref="validateProductOpacityInDefaultProductCarousel" stepKey="validateProduct3OpacityStorefront2">
            <argument name="page" value="ProductsOnStorefront"/>
            <argument name="productItemIndex" value="3"/>
        </actionGroup>
        <actionGroup ref="validateCanSeeProductInDefaultProductCarousel" stepKey="validateCanSeeProduct6Storefront2">
            <argument name="page" value="ProductsOnStorefront"/>
            <argument name="product" value="$$createProduct6$$"/>
        </actionGroup>
        <actionGroup ref="validateCannotSeeProductInDefaultProductCarousel" stepKey="validateCannotSeeProduct1Storefront2">
            <argument name="page" value="ProductsOnStorefront"/>
            <argument name="product" value="$$createProduct1$$"/>
        </actionGroup>
    </test>
</tests>
