<?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="mobile/components/ButtonBar/methods/"  
    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:m="http://ns.adobe.com/mxml/2009" 
    xmlns="*" 
    testSWF="ButtonBarApp1.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 Assets.*;
        import spark.components.*;
        import mx.core.FlexGlobals;

	]]>
	</fx:Script>

<testCases>

<!--
==============================================================================
private function defaultButtonBarItemRendererFunction(data:Object):IFactory
For these tests, custom skins are used.
- firstButton is an FxCheckBox.
- middleButton is an FxToggleButton.
- lastButton is an FxRadioButton.
==============================================================================
-->

<TestCase testID="customSkinSanityCheck" keywords="[ButtonBar,defaultButtonBarItemRendererFunction]" description="Make sure this custom skin concept looks right." >
    <setup>
        <ResetComponent target="bb1" className="spark.components::ButtonBar" waitEvent="updateComplete" />
        <RunCode code="FlexGlobals.topLevelApplication.setDataProvider(FlexGlobals.topLevelApplication.bb1, 1)" waitTarget="bb1" waitEvent="updateComplete" />
        <SetStyle target="bb1" styleName="skinClass" valueExpression="value=CustomSkinClass_Mixed" waitEvent="updateComplete" />
        <SetStyle target="bb1" styleName="fontLookup" value="embeddedCFF" />
        <SetProperty target="bb1" propertyName="height" value="100" />
        <SetProperty target="bb1" propertyName="width" value="300" waitEvent="updateComplete" />
    </setup>
    <body>
        <CompareBitmap url="../methods/baselines" target="bb1" >
		<ConditionalValue deviceDensity="240" os="android"  />        
		<ConditionalValue deviceDensity="160" os="win"  />
		<ConditionalValue deviceDensity="320" os="win"  />

							<ConditionalValue deviceDensity="320" os="ios" />
							<ConditionalValue deviceDensity="160" os="qnx" />
        </CompareBitmap>
    </body>
</TestCase>

<TestCase testID="defaultButtonBarItemRendererFunction_test1" keywords="[ButtonBar,defaultButtonBarItemRendererFunction]" description="The skin has no firstButton.  Add one item." >
    <setup>
        <ResetComponent target="bb1" className="spark.components::ButtonBar" waitEvent="updateComplete" />
        <RunCode code="FlexGlobals.topLevelApplication.setDataProvider(FlexGlobals.topLevelApplication.bb1, 2)" waitTarget="bb1" waitEvent="updateComplete" />
    </setup>
    <body>
        <SetStyle target="bb1" styleName="skinClass" valueExpression="value=CustomSkinClass_MiddleLast" waitEvent="updateComplete" />
        <AssertPropertyValue target="bb1.skin.dataGroup" propertyName="numChildren" value="1" />
        <CompareBitmap url="../methods/baselines" target="bb1" >
		<ConditionalValue deviceDensity="240" os="android"  />        
		<ConditionalValue deviceDensity="160" os="win"  />
		<ConditionalValue deviceDensity="320" os="win"  />
							<ConditionalValue deviceDensity="320" os="ios" />
							<ConditionalValue deviceDensity="160" os="qnx" />
        </CompareBitmap>
    </body>
</TestCase>

<TestCase testID="defaultButtonBarItemRendererFunction_test2" keywords="[ButtonBar,defaultButtonBarItemRendererFunction]" description="The skin has no firstButton.  Add two items." >
    <setup>
        <ResetComponent target="bb1" className="spark.components::ButtonBar" waitEvent="updateComplete" />
        <RunCode code="FlexGlobals.topLevelApplication.setDataProvider(FlexGlobals.topLevelApplication.bb1, 3)" waitTarget="bb1" waitEvent="updateComplete" />
    </setup>
    <body>
        <SetStyle target="bb1" styleName="skinClass" valueExpression="value=CustomSkinClass_MiddleLast" waitEvent="updateComplete" />
        <AssertPropertyValue target="bb1.skin.dataGroup" propertyName="numChildren" value="2" />
    </body>
</TestCase>

<TestCase testID="defaultButtonBarItemRendererFunction_test3" keywords="[ButtonBar,defaultButtonBarItemRendererFunction]" description="The skin has no lastButton.  Add one item." >
    <setup>
        <ResetComponent target="bb1" className="spark.components::ButtonBar" waitEvent="updateComplete" />
        <RunCode code="FlexGlobals.topLevelApplication.setDataProvider(FlexGlobals.topLevelApplication.bb1, 2)" waitTarget="bb1" waitEvent="updateComplete" />
    </setup>
    <body>
        <SetStyle target="bb1" styleName="skinClass" valueExpression="value=CustomSkinClass_FirstMiddle" waitEvent="updateComplete" />
        <AssertPropertyValue target="bb1.skin.dataGroup" propertyName="numChildren" value="1" />
        <CompareBitmap url="../methods/baselines" target="bb1" >
		<ConditionalValue deviceDensity="240" os="android"  />        
		<ConditionalValue deviceDensity="160" os="win"  />
		<ConditionalValue deviceDensity="320" os="win"  />
							<ConditionalValue deviceDensity="320" os="ios" />
							<ConditionalValue deviceDensity="160" os="qnx" />
        </CompareBitmap>
    </body>
</TestCase>

<TestCase testID="defaultButtonBarItemRendererFunction_test4" keywords="[ButtonBar,defaultButtonBarItemRendererFunction]" description="The skin has no lastButton.  Add two items." >
    <setup>
        <ResetComponent target="bb1" className="spark.components::ButtonBar" waitEvent="updateComplete" />
        <RunCode code="FlexGlobals.topLevelApplication.setDataProvider(FlexGlobals.topLevelApplication.bb1, 3)" waitTarget="bb1" waitEvent="updateComplete" />
    </setup>
    <body>
        <SetStyle target="bb1" styleName="skinClass" valueExpression="value=CustomSkinClass_FirstMiddle" waitEvent="updateComplete" />
        <AssertPropertyValue target="bb1.skin.dataGroup" propertyName="numChildren" value="2" />
    </body>
</TestCase>

<TestCase testID="defaultButtonBarItemRendererFunction_test5" keywords="[ButtonBar,defaultButtonBarItemRendererFunction]" description="The skin has no lastButton.  Add three items." >
    <setup>
        <ResetComponent target="bb1" className="spark.components::ButtonBar" waitEvent="updateComplete" />
        <RunCode code="FlexGlobals.topLevelApplication.setDataProvider(FlexGlobals.topLevelApplication.bb1, 1)" waitTarget="bb1" waitEvent="updateComplete" />
    </setup>
    <body>
        <SetStyle target="bb1" styleName="skinClass" valueExpression="value=CustomSkinClass_FirstMiddle" waitEvent="updateComplete" />
        <AssertPropertyValue target="bb1.skin.dataGroup" propertyName="numChildren" value="3" />
    </body>
</TestCase>

<TestCase testID="defaultButtonBarItemRendererFunction_test6" keywords="[ButtonBar,defaultButtonBarItemRendererFunction]" description="The skin has no firstButton or lastButton.  Add one item." >
    <setup>
        <ResetComponent target="bb1" className="spark.components::ButtonBar" waitEvent="updateComplete" />
        <RunCode code="FlexGlobals.topLevelApplication.setDataProvider(application.bb1, 2)" waitTarget="bb1" waitEvent="updateComplete" />
    </setup>
    <body>
        <SetStyle target="bb1" styleName="skinClass" valueExpression="value=CustomSkinClass_MiddleOnly" waitEvent="updateComplete" />
        <AssertPropertyValue target="bb1.skin.dataGroup" propertyName="numChildren" value="1" />
    </body>
</TestCase>

<TestCase testID="defaultButtonBarItemRendererFunction_test7" keywords="[ButtonBar,defaultButtonBarItemRendererFunction]" description="The skin has no firstButton or lastButton.  Add two items." >
    <setup>
        <ResetComponent target="bb1" className="spark.components::ButtonBar" waitEvent="updateComplete" />
        <RunCode code="application.setDataProvider(application.bb1, 3)" waitTarget="bb1" waitEvent="updateComplete" />
    </setup>
    <body>
        <SetStyle target="bb1" styleName="skinClass" valueExpression="value=CustomSkinClass_MiddleOnly" waitEvent="updateComplete" />
        <AssertPropertyValue target="bb1.skin.dataGroup" propertyName="numChildren" value="2" />
    </body>
</TestCase>

<TestCase testID="defaultButtonBarItemRendererFunction_test8" keywords="[ButtonBar,defaultButtonBarItemRendererFunction]" description="The skin has no firstButton or lastButton.  Add three items." >
    <setup>
        <ResetComponent target="bb1" className="spark.components::ButtonBar" waitEvent="updateComplete" />
        <RunCode code="FlexGlobals.topLevelApplication.setDataProvider(FlexGlobals.topLevelApplication.bb1, 1)" waitTarget="bb1" waitEvent="updateComplete" />
    </setup>
    <body>
        <SetStyle target="bb1" styleName="skinClass" valueExpression="value=CustomSkinClass_MiddleOnly" waitEvent="updateComplete" />
        <AssertPropertyValue target="bb1.skin.dataGroup" propertyName="numChildren" value="3" />
    </body>
</TestCase>

</testCases>
</UnitTester>
