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

    <!-- this set of lines form a template that must be in each unit test -->
    <mx:Script>
    <![CDATA[
    import mx.managers.SystemManager;

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

    }

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

    <testCases>
        <TestCase testID="Test_PrintDataGrid_Header_Skin" description="Skins set by skin states being validated." keywords="[SkinImprovement, PrintDataGrid, HeaderSkin]">
            <setup>
            <ResetComponent target="componentDataGridHeaderSkinBasic" className="component_DataGrid_HeaderSkin_Basic" waitTarget="updateComplete" />
            </setup>
            <body>
                <Pause timeout="200" />
                    <CompareBitmap target="" url="../Styles/Baselines/PrintDataGrid_Header_skin.png" />
            </body>
        </TestCase>
    </testCases>
</UnitTester>
