<?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="SkinStates/Styles/"  xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" testSWF="SkinStates_gif_embeded.mxml">

    <!-- this set of lines form a template that must be in each unit test -->
    <mx:Script>
    <![CDATA[
    import mx.managers.SystemManager;
    import mx.controls.*;
    import mx.containers.*;
    import mx.core.*;
    import flash.events.*;
    use namespace mx_internal;

    public static function init(o:DisplayObject):void
    {

    }



    public function doTheValidate():void{
        UIComponentGlobals.layoutManager.validateNow();
    }
    public function setButtonStyle_gif_embeded():void{
        application.myButton_gif_embeded.setStyle("styleName","myButton");
        application.myButton_gif_embeded.label="Button components";

    }
    public function makeButtonDisabled_gif_embeded():void{
        application.myButton_gif_embeded.styleName="myButton";
        application.myButton_gif_embeded.label="Button components";

        application.myButton_gif_embeded.enabled=false;
    }
    public function setDateHardCoded_gif_embeded():void{
        application.myDateChooser_gif_embeded.yearNavigationEnabled=true;
        application.myDateChooser_gif_embeded.selectedDate=new Date(2007, 00, 01);

    }
    public function disableDateChooser_gif_embeded():void{
        application.myDateChooser_gif_embeded.enabled=false;

    }

    public function disableNumericStepper_gif_embeded():void{
        application.myNumericStepper_gif_embeded.enabled=false;

    }
    public function setAccordion_gif_embeded():void{
        var myVBox1:VBox=new VBox();
        myVBox1.label="VBox 1";
        myVBox1.width=200;
        myVBox1.height=100;
        var myVBox2:VBox=new VBox();
        myVBox2.label="VBox 2";
        myVBox2.width=200;
        myVBox2.height=100;
        var myVBox3:VBox=new VBox();
        myVBox3.label="VBox 3";
        myVBox3.width=200;
        myVBox3.height=100;

        var myBtn1:Button = new Button();
        myBtn1.label="Blah Blah";
        var myBtn2:Button = new Button();
        myBtn2.label="Wah Wah";
        var myBtn3:Button = new Button();
        myBtn3.label="Wow wow";
        var myBtn4:Button = new Button();
        myBtn4.label="Yay yay";
        myVBox1.addChild(myBtn1);
        myVBox1.addChild(myBtn2);
        myVBox1.addChild(myBtn3);
        myVBox1.addChild(myBtn4);

        var myBtn5:Button = new Button();
        myBtn5.label="Blah Blah";
        var myBtn6:Button = new Button();
        myBtn6.label="Wah Wah";
        var myBtn7:Button = new Button();
        myBtn7.label="Wow wow";
        var myBtn8:Button = new Button();
        myBtn8.label="Yay yay";
        myVBox2.addChild(myBtn5);
        myVBox2.addChild(myBtn6);
        myVBox2.addChild(myBtn7);
        myVBox2.addChild(myBtn8);

        var myBtn9:Button = new Button();
        myBtn9.label="Blah Blah";
        var myBtn10:Button = new Button();
        myBtn10.label="Wah Wah";
        var myBtn11:Button = new Button();
        myBtn11.label="Wow wow";
        var myBtn12:Button = new Button();
        myBtn12.label="Yay yay";
        myVBox3.addChild(myBtn9);
        myVBox3.addChild(myBtn10);
        myVBox3.addChild(myBtn11);
        myVBox3.addChild(myBtn12);

        application.myAccordion_gif_embeded.addChild(myVBox1);
        application.myAccordion_gif_embeded.addChild(myVBox2);
        application.myAccordion_gif_embeded.addChild(myVBox3);


    }
    public function disableAccordion_gif_embeded():void{
        application.myAccordion_gif_embeded.enabled=false;

    }
    public function setToggleButtonBar_gif_embeded():void{
        application.myToggleButtonBar_gif_embeded.dataProvider=application.scaleTypedp;
        application.myToggleButtonBar_gif_embeded.setStyle("buttonStyleName", "myToggleButtonBar");

    }
    public function setButtonBar_gif_embeded():void{
        application.myButtonBar_gif_embeded.dataProvider=application.scaleTypedp;
        application.myButtonBar_gif_embeded.setStyle("buttonStyleName", "myToggleButtonBar");

    }
    public function disableToggleButtonBar_gif_embeded():void{
        application.myToggleButtonBar_gif_embeded.enabled=false;

    }
    public function disableButtonBar_gif_embeded():void{
        application.myButtonBar_gif_embeded.enabled=false;

    }
    public function setLinkButton_gif_embeded():void{
        application.myLinkButton_gif_embeded.label="LinkButton control";
        application.myLinkButton_gif_embeded.setStyle("fontWeight", "bold");

    }
    public function disableLinkButton_gif_embeded():void{
        application.myLinkButton_gif_embeded.enabled=false;

    }
    public function disablePopUpButton_gif_embeded():void{
        application.myPopUpButton_gif_embeded.enabled=false;

    }
    public function setDateHardCodedField_gif_embeded():void{
        application.myDateField_gif_embeded.yearNavigationEnabled=true;
        application.myDateField_gif_embeded.selectedDate=new Date(2007, 00, 01);

    }
    public function disableDateField_gif_embeded():void{
        application.myDateField_gif_embeded.enabled=false;

    }

    public function set_VBox_gif_embeded():void{
        var highBtn:Button=new Button();
        highBtn.label="high button";
        highBtn.height=100;
        var highText:TextInput=new TextInput();
        highText.height=50;
        application.myVBox_gif_embeded.height=120;
        application.myVBox_gif_embeded.addChild(highBtn);
        application.myVBox_gif_embeded.addChild(highText);


    }
    public function disableVBox_gif_embeded():void{
        application.myVBox_gif_embeded.enabled=false;

    }


    public function disableTabBar_gif_embeded():void{
        application.myTabBar_gif_embeded.enabled=false;

    }

    public function set_TabBar_gif_embeded():void{
        application.myTabBar_gif_embeded.dataProvider=application.scaleTypedp;
        application.myTabBar_gif_embeded.setStyle("tabStyleName","myTabBar");


    }

    public function disableComboBox_gif_embeded():void{
        application.myComboBox_gif_embeded.enabled=false;

    }

    public function set_ComboBox_gif_embeded():void{
        application.myComboBox_gif_embeded.dataProvider=application.scaleTypedp;

    }
    public function disableHSlider_gif_embeded():void{
        application.myHSlider_gif_embeded.enabled=false;

    }

    public function set_HSlider_gif_embeded():void{
        application.myHSlider_gif_embeded.minimum=0;
        application.myHSlider_gif_embeded.maximum=100;
        application.myHSlider_gif_embeded.value=100;
        application.myHSlider_gif_embeded.setStyle("tickColor", 0x000000);
        application.myHSlider_gif_embeded.snapInterval=1;
        application.myHSlider_gif_embeded.tickInterval=10;
        application.myHSlider_gif_embeded.labels=["0%","100%"];

    }
    public function disableVSlider_gif_embeded():void{
        application.myVSlider_gif_embeded.enabled=false;

    }
    public function set_VSlider_gif_embeded():void{
        application.myVSlider_gif_embeded.minimum=0;
        application.myVSlider_gif_embeded.maximum=100;
        application.myVSlider_gif_embeded.value=100;
        application.myVSlider_gif_embeded.setStyle("tickColor", 0x000000);
        application.myVSlider_gif_embeded.snapInterval=1;
        application.myVSlider_gif_embeded.tickInterval=10;
        application.myVSlider_gif_embeded.labels=["0%","100%"];

    }

    public function disableCheckBox1_gif_embeded():void{
        application.checkbox1_gif_embeded.enabled=false;

    }


    public function set_CheckBox1_gif_embeded():void{
        application.checkbox1_gif_embeded.label="milk";

    }

    public function disableCheckBox2_gif_embeded():void{
        application.checkbox2_gif_embeded.enabled=false;

    }

    public function set_CheckBox2_gif_embeded():void{
        application.checkbox2_gif_embeded.label="eggs";
        application.checkbox2_gif_embeded.selected=true;

    }

    public function disableRadioButton1_gif_embeded():void{
        application.radiobutton1_gif_embeded.enabled=false;

    }


    public function set_radiobutton1_gif_embeded():void{
        application.radiobutton1_gif_embeded.label="Credit Card One";
        application.radiobutton1_gif_embeded.width=150;

    }

    public function disableRadioButton2_gif_embeded():void{
        application.radiobutton2_gif_embeded.enabled=false;

    }

    public function set_radiobutton2_gif_embeded():void{
        application.radiobutton2_gif_embeded.label="Credit Card Two";
        application.radiobutton2_gif_embeded.width=150;
        application.radiobutton2_gif_embeded.selected=true;

    }

    ]]>
    </mx:Script>
    <mx:Metadata>
    <![CDATA[
        [Mixin]
    ]]>
    </mx:Metadata>
    <!-- end of set of lines that must be in each unit test -->

    <testCases>

        <TestCase testID="Test_pumb_Skin_over_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, PopUpMenuButtons, over]">
            <setup>
                <ResetComponent target="myPopUpButton_gif_embeded" className="mx.controls.PopUpButton" waitEvent="updateComplete" waitTarget="myPopUpButton_gif_embeded"/>
                <SetProperty target="myPopUpButton_gif_embeded" propertyName="label" value="Check popUpOverSkin is displayed." waitTarget="myPopUpButton_gif_embeded" waitEvent="updateComplete"/>
                <SetProperty target="myPopUpButton_gif_embeded" propertyName="width" value="250" waitTarget="myPopUpButton_gif_embeded" waitEvent="updateComplete"/>
                <SetProperty target="myPopUpButton_gif_embeded" propertyName="height" value="23" waitTarget="myPopUpButton_gif_embeded" waitEvent="updateComplete"/>
                <DispatchMouseClickEvent localX="10" localY="10" target="myPopUpButton_gif_embeded" timeout="2000" waitTarget="myPopUpButton_gif_embeded" waitEvent="mouseUp"/>
                <DispatchMouseEvent localX="10" localY="10" buttonDown="false" type="mouseOver" target="myPopUpButton_gif_embeded" timeout="1000" waitTarget="myPopUpButton_gif_embeded" waitEvent="mouseOver" />
            </setup>
            <body>
                    <AssertPixelValue target="myPopUpButton_gif_embeded" x="10" y="10" value="0xB4DFDB" />
            </body>
        </TestCase>
        <TestCase testID="Test_pumb_Skin_up_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, PopUpMenuButtons, up]">
            <setup>
                <ResetComponent target="myPopUpButton_gif_embeded" className="mx.controls.PopUpButton" waitEvent="updateComplete" waitTarget="myPopUpButton_gif_embeded" />
                <SetProperty target="myPopUpButton_gif_embeded" propertyName="label" value="Check popUpOverSkin is displayed." waitTarget="myPopUpButton_gif_embeded" waitEvent="updateComplete"/>
                <SetProperty target="myPopUpButton_gif_embeded" propertyName="width" value="250" waitTarget="myPopUpButton_gif_embeded" waitEvent="updateComplete"/>
                <SetProperty target="myPopUpButton_gif_embeded" propertyName="height" value="23" waitTarget="myPopUpButton_gif_embeded" waitEvent="updateComplete" />

                <DispatchMouseClickEvent localX="10" localY="10" target="myPopUpMenuButton_gif_embeded" timeout="1000" waitTarget="myPopUpMenuButton_gif_embeded" waitEvent="mouseUp"/>
            </setup>
            <body>
                    <AssertPixelValue target="myPopUpButton_gif_embeded" x="10" y="10" value="0xEFEFEF" />
            </body>
        </TestCase>
        <TestCase testID="Test_pumb_Skin_down_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, PopUpMenuButtons, down]">
            <setup>
                <ResetComponent target="myPopUpButton_gif_embeded" className="mx.controls.PopUpButton" waitEvent="updateComplete" waitTarget="myPopUpButton_gif_embeded" />
                <SetProperty target="myPopUpButton_gif_embeded" propertyName="label" value="Check popUpOverSkin is displayed." waitTarget="myPopUpButton_gif_embeded" waitEvent="updateComplete"/>
                <SetProperty target="myPopUpButton_gif_embeded" propertyName="width" value="250" waitTarget="myPopUpButton_gif_embeded" waitEvent="updateComplete"/>
                <SetProperty target="myPopUpButton_gif_embeded" propertyName="height" value="23" waitTarget="myPopUpButton_gif_embeded" waitEvent="updateComplete" />

                    <DispatchMouseEvent localX="10" localY="10" target="myPopUpButton_gif_embeded" type="mouseDown"  timeout="1000" waitTarget="myPopUpButton_gif_embeded" waitEvent="mouseDown" />
            </setup>
            <body>
                    <AssertPixelValue target="myPopUpButton_gif_embeded" x="10" y="10" value="0x54BCB5" />
            </body>
        </TestCase>

        <TestCase testID="Test_Button_Skin_normal_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, Button, up]">
            <setup>
                <ResetComponent target="myButton_gif_embeded" className="mx.controls.Button" waitEvent="updateComplete" />
                <RunCode code="setButtonStyle_gif_embeded();" timeout="1000" waitTarget="myButton_gif_embeded" waitEvent="updateComplete" />
            </setup>
            <body>
                    <CompareBitmap target="myButton_gif_embeded" url="../Styles/Baselines/Button_Skinned_up_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_Button_Skin_over_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, Button, over]">
            <setup>
                <ResetComponent target="myButton_gif_embeded" className="mx.controls.Button" waitEvent="updateComplete" />
                    <RunCode code="setButtonStyle_gif_embeded();" timeout="1000" waitTarget="myButton_gif_embeded" waitEvent="updateComplete"/>

                    <DispatchMouseClickEvent localX="10" localY="10" target="myButton_gif_embeded" timeout="2000" waitTarget="myButton_gif_embeded" waitEvent="mouseUp"/>
            </setup>
            <body>

                    <CompareBitmap target="myButton_gif_embeded" url="../Styles/Baselines/Button_Skinned_over_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_Button_Skin_down_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, Button, down]">
            <setup>
                <ResetComponent target="myButton_gif_embeded" className="mx.controls.Button" waitEvent="updateComplete" />
                    <RunCode code="setButtonStyle_gif_embeded();" timeout="1000" waitTarget="myButton_gif_embeded" waitEvent="updateComplete"/>

                    <DispatchMouseEvent target="myButton_gif_embeded" localX="10" localY="10" type="mouseDown" waitTarget="myButton_gif_embeded" waitEvent="updateComplete" timeout="1000" />
            </setup>
            <body>
                    <CompareBitmap target="myButton_gif_embeded" url="../Styles/Baselines/Button_Skinned_down_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_Button_Skin_disabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, Button, disabled]">
            <setup>
                <ResetComponent target="myButton_gif_embeded" className="mx.controls.Button" waitEvent="updateComplete" />
                <RunCode code="makeButtonDisabled_gif_embeded();" timeout="1000" waitTarget="myButton_gif_embeded" waitEvent="updateComplete" />

                <DispatchMouseClickEvent localX="10" localY="10" target="myButton_gif_embeded" timeout="2000"/>
            </setup>
            <body>
                    <CompareBitmap target="myButton_gif_embeded" url="../Styles/Baselines/Button_Skinned_diabled_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_DateChooser_Skin_normal_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, DateChooser, navigaion, buttons]">
            <setup>
                 <ResetComponent target="myDateChooser_gif_embeded" className="mx.controls.DateChooser" waitEvent="updateComplete" />
                <RunCode code="setDateHardCoded_gif_embeded();" timeout="1000" waitTarget="myDateChooser_gif_embeded" waitEvent="updateComplete"/>
            </setup>
            <body>
                    <CompareBitmap target="myDateChooser_gif_embeded" url="../Styles/Baselines/DateChooser_Skinned_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_DateChooser_Skin_disabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, DateChooser, navigaion, buttons, disabled]">
            <setup>
                <ResetComponent target="myDateChooser_gif_embeded" className="mx.controls.DateChooser" waitEvent="updateComplete" />
                <RunCode code="setDateHardCoded_gif_embeded();" timeout="1000" waitEvent="updateComplete" />

                <RunCode code="disableDateChooser_gif_embeded();" timeout="1000" waitTarget="myDateChooser_gif_embeded" waitEvent="updateComplete" />

            </setup>
            <body>
                    <CompareBitmap target="myDateChooser_gif_embeded" url="../Styles/Baselines/DateChooser_Skinned_disabled_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_NumericStepper_Skin_normal_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, NumericStepper, navigaion, buttons]">
            <setup>
                <ResetComponent target="myNumericStepper_gif_embeded" className="mx.controls.NumericStepper" waitEvent="updateComplete" />

            </setup>
            <body>
                    <CompareBitmap target="myNumericStepper_gif_embeded" url="../Styles/Baselines/NumericStepper_Skinned_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_NumericStepper_Skin_disabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, NumericStepper, navigaion, buttons]">
            <setup>
                <ResetComponent target="myNumericStepper_gif_embeded" className="mx.controls.NumericStepper" waitEvent="updateComplete" />

                <RunCode code="disableNumericStepper_gif_embeded();" timeout="1000" waitTarget="myNumericStepper_gif_embeded" waitEvent="updateComplete" />
            </setup>
            <body>
                    <CompareBitmap target="myNumericStepper_gif_embeded" url="../Styles/Baselines/NumericStepper_Skinned_disabled_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_Accordion_Skin_normal_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, Accordion, navigaion, buttons]">
            <setup>
                <ResetComponent target="myAccordion_gif_embeded" className="mx.containers.Accordion" waitEvent="updateComplete" />
                <RunCode code="setAccordion_gif_embeded();" timeout="1000" waitTarget="myAccordion_gif_embeded" waitEvent="updateComplete" />

            </setup>
            <body>
                    <CompareBitmap target="myAccordion_gif_embeded" url="../Styles/Baselines/Accordion_Skinned_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_Accordion_Skin_disabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, Accordion, navigaion, buttons]">
            <setup>
                <ResetComponent target="myAccordion_gif_embeded" className="mx.containers.Accordion" waitEvent="updateComplete" />

                <RunCode code="setAccordion_gif_embeded();" timeout="1000" waitTarget="myAccordion_gif_embeded" waitEvent="updateComplete" />

                <RunCode code="disableAccordion_gif_embeded();" waitTarget="myAccordion_gif_embeded" waitEvent="updateComplete" timeout="1000" />
            </setup>
            <body>
                    <CompareBitmap target="myAccordion_gif_embeded" url="../Styles/Baselines/Accordion_Skinned_disabled_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_ToggleButtonBar_Skin_normal_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, ToggleButtonBar, navigaion, buttons]">
            <setup>
                <ResetComponent target="myToggleButtonBar_gif_embeded" className="mx.controls.ToggleButtonBar" waitEvent="updateComplete" />
                <RunCode code="setToggleButtonBar_gif_embeded();" timeout="1000" waitTarget="myToggleButtonBar_gif_embeded" waitEvent="updateComplete" />

                <DispatchMouseClickEvent localX="10" localY="10" target="myToggleButtonBar_gif_embeded" timeout="2000" waitTarget="myToggleButtonBar_gif_embeded" waitEvent="mouseUp"/>
            </setup>
            <body>
                    <CompareBitmap target="myToggleButtonBar_gif_embeded" url="../Styles/Baselines/TBB_Skinned_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_ToggleButtonBar_Skin_disabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, ToggleButtonBar, navigaion, buttons]">
            <setup>
                <ResetComponent target="myToggleButtonBar_gif_embeded" className="mx.controls.ToggleButtonBar" waitEvent="updateComplete" />
                <RunCode code="setToggleButtonBar_gif_embeded();" timeout="1000" waitTarget="myToggleButtonBar_gif_embeded" waitEvent="updateComplete" />

                <DispatchMouseClickEvent localX="10" localY="10" target="myToggleButtonBar_gif_embeded" timeout="2000" waitTarget="myToggleButtonBar_gif_embeded" waitEvent="mouseUp"/>

                <RunCode code="disableToggleButtonBar_gif_embeded();" timeout="1000" waitTarget="myToggleButtonBar_gif_embeded" waitEvent="updateComplete"/>

            </setup>
            <body>
                    <CompareBitmap target="myToggleButtonBar_gif_embeded" url="../Styles/Baselines/TBB_Disabled_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_ButtonBar_Skin_normal_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, ButtonBar, navigaion, buttons]">
            <setup>
                <ResetComponent target="myButtonBar_gif_embeded" className="mx.controls.ButtonBar" waitEvent="updateComplete" />
                <RunCode code="setButtonBar_gif_embeded();" timeout="1000" waitTarget="myButtonBar_gif_embeded" waitEvent="updateComplete" />

                <DispatchMouseClickEvent localX="10" localY="10" target="myButtonBar_gif_embeded" timeout="2000"  waitTarget="myButtonBar_gif_embeded" waitEvent="mouseUp" />
            </setup>
            <body>
                    <CompareBitmap target="myButtonBar_gif_embeded" url="../Styles/Baselines/ButtonBar_Skinned_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_ButtonBar_Skin_disabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, ButtonBar, navigaion, buttons]">
            <setup>
                <ResetComponent target="myButtonBar_gif_embeded" className="mx.controls.ButtonBar" waitEvent="updateComplete" />
                <RunCode code="setButtonBar_gif_embeded();" timeout="1000" waitTarget="myButtonBar_gif_embeded" waitEvent="updateComplete" />

                <DispatchMouseClickEvent localX="10" localY="10" target="myButtonBar_gif_embeded" timeout="2000"  waitTarget="myButtonBar_gif_embeded" waitEvent="mouseUp" />

                <RunCode code="disableButtonBar_gif_embeded();" timeout="1000" waitTarget="myButtonBar_gif_embeded" waitEvent="updateComplete" />
            </setup>
            <body>
                    <CompareBitmap target="myButtonBar_gif_embeded" url="../Styles/Baselines/ButtonBar_Skinned_disabled_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_LinkButton_Skin_normal_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, LinkButton, navigaion, buttons]">
            <setup>
                <ResetComponent target="myLinkButton_gif_embeded" className="mx.controls.LinkButton" waitEvent="updateComplete" />
                <RunCode code="setLinkButton_gif_embeded();" timeout="1000" waitTarget="myLinkButton_gif_embeded" waitEvent="updateComplete" />

            </setup>
            <body>
                    <CompareBitmap target="myLinkButton_gif_embeded" url="../Styles/Baselines/LinkButton_Skinned_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_LinkButton_Skin_disabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, LinkButton, navigaion, buttons]">
            <setup>
                <ResetComponent target="myLinkButton_gif_embeded" className="mx.controls.LinkButton" waitEvent="updateComplete" />
                <RunCode code="setLinkButton_gif_embeded();" timeout="1000" waitTarget="myLinkButton_gif_embeded" waitEvent="updateComplete" />

                <RunCode code="disableLinkButton_gif_embeded();" waitTarget="myLinkButton_gif_embeded" waitEvent="updateComplete" timeout="1000" />
            </setup>
            <body>
                    <CompareBitmap target="myLinkButton_gif_embeded" url="../Styles/Baselines/LinkButton_Skinned_disabled_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_PopUpButton_Skin_disabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, PopUpButton, disabled]">
            <setup>
                <ResetComponent target="myPopUpButton_gif_embeded" className="mx.controls.PopUpButton" waitEvent="updateComplete" waitTarget="myPopUpButton_gif_embeded"/>
                <SetProperty target="myPopUpButton_gif_embeded" propertyName="label" value="Check popUpOverSkin is displayed." waitTarget="myPopUpButton_gif_embeded" waitEvent="updateComplete"/>
                <SetProperty target="myPopUpButton_gif_embeded" propertyName="width" value="250" waitTarget="myPopUpButton_gif_embeded" waitEvent="updateComplete"/>
                <SetProperty target="myPopUpButton_gif_embeded" propertyName="height" value="23" waitTarget="myPopUpButton_gif_embeded" waitEvent="updateComplete" />

                    <RunCode code="disablePopUpButton_gif_embeded();" waitTarget="myPopUpButton_gif_embeded" waitEvent="updateComplete" timeout="1000"/>
            </setup>
            <body>
                    <CompareBitmap target="myPopUpButton_gif_embeded" url="../Styles/Baselines/PopUpButton_Skinned_disabled_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_DateField_Skin_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, DateField, enabled]">
            <setup>
                <ResetComponent target="myDateField_gif_embeded" className="mx.controls.DateField" waitEvent="updateComplete" />
                <RunCode code="setDateHardCodedField_gif_embeded();" waitTarget="myDateField_gif_embeded" waitEvent="updateComplete" timeout="1000"/>
            </setup>
            <body>
                    <CompareBitmap target="myDateField_gif_embeded" url="../Styles/Baselines/DateField_Skinned_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_DateField_Skin_disabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, DateField, disabled]">
            <setup>
                <ResetComponent target="myDateField_gif_embeded" className="mx.controls.DateField" waitEvent="updateComplete" />
                <RunCode code="setDateHardCodedField_gif_embeded();" waitTarget="myDateField_gif_embeded" waitEvent="updateComplete" timeout="1000" />
                <RunCode code="disableDateField_gif_embeded();" waitTarget="myDateField_gif_embeded" waitEvent="updateComplete" timeout="1000" />
                <DispatchMouseClickEvent localX="10" localY="10" target="myDateField_gif_embeded" timeout="2000"/>
            </setup>
            <body>
                    <CompareBitmap target="myDateField_gif_embeded" url="../Styles/Baselines/DateField_Skinned_disabled_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_VBox_Skin_enabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, VBox, enabled]">
            <setup>
                <ResetComponent target="myVBox_gif_embeded" className="mx.containers.VBox" waitEvent="updateComplete" />
                    <RunCode code="set_VBox_gif_embeded();" waitTarget="myVBox_gif_embeded" waitEvent="updateComplete" timeout="1000"/>
                <DispatchMouseClickEvent stageX="10" stageY="10" timeout="2000"/>
            </setup>
            <body>
                    <CompareBitmap target="myVBox_gif_embeded" url="../Styles/Baselines/VBox_Skinned_enabled_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_VBox_Skin_disabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, VBox, enabled]">
            <setup>
                <ResetComponent target="myVBox_gif_embeded" className="mx.containers.VBox" waitEvent="updateComplete" />
                    <RunCode code="set_VBox_gif_embeded();" waitTarget="myVBox_gif_embeded" waitEvent="updateComplete" timeout="1000" />
                <RunCode code="disableVBox_gif_embeded();" waitTarget="myVBox_gif_embeded" waitEvent="updateComplete" timeout="1000"/>
            </setup>
            <body>
                    <CompareBitmap target="myVBox_gif_embeded" url="../Styles/Baselines/VBox_Skinned_disabled_gif_embeded.png" />
                    <DispatchMouseClickEvent stageX="1195" stageY="750" timeout="2000" waitTarget="stage" waitEvent="mouseUp"/>

            </body>
        </TestCase>

        <TestCase testID="Test_TabBar_Skin_enabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, TabBar, enabled]">
            <setup>
                <DispatchMouseClickEvent stageX="1195" stageY="760" timeout="2000" waitTarget="stage" waitEvent="mouseUp"/>

                <ResetComponent target="myTabBar_gif_embeded" className="mx.controls.TabBar" waitEvent="updateComplete" />
                    <RunCode code="set_TabBar_gif_embeded();" waitTarget="myTabBar_gif_embeded" waitEvent="updateComplete" timeout="1000" />

            </setup>
            <body>
                    <CompareBitmap target="myTabBar_gif_embeded" url="../Styles/Baselines/TabBar_Skinned_enabled_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_TabBar_Skin_disabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, TabBar, enabled]">
            <setup>
                <ResetComponent target="myTabBar_gif_embeded" className="mx.controls.TabBar" waitEvent="updateComplete" />
                    <RunCode code="set_TabBar_gif_embeded();" waitTarget="myTabBar_gif_embeded" waitEvent="updateComplete" timeout="1000" />

                    <DispatchMouseClickEvent localX="10" localY="10" target="myTabBar_gif_embeded" timeout="2000" waitTarget="myTabBar_gif_embeded" waitEvent="mouseUp" />

                    <RunCode code="disableTabBar_gif_embeded();" waitTarget="myTabBar_gif_embeded" waitEvent="updateComplete" timeout="1000"  />
            </setup>
            <body>
                    <CompareBitmap target="myTabBar_gif_embeded" url="../Styles/Baselines/TabBar_Skinned_disabled_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_ComboBox_Skin_enabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, ComboBox, enabled]">
            <setup>
                <ResetComponent target="myComboBox_gif_embeded" className="mx.controls.ComboBox" waitEvent="updateComplete" />
                    <RunCode code="set_ComboBox_gif_embeded();" waitTarget="myComboBox_gif_embeded" waitEvent="updateComplete" timeout="1000" />
            </setup>
            <body>
                    <CompareBitmap target="myComboBox_gif_embeded" url="../Styles/Baselines/ComboBox_Skinned_enabled_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_ComboBox_Skin_disabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, ComboBox, enabled]">
            <setup>
                <ResetComponent target="myComboBox_gif_embeded" className="mx.controls.ComboBox" waitEvent="updateComplete" />
                    <RunCode code="set_ComboBox_gif_embeded();" waitTarget="myComboBox_gif_embeded" waitEvent="updateComplete" timeout="1000" />

                <RunCode code="disableComboBox_gif_embeded();" waitTarget="myComboBox_gif_embeded" waitEvent="updateComplete" timeout="1000" />
            </setup>
            <body>
                    <CompareBitmap target="myComboBox_gif_embeded" url="../Styles/Baselines/ComboBox_Skinned_disabled_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_HSlider_Skin_enabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, HSlider, enabled]">
            <setup>
                <ResetComponent target="myHSlider_gif_embeded" className="mx.controls.HSlider" waitEvent="updateComplete" />
                    <RunCode code="set_HSlider_gif_embeded();" waitTarget="myHSlider_gif_embeded" waitEvent="updateComplete" timeout="1000" />
            </setup>
            <body>
                    <CompareBitmap target="myHSlider_gif_embeded" url="../Styles/Baselines/HSlider_Skinned_enabled_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_HSlider_Skin_disabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, HSlider, enabled]">
            <setup>
                <ResetComponent target="myHSlider_gif_embeded" className="mx.controls.HSlider" waitEvent="updateComplete" />
                    <RunCode code="set_HSlider_gif_embeded();" waitTarget="myHSlider_gif_embeded" waitEvent="updateComplete" timeout="1000" />

                    <RunCode code="disableHSlider_gif_embeded();" waitTarget="myHSlider_gif_embeded" waitEvent="updateComplete" timeout="1000" />
            </setup>
            <body>
                    <CompareBitmap target="myHSlider_gif_embeded" url="../Styles/Baselines/HSlider_Skinned_disabled_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_VSlider_Skin_enabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, VSlider, enabled]">
            <setup>
                <ResetComponent target="myVSlider_gif_embeded" className="mx.controls.VSlider" waitEvent="updateComplete" />
                    <RunCode code="set_VSlider_gif_embeded();" waitTarget="myVSlider_gif_embeded" waitEvent="updateComplete" timeout="1000" />

            </setup>
            <body>
                    <CompareBitmap target="myVSlider_gif_embeded" url="../Styles/Baselines/VSlider_Skinned_enabled_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_VSlider_Skin_disabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, VSlider, enabled]">
            <setup>
                <ResetComponent target="myVSlider_gif_embeded" className="mx.controls.VSlider" waitEvent="updateComplete" />
                    <RunCode code="set_VSlider_gif_embeded();" waitTarget="myVSlider_gif_embeded" waitEvent="updateComplete" timeout="1000" />

                    <RunCode code="disableVSlider_gif_embeded();" waitTarget="myVSlider_gif_embeded" waitEvent="updateComplete" timeout="1000"  />

            </setup>
            <body>
                    <CompareBitmap target="myVSlider_gif_embeded" url="../Styles/Baselines/VSlider_Skinned_disabled_gif_embeded.png" />
            </body>
        </TestCase>




        <TestCase testID="Test_checkbox1_Skin_up_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, CheckBox, enabled, up, Icon]">
            <setup>
                <ResetComponent target="checkbox1_gif_embeded" className="mx.controls.CheckBox" waitEvent="updateComplete" />
                    <RunCode code="set_CheckBox1_gif_embeded();" waitTarget="checkbox1_gif_embeded" waitEvent="updateComplete" timeout="1000" />
            </setup>
            <body>

                    <CompareBitmap target="checkbox1_gif_embeded" url="../Styles/Baselines/checkbox1_Skinned_up_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_checkbox1_Skin_over_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, CheckBox, enabled, over, Icon]">
            <setup>
                <ResetComponent target="checkbox1_gif_embeded" className="mx.controls.CheckBox" waitEvent="updateComplete" />
                    <RunCode code="set_CheckBox1_gif_embeded();" waitTarget="checkbox1_gif_embeded" waitEvent="updateComplete" timeout="1000" />

                <!--<DispatchMouseEvent localX="7" localY="7" target="checkbox1_gif_embeded" type="mouseOver" waitTarget="checkbox1_gif_embeded" waitEvent="updateComplete" timeout="1000" /> -->
                    <DispatchMouseClickEvent localX="5" localY="5" target="checkbox1_gif_embeded" timeout="2000"  waitTarget="checkbox1_gif_embeded" waitEvent="updateComplete"/>
                    <DispatchMouseClickEvent localX="5" localY="5" target="checkbox1_gif_embeded" timeout="2000"  waitTarget="checkbox1_gif_embeded" waitEvent="updateComplete"/>
            </setup>
            <body>

                    <CompareBitmap target="checkbox1_gif_embeded" url="../Styles/Baselines/checkbox1_Skinned_over_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_checkbox1_Skin_down_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, CheckBox, enabled, down, Icon]">
            <setup>
                <ResetComponent target="checkbox1_gif_embeded" className="mx.controls.CheckBox" waitEvent="updateComplete" />
                    <RunCode code="set_CheckBox1_gif_embeded();" waitTarget="checkbox1_gif_embeded" waitEvent="updateComplete" timeout="1000" />

                    <DispatchMouseEvent localX="7" localY="7" target="checkbox1_gif_embeded" type="mouseDown" waitTarget="checkbox1_gif_embeded" waitEvent="updateComplete"  timeout="1000"/>
            </setup>
            <body>

                    <CompareBitmap target="checkbox1_gif_embeded" url="../Styles/Baselines/checkbox1_Skinned_down_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_checkbox1_Skin_Disabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, CheckBox, disabled ]">
            <setup>
                <ResetComponent target="checkbox1_gif_embeded" className="mx.controls.CheckBox" waitEvent="updateComplete" />
                    <RunCode code="set_CheckBox1_gif_embeded();" waitTarget="checkbox1_gif_embeded" waitEvent="updateComplete" timeout="1000" />

                    <RunCode code="disableCheckBox1_gif_embeded();" waitTarget="checkbox1_gif_embeded" waitEvent="updateComplete"  timeout="1000" />
            </setup>
            <body>

                    <CompareBitmap target="checkbox1_gif_embeded" url="../Styles/Baselines/checkbox1_Skinned_Disabled_gif_embeded.png" />
            </body>
        </TestCase>




        <TestCase testID="Test_checkbox2_Skin_selectedUp_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, CheckBox, enabled, selectedUp, Icon]">
            <setup>
                <ResetComponent target="checkbox2_gif_embeded" className="mx.controls.CheckBox" waitEvent="updateComplete" />
                    <RunCode code="set_CheckBox2_gif_embeded();" waitTarget="checkbox2_gif_embeded" waitEvent="updateComplete" timeout="1000" />

            </setup>
            <body>

                    <CompareBitmap target="checkbox2_gif_embeded" url="../Styles/Baselines/checkbox2_Skinned_selectedUp_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_checkbox2_Skin_selectedOver_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, CheckBox, enabled, selectedOver, Icon]">
            <setup>
                <ResetComponent target="checkbox2_gif_embeded" className="mx.controls.CheckBox" waitEvent="updateComplete" />
                    <RunCode code="set_CheckBox2_gif_embeded();" waitTarget="checkbox2_gif_embeded" waitEvent="updateComplete" timeout="1000" />

                    <!--<DispatchMouseEvent localX="5" localY="5" target="checkbox2_gif_embeded" type="mouseOver" waitTarget="checkbox2_gif_embeded" waitEvent="updateComplete" timeout="1000"/> -->
                    <DispatchMouseClickEvent localX="5" localY="5" target="checkbox2_gif_embeded" timeout="2000"  waitTarget="checkbox2_gif_embeded" waitEvent="updateComplete"/>
                    <DispatchMouseClickEvent localX="5" localY="5" target="checkbox2_gif_embeded" timeout="2000"  waitTarget="checkbox2_gif_embeded" waitEvent="updateComplete"/>
            </setup>
            <body>

                    <CompareBitmap target="checkbox2_gif_embeded" url="../Styles/Baselines/checkbox2_Skinned_selectedOver_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_checkbox2_Skin_selectedDown_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, CheckBox, enabled, selectedDown, Icon]">
            <setup>
                <ResetComponent target="checkbox2_gif_embeded" className="mx.controls.CheckBox" waitEvent="updateComplete" />
                    <RunCode code="set_CheckBox2_gif_embeded();" waitTarget="checkbox2_gif_embeded" waitEvent="updateComplete" timeout="1000" />

                    <DispatchMouseEvent localX="5" localY="5" target="checkbox2_gif_embeded" type="mouseDown" waitTarget="checkbox2_gif_embeded" waitEvent="updateComplete" timeout="1000"/>
            </setup>
            <body>

                    <CompareBitmap target="checkbox2_gif_embeded" url="../Styles/Baselines/checkbox2_Skinned_selectedDown_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_checkbox2_Skin_selectedDisabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, CheckBox, disabled, selectedDisabled]">
            <setup>
                <ResetComponent target="checkbox2_gif_embeded" className="mx.controls.CheckBox" waitEvent="updateComplete" />
                    <RunCode code="set_CheckBox2_gif_embeded();" waitTarget="checkbox2_gif_embeded" waitEvent="updateComplete" timeout="1000" />

                    <RunCode code="disableCheckBox2_gif_embeded();" waitTarget="checkbox2_gif_embeded" waitEvent="updateComplete" timeout="1000" />
            </setup>
            <body>

                    <CompareBitmap target="checkbox2_gif_embeded" url="../Styles/Baselines/checkbox2_Skinned_selectedDisabled_gif_embeded.png" />
            </body>
        </TestCase>

        <TestCase testID="Test_radiobutton1_Skin_up_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, RadioButton, enabled, up, Icon]">
            <setup>
                <ResetComponent target="radiobutton1_gif_embeded" className="mx.controls.RadioButton" waitEvent="updateComplete" />
                    <RunCode code="set_radiobutton1_gif_embeded();" waitTarget="radiobutton1_gif_embeded" waitEvent="updateComplete" timeout="1000" />
            </setup>
            <body>

                    <CompareBitmap target="radiobutton1_gif_embeded" url="../Styles/Baselines/radiobutton1_Skinned_up_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_radiobutton1_Skin_over_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, RadioButton, enabled, over, Icon]">
            <setup>
                <ResetComponent target="radiobutton1_gif_embeded" className="mx.controls.RadioButton" waitEvent="updateComplete" />
                    <RunCode code="set_radiobutton1_gif_embeded();" waitTarget="radiobutton1_gif_embeded" waitEvent="updateComplete" timeout="1000" />

                    <DispatchMouseEvent localX="8" localY="8" target="radiobutton1_gif_embeded" type="mouseOver"  timeout="2000"/>
            </setup>
            <body>

                    <CompareBitmap target="radiobutton1_gif_embeded" url="../Styles/Baselines/radiobutton1_Skinned_over_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_radiobutton1_Skin_down_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, RadioButton, enabled, down, Icon]">
            <setup>
                <ResetComponent target="radiobutton1_gif_embeded" className="mx.controls.RadioButton" waitEvent="updateComplete" />
                    <RunCode code="set_radiobutton1_gif_embeded();" waitTarget="radiobutton1_gif_embeded" waitEvent="updateComplete" timeout="1000" />

                    <DispatchMouseEvent localX="5" localY="5" target="radiobutton1_gif_embeded" type="mouseDown" timeout="2000"  waitTarget="radiobutton1_gif_embeded" waitEvent="updateComplete"/>
            </setup>
            <body>

                    <CompareBitmap target="radiobutton1_gif_embeded" url="../Styles/Baselines/radiobutton1_Skinned_down_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_radiobutton1_Skin_Disabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, RadioButton, disabled ]">
            <setup>
                <ResetComponent target="radiobutton1_gif_embeded" className="mx.controls.RadioButton" waitEvent="updateComplete" />
                    <RunCode code="set_radiobutton1_gif_embeded();" waitTarget="radiobutton1_gif_embeded" waitEvent="updateComplete" timeout="1000" />

                    <RunCode code="disableRadioButton1_gif_embeded();" waitTarget="radiobutton1_gif_embeded" waitEvent="updateComplete" timeout="1000" />

            </setup>
            <body>

                    <CompareBitmap target="radiobutton1_gif_embeded" url="../Styles/Baselines/radiobutton1_Skinned_Disabled_gif_embeded.png" />
            </body>
        </TestCase>



        <TestCase testID="Test_radiobutton2_Skin_down_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, RadioButton, enabled, selectedUp, Icon]">
            <setup>
                <ResetComponent target="radiobutton2_gif_embeded" className="mx.controls.RadioButton" waitEvent="updateComplete" />
                    <RunCode code="set_radiobutton2_gif_embeded();" waitTarget="radiobutton2_gif_embeded" waitEvent="updateComplete" timeout="1000" />

            </setup>
            <body>

                    <CompareBitmap target="radiobutton2_gif_embeded" url="../Styles/Baselines/radiobutton2_Skinned_selectedUp_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_radiobutton2_Skin_selectedOver_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, RadioButton, enabled, selectedOver, Icon]">
            <setup>
                <ResetComponent target="radiobutton2_gif_embeded" className="mx.controls.RadioButton" waitEvent="updateComplete" />
                    <RunCode code="set_radiobutton2_gif_embeded();" waitTarget="radiobutton2_gif_embeded" waitEvent="updateComplete" timeout="1000" />

            <!--    <DispatchMouseEvent localX="5" localY="5" target="radiobutton2_gif_embeded" type="mouseOver" timeout="2000"  waitTarget="radiobutton2_gif_embeded" waitEvent="updateComplete"/> -->
                <DispatchMouseClickEvent localX="5" localY="5" target="radiobutton2_gif_embeded" timeout="2000"  waitTarget="radiobutton2_gif_embeded" waitEvent="updateComplete"/>
            </setup>
            <body>

                    <CompareBitmap target="radiobutton2_gif_embeded" url="../Styles/Baselines/radiobutton2_Skinned_selectedOver_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_radiobutton2_Skin_selectedDown_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, RadioButton, enabled, selectedDown, Icon]">
            <setup>
                <ResetComponent target="radiobutton2_gif_embeded" className="mx.controls.RadioButton" waitEvent="updateComplete" />
                    <RunCode code="set_radiobutton2_gif_embeded();" waitTarget="radiobutton2_gif_embeded" waitEvent="updateComplete" timeout="1000" />

                    <DispatchMouseEvent localX="5" localY="5" target="radiobutton2_gif_embeded" type="mouseDown" timeout="2000" waitTarget="radiobutton2_gif_embeded" waitEvent="updateComplete"/>
            </setup>
            <body>

                    <CompareBitmap target="radiobutton2_gif_embeded" url="../Styles/Baselines/radiobutton2_Skinned_selectedDown_gif_embeded.png" />
            </body>
        </TestCase>
        <TestCase testID="Test_radiobutton2_Skin_selectedDisabled_gif_embeded" description="Skins set by skin states being validated." keywords="[SkinStates, RadioButton, disabled, selectedDisabled]">
            <setup>
                <ResetComponent target="radiobutton2_gif_embeded" className="mx.controls.RadioButton" waitEvent="updateComplete" />
                    <RunCode code="set_radiobutton2_gif_embeded();" waitTarget="radiobutton2_gif_embeded" waitEvent="updateComplete" timeout="1000" />

                    <RunCode code="disableRadioButton2_gif_embeded();" waitTarget="radiobutton2_gif_embeded" waitEvent="updateComplete" timeout="1000"/>
            </setup>
            <body>

                    <CompareBitmap target="radiobutton2_gif_embeded" url="../Styles/Baselines/radiobutton2_Skinned_selectedDisabled_gif_embeded.png" />
            </body>
        </TestCase>

    </testCases>
</UnitTester>
