<?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="../../../../../src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
    <actionGroup name="FunctionalActionGroup">
        <fillField selector="#foo" userInput="myData1" stepKey="fillField1"/>
        <fillField selector="#bar" userInput="myData2" stepKey="fillField2"/>
    </actionGroup>
    <actionGroup name="FunctionalActionGroupWithData">
        <arguments>
            <argument name="person" defaultValue="DefaultPerson"/>
        </arguments>
        <amOnPage url="{{SamplePage.url(person.firstname,person.lastname)}}" stepKey="amOnPage1"/>
        <fillField selector="#foo" userInput="{{person.firstname}}" stepKey="fillField1"/>
        <fillField selector="#bar" userInput="{{person.lastname}}" stepKey="fillField2"/>
        <searchAndMultiSelectOption selector="#foo" parameterArray="[{{person.firstname}}, {{person.lastname}}]" stepKey="multi1"/>
        <see selector="{{SampleSection.oneParamElement(person.firstname)}}" stepKey="see1"/>
    </actionGroup>
    <actionGroup name="FunctionalActionGroupNoDefault">
        <arguments>
            <argument name="person"/>
        </arguments>
        <fillField selector="#foo" userInput="{{person.firstname}}" stepKey="fillField1"/>
        <fillField selector="#bar" userInput="{{person.lastname}}" stepKey="fillField2"/>
        <see selector="{{SampleSection.twoParamElement(person.firstname,person.lastname)}}" stepKey="see2"/>
    </actionGroup>
    <actionGroup name="FunctionalActionGroupForMerge">
        <arguments>
            <argument name="myArg"/>
        </arguments>
        <fillField stepKey="deleteMe" userInput="Please delete me" selector="#delete" />
        <see selector="{{SampleSection.oneParamElement(myArg.firstname)}}" stepKey="see1"/>
        <amOnPage url="{{SamplePage.url(myArg.firstname,myArg.lastname)}}" stepKey="amOnPage1"/>
    </actionGroup>
    <actionGroup name="FunctionalActionGroupWithTrickyArgument">
        <arguments>
            <argument name="simple" defaultValue="simpleData"/>
        </arguments>
        <seeElement stepKey="see1" selector="{{SampleSection.simpleElement}}"/>
        <seeElement stepKey="see2" selector="{{SampleSection.simpleElementOneParam(simple.firstname)}}"/>
    </actionGroup>
    <actionGroup name="FunctionActionGroupWithStepKeyReferences">
        <createData entity="simpleData" stepKey="createSimpleData"/>
        <grabTextFrom selector=".class" stepKey="grabTextData"/>
        <fillField stepKey="fill1" selector=".{$grabTextData}" userInput="$createSimpleData.field$"/>
        <comment userInput="Invocation stepKey will not be appended in non stepKey instances" stepKey="comment1"/>
        <click selector="{$action0}" stepKey="action0"/>
        <fillField selector="{$action1}" stepKey="action1"/>
        <comment userInput="Invocation stepKey will be appended in non stepKey instances" stepKey="comment2"/>
        <executeJS function="{$action3}" stepKey="action3"/>
        <magentoCLI command="{$action4}" arguments="&quot;stuffHere&quot;" stepKey="action4"/>
        <generateDate date="{$action5}" format="H:i:s" stepKey="action5"/>
        <formatMoney userInput="{$action6}" stepKey="action6"/>
        <deleteData createDataKey="{$action7}" stepKey="action7"/>
        <getData entity="{$action8}" stepKey="action8"/>
        <updateData entity="{$action9}" stepKey="action9" createDataKey="1"/>
        <createData entity="{$action10}" stepKey="action10"/>
        <grabAttributeFrom selector="{$action11}" userInput="someInput" stepKey="action11"/>
        <grabCookie userInput="{$action12}" parameterArray="['domain' => 'www.google.com']" stepKey="action12"/>
        <grabFromCurrentUrl regex="{$action13}" stepKey="action13"/>
        <grabMultiple selector="{$action14}" stepKey="action14"/>
        <grabTextFrom selector="{$action15}" stepKey="action15"/>
        <grabValueFrom selector="{$action16}" stepKey="action16"/>
    </actionGroup>
    <actionGroup name="FunctionalActionGroupForMassMergeBefore">
        <fillField selector="#foo" userInput="foo" stepKey="fillField1"/>
        <fillField selector="#bar" userInput="bar" stepKey="fillField2"/>
        <fillField selector="#baz" userInput="baz" stepKey="fillField3"/>
    </actionGroup>
    <actionGroup name="FunctionalActionGroupForMassMergeAfter">
        <fillField selector="#foo" userInput="foo" stepKey="fillField1"/>
        <fillField selector="#bar" userInput="bar" stepKey="fillField2"/>
        <fillField selector="#baz" userInput="baz" stepKey="fillField3"/>
    </actionGroup>
    <actionGroup name="FunctionalActionGroupWithXmlAndPersistedData">
        <arguments>
            <argument name="xmlData" defaultValue="uniqueData"/>
            <argument name="persistedData"/>
        </arguments>
        <seeInCurrentUrl url="/{{persistedData.urlKey}}.html?___store={{xmlData.firstname}}" stepKey="checkUrl"/>
    </actionGroup>
    <actionGroup name="SectionArgumentWithParameterizedSelector">
        <arguments>
            <argument name="section" defaultValue="SampleSection"/>
        </arguments>
        <executeJS function="{{section.oneParamElement('full-width')}}" stepKey="keyone"/>
    </actionGroup>
</actionGroups>
