<UnitTester testDir="components/Charts/HLOC/Properties/" xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" testSWF="GenericHLOC.mxml">

	<mx:Script>
	<![CDATA[
	public static function init(o:DisplayObject):void
	{
	}	

 import mx.collections.ArrayCollection;

 	  [Bindable]
        private var companyBAC:ArrayCollection = new ArrayCollection( [
            { Date: "25-Jul", open: 18.50,  high: 19, close:18.86, low:18.2},
            { Date: "26-Jul", open: 19.56,  high: 19.98,  close:11.69, low:13.79},                       
            { Date: "27-Jul", open: 20.81,  high: 20.99,  close:20.12, low:19.87}, 
            { Date: "28-Jul", open: 20.70,  high: 21.00,  close:23.84, low:19.87}, 
            { Date: "29-Jul", open: 21.7,  high: 21.79, close:15.6, low:13.79}, 
            { Date: "1-Aug", open: 22.45,  high: 22.65, close:21.95, low:20.87 },
            { Date: "2-Aug", open: 22.56,  high: 22.6, close:12.98, low:13.79},
            { Date: "3-Aug", open: 22.42,  high: 22.70, close:23.63, low:15.67},
            { Date: "4-Aug", open: 21.67,  high: 22.82, close:26.34, low:20},
            { Date: "5-Aug", open: 22.44,  high: 22.85, close:16.31, low:13.79} ]);

	]]>
	</mx:Script>
	<mx:Metadata>
	<![CDATA[
		[Mixin]
	]]>
	</mx:Metadata>	

	<mx:Script>
	<![CDATA[
	import mx.charts.series.*;
	import mx.charts.series.items.*;
	import mx.charts.chartClasses.Series;
	import mx.charts.renderers.*;
	import mx.charts.*;
	import mx.core.ClassFactory;
	import mx.graphics.*;
	import mx.controls.Alert;
	import mx.controls.Button;
	
	
	 public function myParseFunction(s:String):Date 
	 { 
		var a:Array = s.split(",");
		var newDate:Date = new Date(a[0],a[1]-1,a[2]);
		return newDate;
	 }
	        
	 public function setDisabledDays(disabledDaysType:String): void
	 {
		var myDateTimeAxis:DateTimeAxis;
		application.comp.showDataTips = true;		
		myDateTimeAxis = application.comp.horizontalAxis as DateTimeAxis;
		myDateTimeAxis.dataUnits="days";
		myDateTimeAxis.labelUnits="days";
		myDateTimeAxis.parseFunction=myParseFunction;
		myDateTimeAxis.displayLocalTime=true;
		
		switch(disabledDaysType)
		{
			case "ALL_DAYS_DISABLED": 				
				myDateTimeAxis.disabledDays = [0,1,2,3,4,5,6];				
				break;
			case "VALID_DISABLED_DAYS":
				myDateTimeAxis.disabledDays = [4,0];
				break;
			case "NULL_DISABLED_DAYS":
				myDateTimeAxis.disabledDays = [];
				break;
			case "REPEATED_DISABLED_DAYS":
				myDateTimeAxis.disabledDays = [1,1,5,5];
				break;
			case "OUT_OF_BOUNDS_DISABLED_DAYS":
				myDateTimeAxis.disabledDays = [-1, 9];         			
				break;
			case "INVALID_DISABLED_DAYS":
				var disDaysobj:Object = {day:"3", day2:"4"};
				myDateTimeAxis.disabledDays = ["a","disDaysobj"];
				break;
			case "DISABLED_DAYS_NOT_SET":
				break;  
		}        
	 }
	
	 public function setDisabledRange(disabledRangesType:String): void
	 {
		var myDateTimeAxis:DateTimeAxis;
		application.comp.showDataTips = true;		
		myDateTimeAxis = application.comp.horizontalAxis as DateTimeAxis;
		myDateTimeAxis.dataUnits="days";
		myDateTimeAxis.labelUnits="days";
		myDateTimeAxis.parseFunction=myParseFunction;
		myDateTimeAxis.displayLocalTime=true;
		
		switch(disabledRangesType)
         	{
         		case "NULL_DISABLED_RANGE":
         			myDateTimeAxis.disabledRanges = [];
         			break;
         		case "REPEATED_DISABLED_RANGE":
         			myDateTimeAxis.disabledRanges = [new Date(2006, 6, 27),new Date(2006, 6, 27)];
         			break;
         		case "OUT_OF_BOUNDS_DISABLED_RANGES":
         			myDateTimeAxis.disabledRanges = [new Date(2006, 7, 6)];
         			break;
         		case "INVALID_DISABLED_RANGES":
         			var disDaysobj:Object = {day:"3", day2:"4"};
         			myDateTimeAxis.disabledRanges = [new Date("a"),{rangeStart:new Date("disDaysobj")}];
         			break;
         		case "DISABLED_RANGE_NOT_SET":
         			break;  
			case "DISABLED_RANGE_ONLY_DATE_OBJECTS":
				myDateTimeAxis.disabledRanges = [new Date(2006, 6, 30)];
				break;
			case "DISABLED_RANGE_ONLY_RANGE_START":
				myDateTimeAxis.disabledRanges = [{rangeStart:new Date(2006, 6, 29)}];
				break;
			case "DISABLED_RANGE_ONLY_RANGE_END":
				myDateTimeAxis.disabledRanges = [{rangeEnd:new Date(2006, 6, 29)}];
				break;
			case "DISABLED_RANGE_WITH_RANGE_START_AND_END":
				myDateTimeAxis.disabledRanges = [{rangeStart: new Date(2006,6,29), rangeEnd: new Date(2006,6,31)}]; 
				break;
			case "DISABLED_RANGE_MULTIPLE_START_AND_END":
				myDateTimeAxis.disabledRanges = [{rangeStart:new Date(2006, 6, 28), rangeEnd:new Date(2006, 6, 30)}, {rangeStart:new Date(2006, 7, 1)}]
				break;
			case "DISABLED_RANGE_AND_DAYS":
				myDateTimeAxis.disabledDays = [0,6]
				myDateTimeAxis.disabledRanges = [{rangeStart:new Date(2006, 6, 31)}]
				break;	
			case "DISABLED_RANGE_BEFORE_DATAPOINT":
				myDateTimeAxis.disabledRanges = [new Date(2006, 6, 25)]
				break;
			case "DISABLED_RANGE_AFTER_START_DATE":
				myDateTimeAxis.disabledRanges = [new Date(2006, 6, 28)]
				break;
			case "DISABLED_RANGE_BEFORE_END_DATE":
				myDateTimeAxis.disabledRanges = [new Date(2006, 7, 4)]
				break;
			case "DISABLED_RANGE_BEFORE_END_DATE":
				myDateTimeAxis.disabledRanges = [new Date(2006, 7, 2)]
				break;
			
         	}         
	 }

	public function createLegend():void
	{
		var legend1:Legend = new Legend();		
            legend1.dataProvider = application.comp;		
		application.addChildAt(legend1,0);
	}

	
	
	]]>
	
	</mx:Script>
	
	<testCases>

		<TestCase  testID="HLOCSeries_change_Dataprovider_SeriesAndAxis_Level" keywords="[HLOCChart, change Dataprovider, Series level, Axis Level]">
			<setup>
				<ResetComponent target="comp" className="mx.charts::HLOCChart" />
				<RunCode code="AllSeriesData.setDefault('hloc', application.comp)" />
				<SetProperty target="comp" propertyName="horizontalAxis" valueExpression="value=new CategoryAxis()" waitEvent="updateComplete" />
				<SetProperty target="comp.horizontalAxis" propertyName="categoryField" value="open" />
				<SetProperty target="comp" propertyName="dataProvider" valueExpression="value=new DataGraphicsData().getDataAsXMLList()" waitEvent="updateComplete" />
				<SetProperty target="comp.series.0" propertyName="dataProvider" value="{companyBAC}" waitTarget="comp"  waitEvent="updateComplete" /> 				
				<SetProperty target="comp.horizontalAxis" propertyName="dataProvider" value="{companyBAC}" waitTarget="comp" waitEvent="updateComplete" />
			
			</setup>
			<body>
				<CompareBitmap target=""   url="../Properties/Baselines/HLOCSeries_change_Dataprovider_SeriesAndAxis_Level.png" timeout="5000"/>
			</body> 
		</TestCase>

    		<TestCase  testID="HLOCSeries_selectionMode_Single" keywords="[HLOCChart, Selection mode, single]">
			<setup>
				<ResetComponent target="comp" className="mx.charts::HLOCChart" />
				<SetProperty target="comp" propertyName="dataProvider" value="{companyBAC}" waitEvent="updateComplete" /> 
				<RunCode code="AllSeriesData.setDefault('hloc', application.comp)" waitEvent="updateComplete" waitTarget="comp.series.0" />
			
				<SetProperty target="comp" waitEvent="updateComplete" waitTarget="comp" propertyName="selectionMode" value="single" />
				<SetProperty target="comp.series.0" waitTarget="comp.series.0" propertyName="selectable" value="true" /> 
				<SetProperty target="comp.series.0" waitEvent="updateComplete" waitTarget="comp.series.0" propertyName="selectedIndex" value="4"  />
			</setup>
			<body>
				<CompareBitmap target="comp"   url="../Properties/Baselines/HLOCSeries_selectionMode_Single.png"  timeout="5000"/>
			</body> 
		</TestCase>

		<TestCase  testID="HLOCSeries_selectionMode_None" keywords="[HLOCChart, Selection mode, none]">
			<setup>
				<ResetComponent target="comp" className="mx.charts::HLOCChart" />
				<SetProperty target="comp" propertyName="dataProvider" value="{companyBAC}" waitEvent="updateComplete" />
				<RunCode code="AllSeriesData.setDefault('hloc', application.comp)" waitEvent="updateComplete" waitTarget="comp.series.0" />
			
				<SetProperty target="comp" waitTarget="comp" propertyName="selectionMode" value="none" />				
				<SetProperty target="comp.series.0" waitTarget="comp.series.0" propertyName="selectable" value="true" /> 
				<SetProperty target="comp.series.0" waitEvent="updateComplete" waitTarget="comp.series.0" propertyName="selectedIndex" value="3" />

			</setup>
			<body>
				<CompareBitmap target="comp"   url="../Properties/Baselines/HLOCSeries_selectionMode_None.png"  timeout="5000"/> 
			</body> 
		</TestCase> 

		<TestCase  testID="HLOCSeries_selectionMode_Multiple" keywords="[HLOCChart, Selection mode, multiple]">
			<setup>
				<ResetComponent target="comp" className="mx.charts::HLOCChart" />
				<SetProperty target="comp" propertyName="dataProvider" value="{companyBAC}" waitEvent="updateComplete" />
				<RunCode code="AllSeriesData.setDefault('hloc', application.comp)" waitEvent="updateComplete" waitTarget="comp.series.0" />
			
				<SetProperty target="comp" waitEvent="updateComplete" waitTarget="comp" propertyName="selectionMode" value="multiple" />
				<SetProperty target="comp.series.0" waitTarget="comp.series.0" propertyName="selectable" value="true" /> 
				<SetProperty target="comp.series.0" waitEvent="updateComplete" waitTarget="comp.series.0" propertyName="selectedIndices" value="[0,1,2]" />
			</setup>
			<body>
				<CompareBitmap target="comp"   url="../Properties/Baselines/HLOCSeries_selectionMode_Multiple.png"  timeout="5000"/>
			</body> 
		</TestCase>

	<TestCase  testID="HLOCSeries_ChangeMinAndMax_DateTimeAxis" keywords="[HLOCChart, minimum, maximum, DateTimeAxis]">
		<setup>
			<ResetComponent target="comp" className="mx.charts::HLOCChart" />
			<SetProperty target="comp" propertyName="dataProvider" valueExpression="value=new DisabledDaysStockData().getDataAsXMLList()" waitEvent="updateComplete" />
			<SetProperty target="comp" propertyName="horizontalAxis" valueExpression="value=new DateTimeAxis()" waitEvent="updateComplete" />
			<RunCode code="AllSeriesDisabledDaysData.setDefault('hloc', application.comp)" waitTarget="comp.series.0" />
			<RunCode code="setDisabledDays('NULL_DISABLED_DAYS')" waitEvent="updateComplete" waitTarget="comp" />			
			
     			<SetProperty target="comp.horizontalAxis" propertyName="minimum" valueExpression="value=new Date(2006, 6, 29)"  waitTarget="comp.horizontalAxis"  /> 
		  	<Pause timeout="20" />
                  <SetProperty target="comp.horizontalAxis" propertyName="maximum" valueExpression="value=new Date(2006, 7, 2)"  waitTarget="comp.horizontalAxis"  /> 
                  <Pause timeout="20" />
            </setup>
		<body>
			<CompareBitmap target="comp"   url="../Properties/Baselines/HLOCSeries_ChangeMinAndMax_DateTimeAxis.png" />
		</body> 
	</TestCase>  


	<TestCase  testID="HLOCSeries_ChangeMinAndMax_LinearAxis" keywords="[HLOCChart, minimum, maximum, LinearAxis]">
			<setup>
				<ResetComponent target="comp" className="mx.charts::HLOCChart" />
				<SetProperty target="comp" propertyName="dataProvider" valueExpression="value=new MultipleAxesData().getDataAsArray()" waitEvent="updateComplete" />
				<RunCode code="MultipleAxesUtils.axisTest('diffAxisType', application.comp)" waitEvent="updateComplete" waitTarget="comp"/>
		   
				<SetProperty target="comp.verticalAxis" propertyName="minimum" value="15"  waitTarget="comp.verticalAxis"  />
				<Pause timeout="20" />
                        <SetProperty target="comp.verticalAxis" propertyName="maximum" value="30"  waitTarget="comp.verticalAxis"  /> 
				<Pause timeout="20" />
			</setup>
			<body>
				<CompareBitmap target="comp"   url="../Properties/Baselines/HLOCSeries_ChangeMinAndMax_LinearAxis.png" timeout="5000" />
			</body> 
	</TestCase> 

      <TestCase  testID="HLOCSeries_filterData_filterDataValues" keywords="[HLOCChart, minimum, maximum, LinearAxis, filterData, filterDataValues]">
			<setup>
				<ResetComponent target="comp" className="mx.charts::HLOCChart" />
				<SetProperty target="comp" propertyName="dataProvider" valueExpression="value=new MultipleAxesData().getDataAsArray()" waitEvent="updateComplete" />
				<RunCode code="MultipleAxesUtils.axisTest('diffAxisType', application.comp)" waitEvent="updateComplete" waitTarget="comp"/>
			    <Pause timeout="20" />   
				<SetProperty target="comp.verticalAxis" propertyName="minimum" value="15"  waitTarget="comp.verticalAxis"  />
	                <Pause timeout="20" /> 
                        <SetProperty target="comp.verticalAxis" propertyName="maximum" value="30"  waitTarget="comp.verticalAxis"  /> 
			   <Pause timeout="20" />
				<SetProperty target="comp.series.0" propertyName="filterData" value="false"  waitTarget="comp.verticalAxis"  /> 
			   <Pause timeout="20" />
				<SetProperty target="comp.series.0" propertyName="filterDataValues" value="outsideRange"  waitTarget="comp.verticalAxis"  /> 
			   <Pause timeout="20" />
				<SetProperty target="comp.series.0" propertyName="filterDataValues" value="nulls"  waitTarget="comp.verticalAxis"  /> 
			   <Pause timeout="20" />	
			</setup>
			<body>
				<CompareBitmap target="comp"   url="../Properties/Baselines/HLOCSeries_filterData_filterDataValues.png" timeout="5000" />
			</body> 
	</TestCase>

		<TestCase  testID="HLOCSeries_legend" keywords="[HLOCChart, Legend, multiple series]">
			<setup>
				<ResetComponent target="comp" className="mx.charts::HLOCChart" />
				<RunCode code="AllSeriesData.setDefault('hloc', application.comp)" />
				<SetProperty target="comp" propertyName="dataProvider" valueExpression="value=new DataGraphicsData().getDataAsXMLList()" waitEvent="updateComplete" />

				<SetProperty target="comp.series.0" propertyName="displayName" value="Open" waitTarget="comp.series.0" />
			
				<Pause timeout="20"/>
				<RunCode code="createLegend()" waitEvent="updateComplete" />
				<Pause timeout="20"/>
			</setup>
			<body>
				<CompareBitmap target=""   url="../Properties/Baselines/HLOCSeries_legend.png" />
			</body> 
		</TestCase> 

		<TestCase  testID="HLOCSeries_ChangeDataProvider_AtChartLevel" keywords="[HLOCChart, Dataprovider, chartLevel]">
			<setup>
				<ResetComponent target="comp" className="mx.charts::HLOCChart" />
				<RunCode code="AllSeriesData.setDefault('hloc', application.comp)" />
				<SetProperty target="comp" propertyName="dataProvider" valueExpression="value=new DataGraphicsData().getDataAsXMLList()" waitEvent="updateComplete" />
		
				<Pause timeout="20"/>
				<SetProperty target="comp" propertyName="dataProvider" value="{companyBAC}" waitEvent="updateComplete" /> 
				<Pause timeout="20"/>

			</setup>
			<body>
				<CompareBitmap target="comp"   url="../Properties/Baselines/HLOCSeries_ChangeDataProvider_AtChartLevel.png"  />
			</body>
	  	</TestCase> 


		<TestCase  testID="HLOCSeries_valid_horizontal_vertical_axis" keywords="[HLOCChart,valid, horizontal and vertical Axis]">
			<setup>
				<ResetComponent target="comp" className="mx.charts::HLOCChart" />
				<SetProperty target="comp" propertyName="dataProvider" valueExpression="value=new MultipleAxesData().getDataAsArray()" waitEvent="updateComplete" />
				<RunCode code="MultipleAxesUtils.axisTest('validHorVerAxis', application.comp)" waitEvent="updateComplete" waitTarget="comp"/>
			</setup>
			<body>
				<CompareBitmap target="comp"   url="../Properties/Baselines/HLOCSeries_valid_horizontal_vertical_axis.png" />
			</body> 
		</TestCase>
		
		<TestCase  testID="HLOCSeries_Canvas_MultipleAxes_AxisSet_Background" keywords="[HLOCChart,MultipleAxes, Canvas axis set]">
			<setup>
				<ResetComponent target="comp" className="mx.charts::HLOCChart" />
				<SetProperty target="comp" propertyName="dataProvider" valueExpression="value=new MultipleAxesData().getDataAsArray()" waitEvent="updateComplete" />
				<RunCode code="DataGraphicsUtils.CanvasOnMultipleAxes('axisSet', application.comp, 'background')" waitEvent="updateComplete" waitTarget="comp"/> 

			</setup>
			<body>
				<CompareBitmap target="comp"   url="../Properties/Baselines/HLOCSeries_Canvas_MultipleAxes_AxisSet_Background.png"  />
			</body>
		</TestCase>
		<TestCase  testID="HLOCSeries_multipleAxes_disabledDays" keywords="[HLOCChart,multipleAxes, disabled days]">
			<setup>
				<ResetComponent target="comp" className="mx.charts::HLOCChart" />
				<SetProperty target="comp" propertyName="dataProvider" valueExpression="value=new MultipleAxesData().getDataAsArray()" waitEvent="updateComplete" />
				<RunCode code="MultipleAxesUtils.axisTest('disabledDays', application.comp)" waitEvent="updateComplete" waitTarget="comp"/>
			</setup>
			<body>
				<CompareBitmap target="comp"   url="../Properties/Baselines/HLOCSeries_multipleAxes_disabledDays.png" />
			</body> 
		</TestCase>
		<TestCase  testID="HLOCSeries_axisRenderer_withPlacement" keywords="[HLOCChart,axis Renderers, with Placement specified]">
			<setup>
				<ResetComponent target="comp" className="mx.charts::HLOCChart" />
				<SetProperty target="comp" propertyName="dataProvider" valueExpression="value=new MultipleAxesData().getDataAsArray()" waitEvent="updateComplete" />
				<RunCode code="MultipleAxesUtils.AxisRenderers('axisRendererWithPlacement', application.comp)" waitEvent="updateComplete" waitTarget="comp" />			
			</setup>
			<body>
				<CompareBitmap target="comp"   url="../Properties/Baselines/HLOCSeries_axisRenderer_withPlacement.png" />
			</body> 
		</TestCase>
		<TestCase  testID="HLOCSeries_MultipleCanvas_MultipleAxes_Annotation" keywords="[HLOCChart, MultipleAxes, Multiple canvas]">
			<setup>
				<ResetComponent target="comp" className="mx.charts::HLOCChart" />
				<SetProperty target="comp" propertyName="dataProvider" valueExpression="value=new MultipleAxesData().getDataAsArray()" waitEvent="updateComplete" />
				<RunCode code="DataGraphicsUtils.CanvasOnMultipleAxes('multipleCanvas', application.comp, 'annotation')" waitEvent="updateComplete" waitTarget="comp"/> 

			</setup>
			<body>
				<CompareBitmap target="comp"   url="../Properties/Baselines/HLOCSeries_MultipleCanvas_MultipleAxes_Annotation.png"  />
			</body>
		</TestCase>
		<TestCase  testID="HLOCSeries_sameAxis_diffRenderers" keywords="[HLOCChart,same Axis, on different AxisRenderers]">
			<setup>			
				<ResetComponent target="comp" className="mx.charts::HLOCChart" />
				<SetProperty target="comp" propertyName="dataProvider" valueExpression="value=new MultipleAxesData().getDataAsArray()" waitEvent="updateComplete" />
				<RunCode code="MultipleAxesUtils.axisAndRendererTests('sameAxisOnDiffRenderers', application.comp)" waitEvent="updateComplete" waitTarget="comp"/>
			</setup>
			<body>
				<CompareBitmap target="comp"   url="../Properties/Baselines/HLOCSeries_sameAxis_diffRenderers.png" />
			</body> 
		</TestCase>
		<TestCase  testID="HLOCSeries_sameRenderer_withDiffAxis" keywords="[HLOCChart,same Renderer, different Axis]">
			<setup>		
				<ResetComponent target="comp" className="mx.charts::HLOCChart" />
				<SetProperty target="comp" propertyName="dataProvider" valueExpression="value=new MultipleAxesData().getDataAsArray()" waitEvent="updateComplete" />
				<RunCode code="MultipleAxesUtils.axisAndRendererTests('sameRendererWithDiffAxis', application.comp)" waitEvent="updateComplete" waitTarget="comp"/>
			</setup>
			<body>
				<CompareBitmap target="comp"   url="../Properties/Baselines/HLOCSeries_sameRenderer_withDiffAxis.png" />
			</body> 
		</TestCase>
		<TestCase  testID="HLOCSeries_valid_horizontal_vertical_axis" keywords="[HLOCChart,valid, horizontal and vertical Axis]">
			<setup>
				<ResetComponent target="comp" className="mx.charts::HLOCChart" />
				<SetProperty target="comp" propertyName="dataProvider" valueExpression="value=new MultipleAxesData().getDataAsArray()" waitEvent="updateComplete" />
				<RunCode code="MultipleAxesUtils.axisTest('validHorVerAxis', application.comp)" waitEvent="updateComplete" waitTarget="comp"/>
			</setup>
			<body>
				<CompareBitmap target="comp"   url="../Properties/Baselines/HLOCSeries_valid_horizontal_vertical_axis.png" />
			</body> 
		</TestCase>
		<TestCase  testID="HLOCSeries_axisAtSeriesLevel" keywords="[HLOCChart,axis specified at Series level]">
			<setup>
				<ResetComponent target="comp" className="mx.charts::HLOCChart" />
				<SetProperty target="comp" propertyName="dataProvider" valueExpression="value=new MultipleAxesData().getDataAsArray()" waitEvent="updateComplete" />
				<RunCode code="MultipleAxesUtils.AxisRenderers('axisAtSeries', application.comp)" waitEvent="updateComplete" waitTarget="comp"/>			
			</setup>
			<body>
				<CompareBitmap target="comp"   url="../Properties/Baselines/HLOCSeries_axisAtSeriesLevel.png" />
			</body> 
		</TestCase>


	</testCases>

</UnitTester>
