<?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 
    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="*" 
    testDir="mobile/components/CheckBox/methods/"
    testSWF="MobileCheckBoxMain.mxml">
    
    <fx:Script><![CDATA[ public static function init(o:DisplayObject):void { } ]]></fx:Script>
    <fx:Metadata><![CDATA[ [Mixin] ]]></fx:Metadata>
    
    <testCases>


<TestCase testID="Mobile_CheckBox_method_getStyle" keywords="[Mobile, CheckBox, getStyle]" description="Test getStyle method on checkbox">
	<setup>
		<ResetComponent target="styleComp" className="comps.StyleComp" waitEvent="updateComplete" />
		<SetProperty target="styleComp.cb1" propertyName="label" value="Test getStyle" waitEvent="updateComplete" />
		<SetStyle target="styleComp.cb1" styleName="color" value="0xff0000" waitEvent="updateComplete" />
		<SetStyle target="styleComp.cb1" styleName="fontStyle" value="italic" waitEvent="updateComplete" />
		<SetStyle target="styleComp.cb1" styleName="fontWeight" value="bold" waitEvent="updateComplete" />
		<SetStyle target="styleComp.cb1" styleName="iconPlacement" value="right" waitEvent="updateComplete" />
	</setup>
	<body>
		<AssertMethodValue method="value=application.styleComp.cb1.getStyle('color');" value="0xff0000" />
		<AssertMethodValue method="value=application.styleComp.cb1.getStyle('fontStyle');" value="italic" />
		<AssertMethodValue method="value=application.styleComp.cb1.getStyle('fontWeight');" value="bold" />
		<AssertMethodValue method="value=application.styleComp.cb1.getStyle('iconPlacement');" value="right" />
	</body>
</TestCase>

<TestCase testID="Mobile_CheckBox_method_clearStyle_iconPlacement" keywords="[Mobile, CheckBox, clearStyle]" description="Test clearStyle method on CheckBox">
	<setup>
		<ResetComponent target="styleComp" className="comps.StyleComp" waitEvent="updateComplete" />
	</setup>
	<body>
		<SetProperty target="styleComp.cb1" propertyName="label" value="Test clearStyle" waitEvent="updateComplete" />
		<SetStyle target="styleComp.cb1" styleName="iconPlacement" value="top" waitEvent="updateComplete" />
		<AssertStyleValue target="styleComp.cb1" styleName="iconPlacement" value="top" />
		<RunCode code="application.styleComp.cb1.clearStyle('iconPlacement');" waitEvent="updateComplete" waitTarget="styleComp.cb1"/>
		<CompareBitmap url="../methods/baselines" target="styleComp.cb1" >
			<ConditionalValue deviceDensity="160" os="win" />
			<ConditionalValue deviceDensity="240" os="android" />
			<ConditionalValue deviceDensity="320" os="win" />
							<ConditionalValue deviceDensity="320" os="ios" />
							<ConditionalValue deviceDensity="160" os="qnx" />
		</CompareBitmap>
	</body>
</TestCase>

<TestCase testID="Mobile_CheckBox_clearStyle_textStyle" keywords="[Mobile, CheckBox, clearStyle]" description="Test clearStyle on text styles in checkbox">
	<setup>
		<ResetComponent target="styleComp" className="comps.StyleComp" waitEvent="updateComplete" />
	</setup>
	<body>
		<SetProperty target="styleComp.cb1" propertyName="label" value="Test clearStyle" waitEvent="updateComplete" />
		<SetStyle target="styleComp.cb1" styleName="color" value="0xff0000" waitEvent="updateComplete" />
		<SetStyle target="styleComp.cb1" styleName="fontSize" value="28" waitEvent="updateComplete" />
		<SetStyle target="styleComp.cb1" styleName="textDecoration" value="underline" waitEvent="updateComplete" />
		<RunCode code="application.styleComp.cb1.clearStyle('color');" waitEvent="updateComplete" waitTarget="styleComp.cb1" />
		<RunCode code="application.styleComp.cb1.clearStyle('fontSize');"  waitEvent="updateComplete" waitTarget="styleComp.cb1"/>
		<RunCode code="value=application.styleComp.cb1.clearStyle('textDecoration');" waitEvent="updateComplete" waitTarget="styleComp.cb1"/>
		<CompareBitmap url="../methods/baselines" target="styleComp.cb1" >
			<ConditionalValue deviceDensity="160" os="win" />
			<ConditionalValue deviceDensity="240" os="android" />
			<ConditionalValue deviceDensity="320" os="win" />
							<ConditionalValue deviceDensity="320" os="ios" />
							<ConditionalValue deviceDensity="160" os="qnx" />
		</CompareBitmap>
	</body>
</TestCase>

 

    </testCases>
</UnitTester>
