<?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="CreateConfigurableProductWithSamePriceActionGroup">
        <annotations>
            <description>Goes to the Admin Product grid page.
                Create a Configurable Product using the default Product Options with identical pricing.</description>
        </annotations>
        <arguments>
            <argument name="product" defaultValue="_defaultProduct"/>
            <argument name="category" defaultValue="_defaultCategory"/>
        </arguments>

        <!-- fill in basic configurable product values -->
        <amOnPage url="{{AdminProductIndexPage.url}}" stepKey="amOnProductGridPage"/>
        <waitForPageLoad time="30" stepKey="wait1"/>
        <click selector="{{AdminProductGridActionSection.addProductToggle}}" stepKey="clickOnAddProductToggle"/>
        <click selector="{{AdminProductGridActionSection.addConfigurableProduct}}"
               stepKey="clickOnAddConfigurableProduct"/>
        <fillField userInput="{{product.name}}" selector="{{AdminProductFormSection.productName}}" stepKey="fillName"/>
        <fillField userInput="{{product.sku}}" selector="{{AdminProductFormSection.productSku}}" stepKey="fillSKU"/>
        <fillField userInput="{{product.price}}" selector="{{AdminProductFormSection.productPrice}}"
                   stepKey="fillPrice"/>
        <fillField userInput="{{product.quantity}}" selector="{{AdminProductFormSection.productQuantity}}"
                   stepKey="fillQuantity"/>
        <searchAndMultiSelectOption selector="{{AdminProductFormSection.categoriesDropdown}}"
                                    parameterArray="[{{category.name}}]" stepKey="fillCategory"/>
        <selectOption userInput="{{product.visibility}}" selector="{{AdminProductFormSection.visibility}}"
                      stepKey="fillVisibility"/>
        <click selector="{{AdminProductSEOSection.sectionHeader}}" stepKey="openSeoSection"/>
        <fillField userInput="{{product.urlKey}}" selector="{{AdminProductSEOSection.urlKeyInput}}"
                   stepKey="fillUrlKey"/>

        <!-- create configurations for colors the product is available in -->
        <click selector="{{AdminProductFormConfigurationsSection.createConfigurations}}"
               stepKey="clickOnCreateConfigurations"/>
        <click selector="{{AdminCreateProductConfigurationsPanel.createNewAttribute}}" stepKey="clickOnNewAttribute"/>
        <waitForPageLoad stepKey="waitForIFrame"/>
        <switchToIFrame selector="{{AdminNewAttributePanel.newAttributeIFrame}}" stepKey="switchToNewAttributeIFrame"/>
        <fillField selector="{{AdminNewAttributePanel.defaultLabel}}"
                   userInput="{{colorProductAttribute.default_label}}"
                   stepKey="fillDefaultLabel"/>
        <click selector="{{AdminNewAttributePanel.saveAttribute}}" stepKey="clickOnNewAttributePanel"/>
        <waitForPageLoad stepKey="waitForSaveAttribute"/>
        <switchToIFrame stepKey="switchOutOfIFrame"/>
        <waitForPageLoad stepKey="waitForFilters"/>
        <click selector="{{AdminCreateProductConfigurationsPanel.filters}}" stepKey="clickOnFilters"/>
        <fillField userInput="{{colorProductAttribute.default_label}}"
                   selector="{{AdminCreateProductConfigurationsPanel.attributeCode}}"
                   stepKey="fillFilterAttributeCodeField"/>
        <click selector="{{AdminCreateProductConfigurationsPanel.applyFilters}}" stepKey="clickApplyFiltersButton"/>
        <click selector="{{AdminCreateProductConfigurationsPanel.firstCheckbox}}" stepKey="clickOnFirstCheckbox"/>
        <click selector="{{AdminCreateProductConfigurationsPanel.next}}" stepKey="clickOnNextButton1"/>
        <waitForElementVisible selector="{{AdminCreateProductConfigurationsPanel.createNewValue}}"
                               stepKey="waitCreateNewValueAppears"/>
        <click selector="{{AdminCreateProductConfigurationsPanel.createNewValue}}" stepKey="clickOnCreateNewValue1"/>
        <fillField userInput="{{colorProductAttribute1.name}}"
                   selector="{{AdminCreateProductConfigurationsPanel.attributeName}}"
                   stepKey="fillFieldForNewAttribute1"/>
        <click selector="{{AdminCreateProductConfigurationsPanel.saveAttribute}}" stepKey="clickOnSaveNewAttribute1"/>
        <click selector="{{AdminCreateProductConfigurationsPanel.createNewValue}}" stepKey="clickOnCreateNewValue2"/>
        <fillField userInput="{{colorProductAttribute2.name}}"
                   selector="{{AdminCreateProductConfigurationsPanel.attributeName}}"
                   stepKey="fillFieldForNewAttribute2"/>
        <click selector="{{AdminCreateProductConfigurationsPanel.saveAttribute}}" stepKey="clickOnSaveNewAttribute2"/>
        <click selector="{{AdminCreateProductConfigurationsPanel.createNewValue}}" stepKey="clickOnCreateNewValue3"/>
        <fillField userInput="{{colorProductAttribute3.name}}"
                   selector="{{AdminCreateProductConfigurationsPanel.attributeName}}"
                   stepKey="fillFieldForNewAttribute3"/>
        <click selector="{{AdminCreateProductConfigurationsPanel.saveAttribute}}" stepKey="clickOnSaveNewAttribute3"/>
        <click selector="{{AdminCreateProductConfigurationsPanel.selectAll}}" stepKey="clickOnSelectAll"/>
        <click selector="{{AdminCreateProductConfigurationsPanel.next}}" stepKey="clickOnNextButton2"/>
        <click selector="{{AdminCreateProductConfigurationsPanel.applyUniquePricesByAttributeToEachSku}}"
               stepKey="clickOnApplyUniquePricesByAttributeToEachSku"/>
        <selectOption selector="{{AdminCreateProductConfigurationsPanel.selectAttribute}}"
                      userInput="{{colorProductAttribute.default_label}}" stepKey="selectAttributes"/>
        <fillField selector="{{AdminCreateProductConfigurationsPanel.attribute1}}"
                   userInput="{{colorProductAttribute1.price}}" stepKey="fillAttributePrice1"/>
        <fillField selector="{{AdminCreateProductConfigurationsPanel.attribute2}}"
                   userInput="{{colorProductAttribute1.price}}" stepKey="fillAttributePrice2"/>
        <fillField selector="{{AdminCreateProductConfigurationsPanel.attribute3}}"
                   userInput="{{colorProductAttribute1.price}}" stepKey="fillAttributePrice3"/>
        <click selector="{{AdminCreateProductConfigurationsPanel.applySingleQuantityToEachSkus}}"
               stepKey="clickOnApplySingleQuantityToEachSku"/>
        <fillField selector="{{AdminCreateProductConfigurationsPanel.quantity}}"
                   userInput="1" stepKey="enterAttributeQuantity"/>
        <click selector="{{AdminCreateProductConfigurationsPanel.next}}" stepKey="clickOnNextButton3"/>
        <click selector="{{AdminCreateProductConfigurationsPanel.next}}" stepKey="clickOnNextButton4"/>
        <click selector="{{AdminProductFormActionSection.saveButton}}" stepKey="clickOnSaveButton2"/>
        <click selector="{{AdminChooseAffectedAttributeSetPopup.confirm}}" stepKey="clickOnConfirmInPopup"/>
        <seeElement selector="{{AdminProductMessagesSection.successMessage}}" stepKey="seeSaveProductMessage"/>
        <seeInTitle userInput="{{product.name}}" stepKey="seeProductNameInTitle"/>
    </actionGroup>
</actionGroups>
