<?xml version="1.0" encoding="utf-8"?>
<!--

  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

-->
<UnitTester testDir="components/TreeDMV/Properties/"  xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" testSWF="Tree_DragDrop.mxml">

    
    <mx:Script>
    <![CDATA[
    public static function init(o:DisplayObject):void
    {

    }                   
    ]]>
    </mx:Script>
    <mx:Metadata>
    <![CDATA[
        [Mixin]
    ]]>
    </mx:Metadata>  

    

    <mx:Script>
    <![CDATA[
    import mx.controls.Tree;
    import mx.events.TreeEvent;
    import data.TreeData;
    import mx.collections.*;
    
    private function addArrayData(tree:Tree):void
    {
        
        var treeData:TreeData = new TreeData();
        tree.dataProvider = treeData.a1;
        
    }

    
    private function addXMLData(tree:Tree):void
    {
        
        var xlc1:XMLListCollection = new XMLListCollection(application.treeXMLEmptyBranches);
        tree.dataProvider = xlc1;
        tree.showRoot     = false;
        tree.labelField   = '@label';
    
    }
    
    
    
    ]]>
    </mx:Script>

    <testCases>
        <!--******************************dataProvider Array*******************************-->
        
        <TestCase testID="Tree_DP_Array_Move" description="dataProvider set to Array object" keywords="[dataProvider, Array, Tree, DragDrop" >
            <setup>
                <ResetComponent target="tree" className="comps.TreeDMV" />  
                <ResetComponent target="tree" className="comps.TreeDMV" />
                <RunCode code="addArrayData(application.tree);"  waitEvent="updateComplete" waitTarget="tree"/>
                <RunCode code="addArrayData(application.tree2);" waitEvent="updateComplete" waitTarget="tree2"/>
                <SetProperty target="tree"  propertyName="width"  value="200" />
                <SetProperty target="tree2" propertyName="width"  value="200" />
                <SetProperty target="tree"  propertyName="height" value="200" />
                <SetProperty target="tree2" propertyName="height" value="200" />
                <SetProperty target="tree"  propertyName="dropEnabled"  value="true" />
                <SetProperty target="tree2" propertyName="dropEnabled"  value="true" />
                <SetProperty target="tree"  propertyName="dragEnabled"  value="true" />
                <SetProperty target="tree2" propertyName="dragEnabled"  value="true" /> 
                    
                <WaitForEffectsToEnd/>
            </setup>
            <body>
                <DispatchKeyEvent   keys="[TAB]"   waitEvent="focusIn" waitTarget="tree" />
                
                <DispatchKeyEvent   keys="[DOWN,RIGHT,DOWN]"  waitEvent="change" waitTarget="tree"/>
                <WaitForEffectsToEnd />
                <DispatchMouseEvent target="tree"  type="mouseOver" buttonDown="false" localX="40" localY="35" />
                <DispatchMouseEvent target="tree"  type="mouseDown" buttonDown="true"  localX="40" localY="35" />
                <DispatchMouseEvent target="stage" type="mouseMove" buttonDown="true" stageX="100" stageY="56" />
                <DispatchMouseEvent target="stage" type="mouseMove" buttonDown="true" stageX="200" stageY="60" />
                <DispatchMouseEvent target="stage" type="mouseMove" buttonDown="true" stageX="300" stageY="60" />
                <DispatchMouseEvent target="stage" type="mouseMove" buttonDown="true" stageX="350" stageY="75" />
                <DispatchMouseEvent target="stage" type="mouseMove" buttonDown="true" stageX="350" stageY="75" />
                <WaitForEffectsToEnd />
                <DispatchMouseEvent target="stage" type="mouseUp" stageX="350" stageY="75" waitTarget="tree2" waitEvent="dragDrop" />
                <WaitForEffectsToEnd />
                <CompareBitmap target="hb" url="../Properties/baselines/Tree_DP_Array_Move.png" />          
                </body>
        </TestCase>
        <TestCase testID="Tree_DP_Array_Copy" description="dataProvider set to Array object" keywords="[dataProvider, Array, Tree, DragDrop" >
            <setup>
                <ResetComponent target="tree" className="comps.TreeDMV" />  
                <ResetComponent target="tree" className="comps.TreeDMV" />
                <RunCode code="addArrayData(application.tree);"  waitEvent="updateComplete" waitTarget="tree"/>
                <RunCode code="addArrayData(application.tree2);" waitEvent="updateComplete" waitTarget="tree2"/>
                <SetProperty target="tree"  propertyName="width"  value="200" />
                <SetProperty target="tree2" propertyName="width"  value="200" />
                <SetProperty target="tree"  propertyName="height" value="200" />
                <SetProperty target="tree2" propertyName="height" value="200" />
                <SetProperty target="tree"  propertyName="dropEnabled"  value="true" />
                <SetProperty target="tree2" propertyName="dropEnabled"  value="true" />
                <SetProperty target="tree"  propertyName="dragEnabled"  value="true" />
                <SetProperty target="tree2" propertyName="dragEnabled"  value="true" />
                <SetProperty target="tree"  propertyName="dragMoveEnabled"  value="false" />
                <SetProperty target="tree2" propertyName="dragMoveEnabled"  value="false" />
                <WaitForEffectsToEnd/>
            </setup>
            <body>
                <DispatchKeyEvent   keys="[TAB]"   waitEvent="focusIn" waitTarget="tree" />
                
                <DispatchKeyEvent   keys="[DOWN,RIGHT,DOWN]"  waitEvent="change" waitTarget="tree"/>
                <WaitForEffectsToEnd />
                <DispatchMouseEvent target="tree"  type="mouseOver" buttonDown="false" localX="40" localY="35" />
                <DispatchMouseEvent target="tree"  type="mouseDown" buttonDown="true"  localX="40" localY="35" />
                <DispatchMouseEvent target="stage" type="mouseMove" buttonDown="true" stageX="100" stageY="56" />
                <DispatchMouseEvent target="stage" type="mouseMove" buttonDown="true" stageX="200" stageY="60" />
                <DispatchMouseEvent target="stage" type="mouseMove" buttonDown="true" stageX="300" stageY="60" />
                <DispatchMouseEvent target="stage" type="mouseMove" buttonDown="true" stageX="350" stageY="75" />
                <DispatchMouseEvent target="stage" type="mouseMove" buttonDown="true" stageX="350" stageY="75" />
                <WaitForEffectsToEnd />
                <DispatchMouseEvent target="stage" type="mouseUp" stageX="350" stageY="75" waitTarget="tree2" waitEvent="dragDrop" />
                <WaitForEffectsToEnd />
                <CompareBitmap target="hb" url="../Properties/baselines/Tree_DP_Array_Copy.png" />          
                </body>
        </TestCase>     
        <!--******************************dataProvider XML*******************************-->
        <TestCase testID="Tree_DP_XML_Move"  keywords="[dataProvider, XML, Tree, DragDrop">
            <setup>
                <ResetComponent target="tree" className="comps.TreeDMV" />
                <ResetComponent target="tree" className="comps.TreeDMV" />
                <SetProperty target="tree"  propertyName="showRoot" value="false" />
                <SetProperty target="tree2" propertyName="showRoot" value="false" />
                <SetProperty target="tree"  propertyName="labelField" value="@label" />
                <SetProperty target="tree2" propertyName="labelField" value="@label" />
                <SetProperty target="tree"  propertyName="width"  value="200" />
                <SetProperty target="tree2" propertyName="width"  value="200" />
                <SetProperty target="tree"  propertyName="height" value="200" />
                <SetProperty target="tree2" propertyName="height" value="200" />
                <SetProperty propertyName="dataProvider" valueExpression="value=application.treeXMLEmptyBranches" target="tree" waitEvent="updateComplete" waitTarget="tree"/>
                <SetProperty propertyName="dataProvider" valueExpression="value=application.treeXML" target="tree2" waitEvent="updateComplete" waitTarget="tree2"/>
                <SetProperty target="tree"  propertyName="dropEnabled"  value="true" />
                <SetProperty target="tree2" propertyName="dropEnabled"  value="true" />
                <SetProperty target="tree"  propertyName="dragEnabled"  value="true" />
                <SetProperty target="tree2" propertyName="dragEnabled"  value="true" />
                
                <WaitForEffectsToEnd/>
                <RunCode code="application.tree.expandChildrenOf(application.tree.dataProvider.children()[0], true)"   waitEvent="updateComplete" waitTarget="tree" />
                <WaitForEffectsToEnd/>
                <RunCode code="application.tree2.expandChildrenOf(application.tree2.dataProvider.children()[1], true)" waitEvent="updateComplete" waitTarget="tree2" />
                <WaitForEffectsToEnd/>
            </setup>
            <body>
                <DispatchMouseEvent target="tree"  type="mouseOver" buttonDown="false" localX="40" localY="30" />
                <DispatchMouseEvent target="tree"  type="mouseDown" buttonDown="true"  localX="40" localY="30" />
                <DispatchMouseEvent target="stage" type="mouseMove" buttonDown="true" stageX="100" stageY="60" />
                <DispatchMouseEvent target="stage" type="mouseMove" buttonDown="true" stageX="200" stageY="60" />
                <DispatchMouseEvent target="stage" type="mouseMove" buttonDown="true" stageX="300" stageY="60" />
                <DispatchMouseEvent target="stage" type="mouseMove" buttonDown="true" stageX="350" stageY="75" />
                <DispatchMouseEvent target="stage" type="mouseMove" buttonDown="true" stageX="350" stageY="75" />
                <WaitForEffectsToEnd />
                <DispatchMouseEvent target="stage" type="mouseUp" stageX="350" stageY="75" waitTarget="tree2" waitEvent="dragDrop" />
                <WaitForEffectsToEnd />
                <CompareBitmap target="hb" url="../Properties/baselines/Tree_DP_XML_Move.png" />            

            </body>
        </TestCase>
        
        <TestCase testID="Tree_DP_XML_Copy"  keywords="[dataProvider, XML, Tree, DragDrop">
            <setup>
                <ResetComponent target="tree" className="comps.TreeDMV" />
                <ResetComponent target="tree" className="comps.TreeDMV" />
                <SetProperty target="tree"  propertyName="showRoot" value="false" />
                <SetProperty target="tree2" propertyName="showRoot" value="false" />
                <SetProperty target="tree"  propertyName="labelField" value="@label" />
                <SetProperty target="tree2" propertyName="labelField" value="@label" />
                <SetProperty target="tree"  propertyName="width"  value="200" />
                <SetProperty target="tree2" propertyName="width"  value="200" />
                <SetProperty target="tree"  propertyName="height" value="200" />
                <SetProperty target="tree2" propertyName="height" value="200" />
                <SetProperty propertyName="dataProvider" valueExpression="value=application.treeXMLEmptyBranches" target="tree" waitEvent="updateComplete" waitTarget="tree"/>
                <SetProperty propertyName="dataProvider" valueExpression="value=application.treeXML" target="tree2" waitEvent="updateComplete" waitTarget="tree2"/>
                <SetProperty target="tree"  propertyName="dropEnabled"  value="true" />
                <SetProperty target="tree2" propertyName="dropEnabled"  value="true" />
                <SetProperty target="tree"  propertyName="dragEnabled"  value="true" />
                <SetProperty target="tree2" propertyName="dragEnabled"  value="true" />
                <SetProperty target="tree"  propertyName="dragMoveEnabled"  value="false" />
                <SetProperty target="tree2" propertyName="dragMoveEnabled"  value="false" />
                <WaitForEffectsToEnd/>
                <RunCode code="application.tree.expandChildrenOf(application.tree.dataProvider.children()[0], true)"   waitEvent="updateComplete" waitTarget="tree" />
                <WaitForEffectsToEnd/>
                <RunCode code="application.tree2.expandChildrenOf(application.tree2.dataProvider.children()[1], true)" waitEvent="updateComplete" waitTarget="tree2" />
                <WaitForEffectsToEnd/>
            </setup>
            <body>
                <DispatchMouseEvent target="tree"  type="mouseOver" buttonDown="false" localX="40" localY="30" />
                <DispatchMouseEvent target="tree"  type="mouseDown" buttonDown="true"  localX="40" localY="30" />
                <DispatchMouseEvent target="stage" type="mouseMove" buttonDown="true" stageX="100" stageY="60" />
                <DispatchMouseEvent target="stage" type="mouseMove" buttonDown="true" stageX="200" stageY="60" />
                <DispatchMouseEvent target="stage" type="mouseMove" buttonDown="true" stageX="300" stageY="60" />
                <DispatchMouseEvent target="stage" type="mouseMove" buttonDown="true" stageX="350" stageY="75" />
                <DispatchMouseEvent target="stage" type="mouseMove" buttonDown="true" stageX="350" stageY="75" />
                <WaitForEffectsToEnd />
                <DispatchMouseEvent target="stage" type="mouseUp" stageX="350" stageY="75" waitTarget="tree2" waitEvent="dragDrop" />
                <WaitForEffectsToEnd />
                <CompareBitmap target="hb" url="../Properties/baselines/Tree_DP_XML_Copy.png" />            

            </body>
        </TestCase>     

    </testCases>
</UnitTester>
