<?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="gumbo/components/ComboBox/Properties/"
    xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:mx="library://ns.adobe.com/flex/mx" 
    xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns="*"
    testSWF="ComboBox_basic_two.mxml">

	<!-- this set of lines form a template that must be in each unit test -->
	<fx:Script>
		<![CDATA[
		public static function init(o:DisplayObject):void
		{
		}
		]]>
	</fx:Script>

	<fx:Metadata>
		<![CDATA[
			[Mixin]
		]]>
	</fx:Metadata>
	<!-- end of set of lines that must be in each unit test -->
	
	<fx:Script>
		<![CDATA[
			{
				import mx.core.FlexGlobals;
			}
		]]>
	</fx:Script>	

	<testCases>
		
		<TestCase testID="ComboBox_Properties_toolTip" keywords="[ComboBox, Property, toolTip]" description="Test toolTip on ComboBox">
			<setup>
				<ResetComponent target="myCB1" className="comps.Custom_CB1" waitEvent="updateComplete" waitTarget="myCB1"/>				
				<SetProperty target="myCB1" propertyName="toolTip" value="I am the toolTip"/>
			</setup>
			<body>
				<DispatchMouseEvent type="mouseOver" target="myCB1" localX="100" localY="10" waitEvent="toolTipShown" waitTarget="myCB1"/>
				<CompareBitmap target="focusBox" url="../Properties/Baselines/$testID.png" numColorVariances="18" ignoreMaxColorVariance="true"/>
			</body>
		</TestCase>			
		
		<TestCase testID="ComboBox_Properties_errorString" keywords="[ComboBox, Property, errorString]" description="Test errorString on ComboBox">
			<setup>
				<ResetComponent target="myCB1" className="comps.Custom_CB1" waitEvent="updateComplete" waitTarget="myCB1"/>				
				<SetProperty target="myCB1" propertyName="errorString" value="WRONG!!!!"/>
				<Pause timeout="50"/>
			</setup>
			<body>
				<CompareBitmap target="focusBox" url="../Properties/Baselines/$testID_1.png" numColorVariances="18" ignoreMaxColorVariance="true"/>
				<DispatchMouseEvent type="mouseOver" target="myCB1" localX="100" localY="10" waitEvent="toolTipShown" waitTarget="myCB1"/>
				<CompareBitmap target="focusBox" url="../Properties/Baselines/$testID_2.png" numColorVariances="18" ignoreMaxColorVariance="true"/>
			</body>
		</TestCase>				
		
		<TestCase testID="ComboBox_Properties_errorString2" keywords="[ComboBox, Property, errorString]" description="Test errorString on ComboBox">
			<setup>
				<ResetComponent target="myCB1" className="comps.Custom_CB1" waitEvent="updateComplete" waitTarget="myCB1"/>	
				<SetProperty target="myCB1" propertyName="toolTip" value="I am the toolTip"/>
				<SetProperty target="myCB1" propertyName="errorString" value="WRONG!!!!"/>
				<Pause timeout="50"/>
			</setup>
			<body>
				<CompareBitmap target="focusBox" url="../Properties/Baselines/$testID_1.png" numColorVariances="18" ignoreMaxColorVariance="true"/>
				<SetProperty target="myCB1" propertyName="errorString" value=""/>
				<DispatchMouseEvent type="mouseOver" target="myCB1" localX="100" localY="10" waitEvent="toolTipShown" waitTarget="myCB1"/>
				<CompareBitmap target="focusBox" url="../Properties/Baselines/$testID_2.png" numColorVariances="18" ignoreMaxColorVariance="true"/>
			</body>
		</TestCase>				
				
		
	</testCases>
</UnitTester>