<?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="apollo/spark/components/Window/properties/"  xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" testSWF="window_basic_flexchrome.mxml">



	<!-- this set of lines form a template that must be in each unit test -->

	<mx:Script>

	<![CDATA[

	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 -->



	<mx:Script>

	<![CDATA[



        import flash.system.Capabilities;

        import mx.core.FlexGlobals;

        import spark.components.*;

        import spark.skins.spark.*;



	]]>

	</mx:Script>



    <testCases>



<!--

========================================================

Test showStatusBar

All pauses are needed.

========================================================

-->



<TestCase testID="showStatusBar_test1_SparkChrome" keywords="[WindowedApplication,showStatusBar]" description="true" >

    <setup>

        <RunCode code="FlexGlobals.topLevelApplication.closeAllChildWindow()"/>

	<RunCode code="FlexGlobals.topLevelApplication.createAWindow()" waitTarget="" waitEvent="myWindowComplete" /></setup>

    <body>
		<WaitForLayoutManager />
		<WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>

    	<WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>

        <MyCompareBitmap target="myWin"   numColorVariances="10" maxColorVariance="10" url="../properties/baselines/$testID.png"  mac_url="../properties/baselines/$testID_mac.png" />

    </body>

</TestCase>





<TestCase testID="showStatusBar_test2_SparkChrome" keywords="[WindowedApplication,showStatusBar]" description="false" >

    <setup>

        <RunCode code="FlexGlobals.topLevelApplication.closeAllChildWindow()"/>

	<RunCode code="FlexGlobals.topLevelApplication.createAWindow()" waitTarget="" waitEvent="myWindowComplete" />

	<SetProperty target="myWin" propertyName="showStatusBar" value="false" waitEvent="updateComplete"/>

    </setup>

    <body>

		<WaitForLayoutManager />
		<WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>
    	<WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>

        <MyCompareBitmap target="myWin"   numColorVariances="10" maxColorVariance="10" url="../properties/baselines/$testID.png"  mac_url="../properties/baselines/$testID_mac.png" />

    </body>

</TestCase>





<TestCase testID="showStatusBar_test3_SparkChrome" keywords="[WindowedApplication,showStatusBar]" description="false with a pause" >

    <setup>

        <RunCode code="FlexGlobals.topLevelApplication.closeAllChildWindow()"/>

	<RunCode code="FlexGlobals.topLevelApplication.createAWindow()" waitTarget="" waitEvent="myWindowComplete" />

	<SetProperty target="myWin" propertyName="showStatusBar" value="false" />

		<WaitForLayoutManager />
		<WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>
        <WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>

    </setup>

    <body>

        <MyCompareBitmap target="myWin"   numColorVariances="10" maxColorVariance="10" url="../properties/baselines/$testID.png"  mac_url="../properties/baselines/$testID_mac.png" />

    </body>

</TestCase>





<TestCase testID="showStatusBar_test4_SparkChrome" keywords="[WindowedApplication,showStatusBar]" description="true when already true" >

    <setup>

        <RunCode code="FlexGlobals.topLevelApplication.closeAllChildWindow()"/>

	<RunCode code="FlexGlobals.topLevelApplication.createAWindow()" waitTarget="" waitEvent="myWindowComplete" />

	<SetProperty target="myWin" propertyName="showStatusBar" value="true" />

		<WaitForLayoutManager />
		<WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>
	<WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>

    </setup>

    <body>

        <MyCompareBitmap target="myWin"   numColorVariances="10" maxColorVariance="10" url="../properties/baselines/$testID.png"  mac_url="../properties/baselines/$testID_mac.png" />

    </body>

</TestCase>



<TestCase testID="showStatusBar_test5_SparkChrome" keywords="[WindowedApplication,showStatusBar]" description="false when already false" >

    <setup>

        <RunCode code="FlexGlobals.topLevelApplication.closeAllChildWindow()"/>

        <!--old way

        <RunCode code="FlexGlobals.topLevelApplication.createAWindow()" waitTarget="" waitEvent="myWindowComplete" /> 

        -->

	<RunCode code="FlexGlobals.topLevelApplication.createAWindow()" waitTarget="" waitEvent="myWindowComplete" />

	<SetProperty target="myWin" propertyName="showStatusBar" value="false"/>

	<WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>

    </setup>

    <body>

        <SetProperty target="myWin" propertyName="showStatusBar" value="false"  waitEvent="enterFrame" waitTarget="stage"/>

		<WaitForLayoutManager />
		<WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>
        <WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>

        <MyCompareBitmap target="myWin"   numColorVariances="10" maxColorVariance="10" url="../properties/baselines/$testID.png"  mac_url="../properties/baselines/$testID_mac.png" />

    </body>

</TestCase>



<TestCase testID="showStatusBar_test6_SparkChrome" keywords="[WindowedApplication,showStatusBar]" description="wider" >

    <setup>

        <RunCode code="FlexGlobals.topLevelApplication.closeAllChildWindow()"/>

	<RunCode code="FlexGlobals.topLevelApplication.createAWindow()" waitTarget="" waitEvent="myWindowComplete" />

    </setup>

    <body>

        <SetProperty target="myWin" propertyName="width" valueExpression="value = FlexGlobals.topLevelApplication.width + 20" waitEvent="updateComplete" />

		<WaitForLayoutManager />
		<WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>
        <MyCompareBitmap target="myWin"   numColorVariances="10" maxColorVariance="10" url="../properties/baselines/$testID.png"  mac_url="../properties/baselines/$testID_mac.png" />

    </body>

</TestCase>





<TestCase testID="showStatusBar_test7_SparkChrome" keywords="[WindowedApplication,showStatusBar]" description="narrower" >

    <setup>

        <RunCode code="FlexGlobals.topLevelApplication.closeAllChildWindow()"/>

	<RunCode code="FlexGlobals.topLevelApplication.createAWindow()" waitTarget="" waitEvent="myWindowComplete" />

    </setup>

    <body>

        <SetProperty target="myWin" propertyName="width" valueExpression="value = FlexGlobals.topLevelApplication.width - 30" waitEvent="updateComplete" />

		<WaitForLayoutManager />
		<WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>
        <MyCompareBitmap target="myWin"   numColorVariances="10" maxColorVariance="10" url="../properties/baselines/$testID.png"  mac_url="../properties/baselines/$testID_mac.png" />

    </body>

</TestCase>





<TestCase testID="showStatusBar_test8_SparkChrome" keywords="[WindowedApplication,showStatusBar]" description="false to true while minimized" >

    <setup>

        <RunCode code="FlexGlobals.topLevelApplication.closeAllChildWindow()"/>

	<RunCode code="FlexGlobals.topLevelApplication.createAWindow()" waitTarget="" waitEvent="myWindowComplete" />

    </setup>

    <body>

        <SetProperty target="myWin" propertyName="showStatusBar" value="false" waitEvent="updateComplete" />

        <WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>

        <RunCode code="FlexGlobals.topLevelApplication.myWin.minimize()" waitTarget="myWin" waitEvent="displayStateChange" />

        <WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>

        <SetProperty target="myWin" propertyName="showStatusBar" value="true" waitEvent="updateComplete" />

        <WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>

        <RunCode code="FlexGlobals.topLevelApplication.myWin.restore()" waitTarget="myWin" waitEvent="displayStateChange" />

		<WaitForLayoutManager />
		<WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>
        <WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>

        <MyCompareBitmap target="myWin"   numColorVariances="10" maxColorVariance="10" url="../properties/baselines/$testID.png"  mac_url="../properties/baselines/$testID_mac.png" />

    </body>

</TestCase>





<TestCase testID="showStatusBar_test9_SparkChrome" keywords="[WindowedApplication,showStatusBar]" description="true to false while minimized" >

    <setup>

        <RunCode code="FlexGlobals.topLevelApplication.closeAllChildWindow()"/>

        <RunCode code="FlexGlobals.topLevelApplication.createAWindow()" waitTarget="" waitEvent="myWindowComplete" />

    </setup>

    <body>

	<WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>

        <RunCode code="FlexGlobals.topLevelApplication.myWin.minimize()" waitTarget="myWin" waitEvent="displayStateChange" />

        <SetProperty target="myWin" propertyName="showStatusBar" value="false" waitEvent="updateComplete" />

        <RunCode code="FlexGlobals.topLevelApplication.myWin.restore()" waitTarget="myWin" waitEvent="displayStateChange" />

        <MyCompareBitmap target="myWin"   numColorVariances="10" maxColorVariance="10" url="../properties/baselines/$testID.png"  mac_url="../properties/baselines/$testID_mac.png" />

    </body>

</TestCase>





<TestCase testID="showStatusBar_test1_WindowedApplicationSkin" keywords="[WindowedApplication,showStatusBar]" description="true" >

    <setup>

        <RunCode code="FlexGlobals.topLevelApplication.closeAllChildWindow()"/>

	<RunCode code="FlexGlobals.topLevelApplication.createAWindow()" waitTarget="" waitEvent="myWindowComplete" />

    </setup>

    <body>

	<SetStyle target="myWin" styleName="skinClass" valueExpression="value = WindowedApplicationSkin" waitEvent="updateComplete" />

        <MyCompareBitmap target="myWin"   numColorVariances="10" maxColorVariance="10" url="../properties/baselines/$testID.png"  mac_url="../properties/baselines/$testID_mac.png" />

    </body>

</TestCase>



<TestCase testID="showStatusBar_test2_WindowedApplicationSkin" keywords="[WindowedApplication,showStatusBar]" description="false" >

    <setup>

        <RunCode code="FlexGlobals.topLevelApplication.closeAllChildWindow()"/>

	<RunCode code="FlexGlobals.topLevelApplication.createAWindow()" waitTarget="" waitEvent="myWindowComplete" />

	<SetProperty target="myWin" propertyName="showStatusBar" value="false" waitEvent="updateComplete" />

    </setup>

    <body>

	<SetStyle target="myWin" styleName="skinClass" valueExpression="value = WindowedApplicationSkin" waitEvent="updateComplete" />

        <MyCompareBitmap target="myWin"   numColorVariances="10" maxColorVariance="10" url="../properties/baselines/$testID.png"  mac_url="../properties/baselines/$testID_mac.png" />

    </body>

</TestCase>





<TestCase testID="showStatusBar_test3_WindowedApplicationSkin" keywords="[WindowedApplication,showStatusBar]" description="true when already true" >

    <setup>

        <RunCode code="FlexGlobals.topLevelApplication.closeAllChildWindow()"/>

	<RunCode code="FlexGlobals.topLevelApplication.createAWindow()" waitTarget="" waitEvent="myWindowComplete" />

	<SetProperty target="myWin" propertyName="showStatusBar" value="true" />

        <WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>

    </setup>

    <body>

	<SetStyle target="myWin" styleName="skinClass" valueExpression="value = WindowedApplicationSkin" waitEvent="updateComplete" />

        <MyCompareBitmap target="myWin"   numColorVariances="10" maxColorVariance="10" url="../properties/baselines/$testID.png"  mac_url="../properties/baselines/$testID_mac.png" />

    </body>

</TestCase>





<TestCase testID="showStatusBar_test4_WindowedApplicationSkin" keywords="[WindowedApplication,showStatusBar]" description="false when already false" >

    <setup>

        <RunCode code="FlexGlobals.topLevelApplication.closeAllChildWindow()"/>

	<RunCode code="FlexGlobals.topLevelApplication.createAWindow()" waitTarget="" waitEvent="myWindowComplete" />

	<SetProperty target="myWin" propertyName="showStatusBar" value="false"/>

        <WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>

    </setup>

    <body>

	<SetStyle target="myWin" styleName="skinClass" valueExpression="value = WindowedApplicationSkin" waitEvent="updateComplete" />

        <SetProperty target="myWin" propertyName="showStatusBar" value="false" />

        <WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>

        <MyCompareBitmap target="myWin"   numColorVariances="10" maxColorVariance="10" url="../properties/baselines/$testID.png"  mac_url="../properties/baselines/$testID_mac.png" />

    </body>

</TestCase>





<TestCase testID="showStatusBar_test5_WindowedApplicationSkin" keywords="[WindowedApplication,showStatusBar]" description="wider" >

    <setup>

        <RunCode code="FlexGlobals.topLevelApplication.closeAllChildWindow()"/>

	<RunCode code="FlexGlobals.topLevelApplication.createAWindow()" waitTarget="" waitEvent="myWindowComplete" />

    </setup>

    <body>

	<SetStyle target="myWin" styleName="skinClass" valueExpression="value = WindowedApplicationSkin" waitEvent="updateComplete" />

        <SetProperty target="myWin" propertyName="width" valueExpression="value = FlexGlobals.topLevelApplication.width + 20" waitEvent="updateComplete" />

        <MyCompareBitmap target="myWin"   numColorVariances="10" maxColorVariance="10" url="../properties/baselines/$testID.png"  mac_url="../properties/baselines/$testID_mac.png" />

    </body>

</TestCase>





<TestCase testID="showStatusBar_test6_WindowedApplicationSkin" keywords="[WindowedApplication,showStatusBar]" description="narrower" >

    <setup>

        <RunCode code="FlexGlobals.topLevelApplication.closeAllChildWindow()"/>

	<RunCode code="FlexGlobals.topLevelApplication.createAWindow()" waitTarget="" waitEvent="myWindowComplete" />

    </setup>

    <body>

	<SetStyle target="myWin" styleName="skinClass" valueExpression="value = WindowedApplicationSkin" waitEvent="updateComplete" />

        <SetProperty target="myWin" propertyName="width" valueExpression="value = FlexGlobals.topLevelApplication.width - 30" waitEvent="updateComplete" />

        <MyCompareBitmap target="myWin"   numColorVariances="10" maxColorVariance="10" url="../properties/baselines/$testID.png"  mac_url="../properties/baselines/$testID_mac.png" />

    </body>

</TestCase>





<TestCase testID="showStatusBar_test7_WindowedApplicationSkin" keywords="[WindowedApplication,showStatusBar]" description="false to true while minimized" >

    <setup>

        <RunCode code="FlexGlobals.topLevelApplication.closeAllChildWindow()"/>

	<RunCode code="FlexGlobals.topLevelApplication.createAWindow()" waitTarget="" waitEvent="myWindowComplete" />

    </setup>

    <body>

	<SetStyle target="myWin" styleName="skinClass" valueExpression="value = WindowedApplicationSkin" waitEvent="updateComplete" />

        <SetProperty target="myWin" propertyName="showStatusBar" value="false" waitEvent="updateComplete" />

        <RunCode code="FlexGlobals.topLevelApplication.myWin.minimize()" waitTarget="myWin" waitEvent="displayStateChange" />

        <SetProperty target="myWin" propertyName="showStatusBar" value="true" waitEvent="updateComplete" />

        <RunCode code="FlexGlobals.topLevelApplication.myWin.restore()" waitTarget="myWin" waitEvent="displayStateChange" />

        <MyCompareBitmap target="myWin"   numColorVariances="10" maxColorVariance="10" url="../properties/baselines/$testID.png"  mac_url="../properties/baselines/$testID_mac.png" />

    </body>

</TestCase>





<TestCase testID="showStatusBar_test8_WindowedApplicationSkin" keywords="[WindowedApplication,showStatusBar]" description="true to false while minimized" >

    <setup>

        <RunCode code="FlexGlobals.topLevelApplication.closeAllChildWindow()"/>

	<RunCode code="FlexGlobals.topLevelApplication.createAWindow()" waitTarget="" waitEvent="myWindowComplete" />

    </setup>

    <body>

	<SetStyle target="myWin" styleName="skinClass" valueExpression="value = WindowedApplicationSkin" waitEvent="updateComplete" />

	<WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>

        <RunCode code="FlexGlobals.topLevelApplication.myWin.minimize()" waitTarget="myWin" waitEvent="displayStateChange" />

        <SetProperty target="myWin" propertyName="showStatusBar" value="false" waitEvent="updateComplete" />

        <WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>

        <RunCode code="FlexGlobals.topLevelApplication.myWin.restore()" waitTarget="myWin" waitEvent="displayStateChange" />

        <WaitForEvent target="stage" eventName="enterFrame" numExpectedEvents="2"/>

        <MyCompareBitmap target="myWin"   numColorVariances="10" maxColorVariance="10" url="../properties/baselines/$testID.png"  mac_url="../properties/baselines/$testID_mac.png" />

    </body>

</TestCase>

	</testCases>

</UnitTester>

