You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by pi...@apache.org on 2014/10/05 11:05:26 UTC

[15/30] git commit: [flex-tlf] [refs/heads/develop] - Reorganized TLF test applications for using Apache Flex Unit 4.2.0 Changed first 8 tests for Apache Flex Unit Fixed ant build - no test automation yet

Reorganized TLF test applications for using Apache Flex Unit 4.2.0
Changed first 8 tests for Apache Flex Unit
Fixed ant build - no test automation yet


Project: http://git-wip-us.apache.org/repos/asf/flex-tlf/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-tlf/commit/cad064e0
Tree: http://git-wip-us.apache.org/repos/asf/flex-tlf/tree/cad064e0
Diff: http://git-wip-us.apache.org/repos/asf/flex-tlf/diff/cad064e0

Branch: refs/heads/develop
Commit: cad064e085c370193fc8bb27322db65ff266d86f
Parents: 41fc042
Author: piotrz <pi...@gmail.com>
Authored: Wed May 7 23:36:13 2014 +0200
Committer: piotrz <pi...@gmail.com>
Committed: Wed May 7 23:36:13 2014 +0200

----------------------------------------------------------------------
 automation_apps/libs/flexunit-uilistener.swc    |  Bin 0 -> 495744 bytes
 automation_apps/libs/flexunit.swc               |  Bin 0 -> 197571 bytes
 automation_apps/src/UnitTest/RunTests.mxml      |   98 -
 .../src/UnitTest/TestDescriptorRunner.mxml      |  728 +--
 automation_apps/src/VellumUnit.mxml             | 1752 +++---
 automation_core/libs/flexunit.swc               |  Bin 0 -> 197571 bytes
 automation_core/src/AutomationCoreClasses.as    |   30 +-
 .../UnitTest/ExtendedClasses/TestCaseBase.as    |   35 +
 .../ExtendedClasses/TestSuiteExtended.as        |  221 +-
 .../ExtendedClasses/VellumPerformanceCase.as    |   15 +-
 .../UnitTest/ExtendedClasses/VellumTestCase.as  | 1375 ++---
 .../src/UnitTest/Fixtures/FileRepository.as     |    9 +-
 .../src/UnitTest/Fixtures/TestConfig.as         |   23 +-
 .../src/UnitTest/Validation/BoundsChecker.as    |   62 +-
 .../CompositionCompleteEventValidator.as        |   10 +-
 .../UnitTest/Validation/CompositionResults.as   |   22 +-
 .../UnitTest/Validation/DamageEventValidator.as |   10 +-
 .../src/UnitTest/Validation/EventValidator.as   |  103 +-
 .../FlowElementMouseEventValidator.as           |   14 +-
 .../Validation/FlowOperationEventValidator.as   |   10 +-
 .../src/UnitTest/Validation/IntUtil.as          |    4 +-
 .../src/UnitTest/Validation/LineSnapshot.as     |    7 +-
 automation_core/src/UnitTest/Validation/MD5.as  |    6 +-
 .../Validation/SelectionEventValidator.as       |   12 +-
 .../Validation/StatusChangeEventValidator.as    |   10 +-
 .../src/UnitTest/Validation/StringSnapshot.as   |   10 +-
 .../src/UnitTest/Validation/TCMComposition.as   |   35 +-
 .../Validation/UpdateCompleteEventValidator.as  |   10 +-
 .../src/UnitTest/Validation/XMLSnapshot.as      |   16 +-
 automation_tests/libs/flexunit.swc              |  Bin 0 -> 197571 bytes
 automation_tests/src/AllTestsSuite.as           |   45 +
 automation_tests/src/AutomationTestClasses.as   |   12 +-
 automation_tests/src/MinimalTestsSuite.as       |   31 +
 .../UnitTest/Tests/AccessibilityMethodsTest.as  |  931 ++--
 .../src/UnitTest/Tests/AllAttributeTest.as      |    4 +-
 .../src/UnitTest/Tests/AllCharAttributeTest.as  |    4 +-
 .../src/UnitTest/Tests/AllContAttributeTest.as  |    8 +-
 .../src/UnitTest/Tests/AllEventTest.as          | 1447 ++---
 .../src/UnitTest/Tests/AllParaAttributeTest.as  |    4 +-
 .../src/UnitTest/Tests/AttributeTest.as         | 2642 +++++-----
 .../UnitTest/Tests/BoundsAndAlignmentTest.as    | 1348 ++---
 automation_tests/src/UnitTest/Tests/BoxTest.as  | 1347 ++---
 .../src/UnitTest/Tests/CompositionTest.as       |    6 +-
 .../UnitTest/Tests/ContainerAttributeTest.as    |   12 +-
 .../src/UnitTest/Tests/ContainerTypeTest.as     | 3047 +++++------
 .../src/UnitTest/Tests/CrossContainerTest.as    |   16 +-
 .../src/UnitTest/Tests/ElementOperationTests.as |    4 +-
 .../src/UnitTest/Tests/EventOverrideTest.as     |   10 +-
 automation_tests/src/UnitTest/Tests/FETest.as   |  112 +-
 .../src/UnitTest/Tests/FactoryImportTest.as     |    6 +-
 .../src/UnitTest/Tests/FloatTest.as             | 4966 +++++++++---------
 .../src/UnitTest/Tests/FlowModelTest.as         |   24 +-
 .../src/UnitTest/Tests/FontEmbedTest.as         |   12 +-
 .../src/UnitTest/Tests/GeneralFunctionsTest.as  |    6 +-
 .../UnitTest/Tests/HorizontalScrollingTest.as   |   11 +-
 .../src/UnitTest/Tests/ImpliedParagraphTest.as  |    4 +-
 .../src/UnitTest/Tests/ImportAPITest.as         |    4 +-
 .../src/UnitTest/Tests/ImportTest.as            |   18 +-
 .../src/UnitTest/Tests/KeyboardGestureTest.as   |    9 +-
 .../src/UnitTest/Tests/LeadingTest.as           |    4 +-
 automation_tests/src/UnitTest/Tests/LinkTest.as |   34 +-
 automation_tests/src/UnitTest/Tests/ListTest.as |   10 +-
 .../src/UnitTest/Tests/LocaleTests.as           |    4 +-
 .../src/UnitTest/Tests/MXMLCompilationTest.as   |   10 +-
 .../src/UnitTest/Tests/MeasurementGridTest.as   |   15 +-
 .../src/UnitTest/Tests/MeasurementTest.as       |    4 +-
 .../src/UnitTest/Tests/OperationTest.as         | 4751 +++++++++--------
 .../src/UnitTest/Tests/ParagraphTest.as         |    4 +-
 automation_tests/src/UnitTest/Tests/SWFTest.as  |   22 +-
 .../src/UnitTest/Tests/ScrollToRangeTest.as     |    9 +-
 .../src/UnitTest/Tests/ScrollingTest.as         | 1122 ++--
 .../src/UnitTest/Tests/SelectionTest.as         |   13 +-
 .../src/UnitTest/Tests/SimpleTest.as            |   37 +
 .../src/UnitTest/Tests/SpacingTest.as           |   10 +-
 .../src/UnitTest/Tests/StyleTest.as             |   12 +-
 automation_tests/src/UnitTest/Tests/TCYTests.as |   69 +-
 automation_tests/src/UnitTest/Tests/TabTest.as  |    4 +-
 .../src/UnitTest/Tests/TableBackgroundTest.as   |   14 +-
 .../src/UnitTest/Tests/TableTests.as            |   10 +-
 .../UnitTest/Tests/TextContainerManagerTest.as  |   14 +-
 .../src/UnitTest/Tests/TextFlowEditTest.as      |    4 +-
 .../Tests/TextFlowTextLineFactoryTest.as        |    6 +-
 .../src/UnitTest/Tests/TextLineFilterTest.as    |   13 +-
 .../src/UnitTest/Tests/UndoRedoTest.as          |    7 +-
 .../src/UnitTest/Tests/VerticalScrollingTest.as |   11 +-
 .../src/UnitTest/Tests/WritingModeTest.as       |    4 +-
 .../src/perfAppTests/VellumAliceTestCanvas.mxml |   11 +-
 .../src/perfAppTests/VellumTweenTestCanvas.mxml |   10 +-
 build.xml                                       |   16 +-
 test/testFiles/markup/tlf/severalPages.xml      |    6 +-
 testApps/src/Flow.mxml                          |   36 +-
 91 files changed, 13430 insertions(+), 13583 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-tlf/blob/cad064e0/automation_apps/libs/flexunit-uilistener.swc
----------------------------------------------------------------------
diff --git a/automation_apps/libs/flexunit-uilistener.swc b/automation_apps/libs/flexunit-uilistener.swc
new file mode 100644
index 0000000..df5bdd8
Binary files /dev/null and b/automation_apps/libs/flexunit-uilistener.swc differ

http://git-wip-us.apache.org/repos/asf/flex-tlf/blob/cad064e0/automation_apps/libs/flexunit.swc
----------------------------------------------------------------------
diff --git a/automation_apps/libs/flexunit.swc b/automation_apps/libs/flexunit.swc
new file mode 100644
index 0000000..0722885
Binary files /dev/null and b/automation_apps/libs/flexunit.swc differ

http://git-wip-us.apache.org/repos/asf/flex-tlf/blob/cad064e0/automation_apps/src/UnitTest/RunTests.mxml
----------------------------------------------------------------------
diff --git a/automation_apps/src/UnitTest/RunTests.mxml b/automation_apps/src/UnitTest/RunTests.mxml
deleted file mode 100644
index a31c5c2..0000000
--- a/automation_apps/src/UnitTest/RunTests.mxml
+++ /dev/null
@@ -1,98 +0,0 @@
-<?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.
--->
-<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" borderStyle="solid" title="Vellum Unit Tests" fontSize="12" backgroundColor="0xCCCCCC" layout="vertical" color="0x000000">	
-	<mx:Script>
-		<![CDATA[
-
-		import mx.managers.PopUpManager;		
-		import mx.controls.Alert;
-				
-		[Bindable]	
-		public var treeData:XMLList;
-		
-		// These are the functions for the buttons in the dialog.
-		// They are call backs to the main application.
-		public var runTestFunction:Function;
-		public var snapshotTestFunction:Function;
-		public var closeFunction:Function;
-		
-		private var selectAllState:Boolean = false;
-		
-		private function getSelectCount(xmlData:XMLList):Number
-		{
-			var curCount:Number = 0;
-			
-			for each (var f:XML in xmlData) 
-			{
-				if (f.children().length() > 0)
-				{
-					curCount += getSelectCount(f.children());
-				}
-				if ((f.@selected == true) && (f.children().length() == 0))
-					curCount += 1;		
-			}						
-			return curCount;
-		}
-		
-		private function doTestRun():void
-		{
-			if ( getSelectCount(treeData) > 0)
-			{
-				runTestFunction(chk_BeforeAndAfter.selected, int(iterations.text))				
-			}
-			else 
-			{
-				Alert.show("You must have at least one item in the list selected.","No Tests Selected")
-			}			
-		}		
-		
-		private function toggleAll():void
-		{
-			for each (var suite:XML in treeData.children()){
-				suite.parent().@selected = !selectAllState;
-				suite.@selected = !selectAllState;
-			}
-			
-			selectAllState = !selectAllState;
-			
-			tv_Tests.validateDisplayList();
-		}	
-						
-		]]>
-	</mx:Script>
-	<mx:VBox horizontalGap="0">	
-		<mx:Form width="100%" horizontalGap="0">	
-			<mx:VBox backgroundColor="#ffffff" horizontalGap="0" verticalAlign="middle" verticalGap="0">
-				<mx:Tree x="36" y="33" height="350" id="tv_Tests" fontSize="10" itemRenderer="UnitTest.TreeItemRenderer" dataProvider="{treeData}" labelField="@label" color="#000000" width="450"/>
-			</mx:VBox>
-		</mx:Form>
-		<mx:VBox verticalAlign="middle" width="100%" horizontalGap="10">
-			<mx:HBox width="100%" horizontalAlign="center" borderColor="#010101">
-				<mx:CheckBox label="Select All" fontSize="10" id="chk_CheckAll" textAlign="center" width="100" click="toggleAll()" textRollOverColor="#FFFFFF" textSelectedColor="#FFFFFF"/>
-				<mx:CheckBox fontSize="10" label="Perform TCM Composition Comparison" id="chk_BeforeAndAfter" textRollOverColor="#FFFFFF" textSelectedColor="#FFFFFF"/>
-				<mx:TextInput fontSize="10" text="1" id="iterations" width="30"/>
-				<mx:Text fontSize="10" text="Iterations"/>
-			</mx:HBox>
-			<mx:ControlBar horizontalAlign="center" verticalAlign="middle" height="45" width="100%">
-				<mx:Button label="Run Test" fontSize="10" id="cmd_Run" textAlign="center" width="100" click="doTestRun()"/>
-				<mx:Button label="Close" fontSize="10" id="cmd_Close" textAlign="center" width="100" click="closeFunction()"/>
-			</mx:ControlBar>
-		</mx:VBox>	
-	</mx:VBox>
-	
-</mx:Panel>

http://git-wip-us.apache.org/repos/asf/flex-tlf/blob/cad064e0/automation_apps/src/UnitTest/TestDescriptorRunner.mxml
----------------------------------------------------------------------
diff --git a/automation_apps/src/UnitTest/TestDescriptorRunner.mxml b/automation_apps/src/UnitTest/TestDescriptorRunner.mxml
index e50be83..433032d 100644
--- a/automation_apps/src/UnitTest/TestDescriptorRunner.mxml
+++ b/automation_apps/src/UnitTest/TestDescriptorRunner.mxml
@@ -15,706 +15,30 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" 
-		 implements="flexunit.flexui.IFlexWriter" creationComplete="onCreationComplete()" xmlns:geom="flash.geom.*" currentState="StackTraceView">
-	<mx:Script>
+<s:Group xmlns:s="library://ns.adobe.com/flex/spark"
+         xmlns:flexunituirunner="http://www.adobe.com/2009/flexUnitUIRunner" xmlns:mx="library://ns.adobe.com/flex/mx"
+         xmlns:fx="http://ns.adobe.com/mxml/2009">
+    <fx:Script>
 		<![CDATA[
-		
-		import mx.collections.ArrayCollection;
-		
-		import flexunit.framework.TestCase;
-		import flexunit.framework.Test;
-		import flexunit.framework.AssertionFailedError;
-		import flexunit.flexui.TestRunner;
-		import flexunit.flexui.IFlexWriter;
-		
-		import mx.collections.ListCollectionView;
-		
-		import flash.system.*;
-
-		public var beforeTest:Function;
-		public var afterTest:Function; 		
-		
-		public var suiteMetaData:Object;
-		
-		private static const END_OF_TEST_RUN : String = "<endOfTestRun/>";
-		private static const END_OF_TEST_ACK : String ="<endOfTestRunAck/>";
-		
-		private var _totalTests:uint = 0;
-		private var _totalErrors:uint = 0;
-		private var _totalFailures:uint = 0;
-		private var _numTestsRun:uint = 0;
-		
-		public var test:Test;
-		
-		private var reports : Object = new Object();
-		private var socket : XMLSocket;
-		private var connectionTries : int = 0;
-    	private var connectionTryMax : int = 10;
-		
-		public var reportXML : Boolean = true;
-		[Inspectable]
-		public var port : uint = 1024;		
-		[Inspectable]
-		public var server : String = "127.0.0.1";
-		
-		public function onCreationComplete():void
-		{
-			suiteMetaData = new Object();
-		}
-		
-		public function startTest():void
-		{
-		
-			flexunit.flexui.TestRunner.afterTest = afterTest;
-			flexunit.flexui.TestRunner.beforeTest = beforeTest;			
-
-			if( test != null )
-			{				
-				_totalTests = test.countTestCases();
-				
-				progressBar.minimum = 0;
-				testFailures.dataProvider = new Array();
-				allTestsList.dataProvider = new Array();
-				
-				updateLabels();
-				
-				flexunit.flexui.TestRunner.run( test, this );
-			}
-		}		
-		
-		private function updateLabels():void
-		{
-			runLabel.htmlText = "<b>Run:</b> "+_numTestsRun.toString()+"/"+_totalTests.toString();
-			errorsLabel.htmlText = "<b>Errors:</b> "+_totalErrors.toString();
-			failuresLabel.htmlText = "<b>Failures:</b> "+_totalFailures.toString();
-		}
-		
-		private function updateProgress():void
-		{
-			progressBar.setProgress( _numTestsRun, _totalTests );
-			
-			if( _totalErrors > 0 || _totalFailures > 0 )
-				progressBar.setStyle("barColor",0xFF0000);
-		}
-		
-		private function addFailureToList( test:Test, error:Error ):void
-		{
-			var t:TestCase = test as TestCase;
-			if( t != null )
-			{
-				ListCollectionView(testFailures.dataProvider).addItem( {label: t.toString(), error:error} );
-				testFailures.selectedIndex = testFailures.dataProvider.length;
-				testFailures.verticalScrollPosition = testFailures.maxVerticalScrollPosition;
-				onTestSelected();
-			}
-		}
-		
-		private function onTestSelected():void
-		{
-			var list:List = (testTabs.selectedIndex == 0) ? testFailures : allTestsList;
-			var errorString:String;
-			
-			if( list.selectedItem != null )
-				if( list.selectedItem.error != null )
-				{
-					this.currentState = "StackTraceView";
-					errorString = list.selectedItem.error.getStackTrace();
-					if (errorString == null)
-					{
-						errorString = list.selectedItem.error.message;
-					}
-					stackTrace.text = errorString;
-					testDetails.text = "Stack Trace";
-				}
-				else
-				{ 
-					this.currentState = "ResultsView";
-					//testDetails.text = "Test Details";
-					var dp_TestResults:ArrayCollection = new ArrayCollection();
-					var dp_MemUsage:ArrayCollection = new ArrayCollection();
-					resultsGrid.dataProvider = dp_TestResults;
-					rawMemGrid.dataProvider = dp_MemUsage;
-					var setUpDuration : String = list.selectedItem.setUpDuration.toFixed(3);
-					var middleDuration : String = list.selectedItem.middleDuration.toFixed(3);
-					var tearDownDuration : String = list.selectedItem.tearDownDuration.toFixed(3);
-					dp_TestResults.addItem({stage: "SetUp", duration: setUpDuration, memUsage: list.selectedItem.setUpMemFinal - list.selectedItem.setUpMemInitial});
-					dp_TestResults.addItem({stage: "Middle", duration: middleDuration, memUsage: list.selectedItem.middleMemFinal - list.selectedItem.middleMemInitial});
-					dp_TestResults.addItem({stage: "TearDown", duration: tearDownDuration, memUsage: list.selectedItem.tearDownMemFinal - list.selectedItem.tearDownMemInitial});
-					dp_MemUsage.addItem({initialMem: list.selectedItem.setUpMemInitial, finalMem: list.selectedItem.tearDownMemFinal, memDifference: (list.selectedItem.tearDownMemFinal - list.selectedItem.setUpMemInitial)});
-					dp_TestResults = null;
-					dp_MemUsage = null;
-				}	
-		}
-		
-		private function addTestToList( success:Boolean, test:Test, error:Error = null ):void
-		{
-			var t:TestCase = test as TestCase;
-			if( t != null )
-			{
-				var label:String = ( success ) ? "[PASS] " : "[FAIL] ";
-				// get mem data from test here - don't add it to the data provider
-				ListCollectionView(allTestsList.dataProvider).addItem( {label:label+t.toString(), 
-																		error:error, 
-																		setUpDuration:t.setUpDuration,
-																		middleDuration:t.middleDuration,
-																		tearDownDuration:t.tearDownDuration,
-																		setUpMemInitial:t.setUpMemInitial,
-																		setUpMemFinal:t.setUpMemFinal,
-																		middleMemInitial:t.middleMemInitial,
-																		middleMemFinal:t.middleMemFinal,
-																		tearDownMemInitial:t.tearDownMemInitial,
-																		tearDownMemFinal:t.tearDownMemFinal
-																		} );
-				allTestsList.selectedIndex = allTestsList.dataProvider.length;
-				allTestsList.verticalScrollPosition = allTestsList.maxVerticalScrollPosition;
-				onTestSelected();
-			}			
-		}
-		
-		//---------------------------------------------------------------------
-		// IFlexWriter Methods
-		//---------------------------------------------------------------------
-		
-		public function onTestStart( test:Test ) : void
-		{
-			titlePanel.title = "Test Runner (running: " + test.toString() + ")";
-			if (reportXML)
-				addMethod( test );
-		}
-		
-		public function onTestEnd( test:Test ) : void
-		{
-			//only run if reportXML is enabled
-			if (reportXML)
-			{
-				if (test is TestCase)
-				{
-					var time : Number = TestCase(test).setUpDuration + TestCase(test).middleDuration + TestCase(test).tearDownDuration;
-					
-					// Add time to the method.
-					var methodObject : Object = getMethod( test );
-					methodObject.time = time; 
-					methodObject.setuptime = TestCase(test).setUpDuration;
-					methodObject.setupmeminitial = TestCase(test).setUpMemInitial;
-					methodObject.setupmemfinal = TestCase(test).setUpMemFinal;
-					methodObject.middletime = TestCase(test).middleDuration;
-					methodObject.middlememinitial = TestCase(test).middleMemInitial;
-					methodObject.middlememfinal = TestCase(test).middleMemFinal;
-					methodObject.teardowntime = TestCase(test).tearDownDuration;
-					methodObject.teardownmeminitial = TestCase(test).tearDownMemInitial;
-					methodObject.teardownmemfinal = TestCase(test).tearDownMemFinal;
-				}
-				
-				Security.loadPolicyFile("xmlsocket:\\" + server + ":" + port);
-				// If we have finished running all the tests send the results.
-				if ( (_numTestsRun+1) == _totalTests )
-				{
-					sendResults();
-   				}
-   			}
-   			_numTestsRun++;			
-			updateLabels();
-			updateProgress();
-			titlePanel.title = "Test Runner";
-		}
-		
-		public function onAllTestsEnd() : void
-		{
-			progressBar.setProgress(100,100);
-			if( _totalErrors == 0 && _totalFailures == 0 )
-				progressBar.setStyle("barColor",0x00FF00);
-		}
-		
-		public function onSuccess( test:Test ):void
-		{
-			addTestToList( true, test );
-		}
-		
- 	   	public function onError( test:Test, error:Error ) : void
- 	   	{
- 	   		_totalErrors++;
- 	   		addFailureToList( test, error );
- 	   		addTestToList( false, test, error );
- 	   		
-			if (reportXML)
- 	   			addError( test, error);
- 	   	}
- 	   	
-		public function onFailure( test:Test, error:AssertionFailedError ) : void
-		{
-			_totalFailures++;
-			addFailureToList( test, error );
-			addTestToList( false, test, error );
-
-			if (reportXML)
-				addFailure( test, AssertionFailedError(error));
-		}
-		
-		//---------------------------------------------------------------------
-		// JUnitRunner Methods
-		//---------------------------------------------------------------------
-		
-		/**
-		 * Add the currently executing method on a Test to the internal report
-		 * model.
-		 * @param test the Test.
-		 */
-		private function addMethod( test : Test ) : void
-		{
-			var reportObject : Object = getReport( test );
-			reportObject.tests++;
-			
-			var methodName : String = TestCase(test).toString();
-			var methodsObject : Object = reportObject.methods;
-			
-			var methodObject : Object = new Object();
-			methodsObject[ methodName ] = methodObject;
-
-			methodObject.classname = test.className;
-			methodObject.metaData = TestCase(test).metaData;
-			methodObject.name = methodName;
-			methodObject.time = 0.0;
-			methodObject.setuptime = 0.0;
-			methodObject.setupmeminitial = 0.0;
-			methodObject.setupmemfinal = 0.0;
-			methodObject.middletime = 0.0;
-			methodObject.middlememinitial = 0.0;
-			methodObject.middlememfinal = 0.0;
-			methodObject.teardowntime = 0.0;
-			methodObject.teardownmeminitial = 0.0;
-			methodObject.teardownmemfinal = 0.0;
-
-		}
-		
-		/**
-		 * Called when an error occurs.
-		 * @param test the Test that generated the error.
-		 * @param error the Error.
-		 */
-		public function addError( test : Test, error : Error ) : void
-		{
-			// Increment error count.
-			var report : Object = getReport( test );
-			report.errors++;
-			
-			// Add the error to the method.
-			var methodObject : Object = getMethod( test );
-			
-			var errorObject : Object = new Object();
-			methodObject.error = errorObject;
-
-			errorObject.type = getClassName( error );
-			errorObject.message = error.message;
-		}
-
-		/**
-		 * Called when a failure occurs.
-		 * @param test the Test that generated the failure.
-		 * @param error the failure.
-		 */
-		public function addFailure( test : Test, error : AssertionFailedError ) : void
-		{
-			// Increment failure count.
-			var report : Object = getReport( test );
-			report.failures++;
-			
-			// Add the failure to the method.
-			var methodObject : Object = getMethod( test );
-			
-			var failureObject : Object = new Object();
-			methodObject.failure = failureObject;
-
-			failureObject.type = getClassName( error );
-			failureObject.message = error.message;
-		}
-		
-		/**
-		 * Return the fully qualified class name for an Object.
-		 * @param obj the Object.
-		 * @return the class name.
-		 */
-		private function getClassName( obj : Object ) : String
-		{
-			var description : XML = describeType( obj );
-			var className : Object = description.@name;
-			
-			return className[ 0 ];
-		}
-		
-		/**
-		 * Return the method Object from the internal report model for the
-		 * currently executing method on a Test.
-		 * @param test the Test.
-		 * @return the method Object.
-		 */
-		private function getMethod( test : Test ) : Object
-		{
-			var reportObject : Object = getReport( test );
-			var methodsObject : Object = reportObject.methods;
-			
-			var methodName : String = TestCase(test).toString()
-			
-			return methodsObject[ methodName ];
-		}
-	
-		/**
-		 * Return the report Object from the internal report model for the
-		 * currently executing Test.
-		 * @param Test the test.
-		 */
-		private function getReport( test : Test ) : Object
-		{
-			var reportObject : Object;
-			var className : String = test.className;
-			
-			// Check we have a report Object for the executing Test, if not
-			// create a new one.
-			if ( reports[ className ] )
-			{
-				reportObject = reports[ className ];
-			}
-			else
-			{
-				reportObject = new Object();
-				reportObject.name = className;
-				reportObject.errors = 0;
-				reportObject.failures = 0;
-				reportObject.tests = 0;
-				reportObject.time = getTimer()/1000;
-				reportObject.methods = new Object();
-				
-				reports[ className ] = reportObject;
-			}
-			
-			return reportObject;
-		}
-		
-		/**
-		 * Sends the results. This sends the reports back to the controlling Ant
-		 * task using an XMLSocket.
-		 */
-		public function sendResults() : void
-		{
-			// Open an XML socket.
-			socket = new XMLSocket();
-			socket.addEventListener( Event.CONNECT, handleConnect );
-			socket.addEventListener( DataEvent.DATA, dataHandler );
-			socket.addEventListener( IOErrorEvent.IO_ERROR, handleIOError );
-			socket.addEventListener( SecurityErrorEvent.SECURITY_ERROR, handleSecurityError );
-			socket.connect( server, port );
-		}
-		
-		private function handleSecurityError( event : Event ) : void
-		{
-			var e:SecurityErrorEvent = event as SecurityErrorEvent;
-			throw new Error("SecurityErrorEvent on Connect-> " + e.target + ": " +
-				e.type + ". " + e.text + "."); 
-		}
-
-		private function handleIOError( event : Event ) : void
-		{
-			if(connectionTries <= connectionTryMax){
-				connectionTries++;
-				sendResults();
-			}else{
-				var e:IOErrorEvent = event as IOErrorEvent;
-				throw new Error("IOErrorEvent on Connect-> " + e.target + ": " +
-					e.type + ". " + e.text + ". " + socket.connected + " " + server + ":" + port);				
-			}
-		}
-		
-		/**
-		 * Event listener to handle data received on the socket.
-		 * @param event the DataEvent.
-		 */
-		private function dataHandler( event : DataEvent ) : void
-		{
-			var data : String = event.data;
-
-			// If we received an acknowledgement finish-up.			
-			if ( data == END_OF_TEST_ACK )
-			{
-				exit();
-			}
-   		}
-   		
-   		private function handleConnect( event : Event ) : void
-		{
-			for ( var className : String in reports )
-			{
-				// Create the XML report.
-				var xml : XML = createXMLReport( reports[ className ] );
-				
-				// Send the XML report.
-				socket.send( xml.toXMLString() );
-			}
-			
-			// Send the end of reports terminator.
-			socket.send( END_OF_TEST_RUN );
-		}
-		
-		/**
-		 * Create the XML report.
-		 * @param obj the report Object.
-		 * @return the XML report.
-		 */
-		private function createXMLReport( obj : Object ) : XML
-		{
-			// Create the test suite element.
-			var testSuite : XML = createTestSuite( obj );
-				
-			// Create the test case elements.					
-			var methodsObject : Object = obj.methods;
-			for ( var methodName : String in methodsObject )
-			{
-				var methodObject : Object = methodsObject[ methodName ];
-				var testCase : XML = createTestCase( methodObject );
-						
-				// Create the failure element.
-				if ( methodObject.failure )
-				{
-					var failureObject : Object = methodObject.failure;			
-					var failure : XML = createFailure( failureObject );
-							
-					testCase = testCase.appendChild( failure );									
-				}
-					
-				// Create the error element.
-				if ( methodObject.error )
-				{
-					var errorObject : Object = methodObject.error;
-					var error : XML = createError( errorObject );
-							
-					testCase = testCase.appendChild( error );									
-				}					
-							
-				testSuite = testSuite.appendChild( testCase );
-			}
-			
-			return testSuite;
-		}
-		
-		/**
-		 * Create the test suite XML.
-		 * @return the XML.
-		 */ 
-		private function createTestSuite( obj : Object ) : XML
-		{
-			var name : String = obj.name;
-			var errors : uint = obj.errors;
-			var failures : uint = obj.failures;
-			var tests : uint = obj.tests;
-			var time : int = getTimer()/1000 - obj.time;
-			var methods : Object = obj.methods;
-			var flashVersion : String = Capabilities.version;
-			var flashLanguage : String = Capabilities.language;
-			var flashPlayerType : String = Capabilities.playerType;
-			var flashConfig : String;
-			
-			setDebugFlag();
-			if (debugMode)
-			{
-				flashConfig = "release debugger";
-			}
-			else
-			{
-				flashConfig = "release";
-			}
-				
-			var xml : XML =
-				<testsuite
-					errors={ errors }
-					failures={ failures }
-					name={ formatQualifiedClassName( name ) }
-					tests={ tests }
-					time={ time }
-					flashversion={ flashVersion }
-					flashlanguage={ flashLanguage }
-					flashconfig={ flashConfig }
-					flashplayertype={ flashPlayerType }/>;
-			
-			// Add any other meta-data
-			for (var attrib:Object in suiteMetaData)
-			{
-				xml.@[attrib] = suiteMetaData[attrib];	
-			}
-			
-			return xml;
-		}
-		
-		/**
-		 * Create the test case XML.
-		 * @return the XML.
-		 */
-		private function createTestCase( obj : Object ) : XML
-		{
-			var classname : String = obj.classname;
-			var name : String = obj.name;
-			var time : Number = obj.time; 
-			var setuptime : Number = obj.setuptime;
-			var setupmeminitial : Number = obj.setupmeminitial;
-			var setupmemfinal : Number = obj.setupmemfinal;
-			var middletime : Number = obj.middletime;
-			var middlememinitial : Number = obj.middlememinitial;
-			var middlememfinal : Number = obj.middlememfinal;
-			var teardowntime : Number = obj.teardowntime;
-			var teardownmeminitial : Number = obj.teardownmeminitial;
-			var teardownmemfinal : Number = obj.teardownmemfinal;
-					
-			var xml : XML =
-				<testcase
-					classname={ formatQualifiedClassName( classname ) }
-					name={ name }
-					time={ time.toFixed(3) }
-					setuptime={ setuptime.toFixed(3) }
-					setupmeminitial={ setupmeminitial }
-					setupmemfinal={ setupmemfinal }
-					middletime={ middletime.toFixed(3) }
-					middlememinitial={ middlememinitial }
-					middlememfinal={ middlememfinal }
-					teardowntime={ teardowntime.toFixed(3) }
-					teardownmeminitial={ teardownmeminitial }
-					teardownmemfinal={ teardownmemfinal }/>;
-			
-			// Add any other meta-data
-			for (var attrib:Object in obj.metaData)
-			{
-				xml.@[attrib] = obj.metaData[attrib];	
-			}
-			
-			return xml;
-		}
-		
-		/**
-		 * Create the failure XML.
-		 * @return the XML.
-		 */
-		private function createFailure( obj : Object ) : XML
-		{
-			var type : String = obj.type;
-			var message : String = obj.message;
-					
-			var xml : XML =
-				<failure type={ formatQualifiedClassName( type ) }>
-					{ message }
-				</failure>;
-					
-			return xml;
-		}
-		
-		/**
-		 * Create the test error XML.
-		 * @return the XML.
-		 */
-		private function createError( obj : Object ) : XML
-		{
-			var type : String = obj.type;
-			var message : String = obj.message;
-					
-			var xml : XML =
-				<error type={ formatQualifiedClassName( type ) }>
-					{ message }
-				</error>;
-					
-			return xml;
-		}
-		
-		/**
-		 * Exit the test runner and close the player.
-		 */
-		private function exit() : void
-		{
-			// Close the socket.
-			socket.close();
-		}
-		
-		private function formatQualifiedClassName( className : String ) : String
-		{
-			var pattern : RegExp = /::/;
-			
-			return className.replace( pattern, "." );
-		}
-		
-		private function setDebugFlag(): void
-		{
-			var e:Error = new Error();
-			var s:String = e.getStackTrace();
-			try
-			{
-				var i:int = s.indexOf("setDebugFlag");
-				if (s.charAt(i + 14) == '[')
-					debugMode = true;
-			}
-			catch (err:Error)	// error is thrown in release player
-			{
-				debugMode = false;
-			}
-		}
-
-		private var debugMode : Boolean = false;
-		
-		]]>
-	</mx:Script>
-	<mx:states>
-		<mx:State name="StackTraceView" basedOn="">
-			<mx:AddChild relativeTo="{stackTrace}" position="lastChild" creationPolicy="all" />
-		</mx:State>
-		<mx:State name="ResultsView" basedOn="">
-			<mx:RemoveChild target="{stackTrace}" />
-			<mx:AddChild relativeTo="{vbox1}" position="lastChild">
-				<mx:DataGrid id="resultsGrid" rowCount="3" width="100%" draggableColumns="false" sortableColumns="false">
-					<mx:columns>
-						<mx:DataGridColumn headerText="Stage" dataField="stage"/>
-						<mx:DataGridColumn headerText="Duration (s)" dataField="duration"/>
-						<mx:DataGridColumn headerText="Memory Usage (MB)" dataField="memUsage"/>
-					</mx:columns>
-				</mx:DataGrid>
-			</mx:AddChild>
-			<mx:AddChild relativeTo="{vbox1}" position="lastChild">
-				<mx:DataGrid id="rawMemGrid" editable="false" width="100%" rowCount="1" draggableColumns="false" sortableColumns="false">
-					<mx:columns>
-						<mx:DataGridColumn headerText="Initial Memory (MB)" dataField="initialMem"/>
-						<mx:DataGridColumn headerText="Final Memory (MB)" dataField="finalMem"/>
-						<mx:DataGridColumn headerText="Total Usage (MB)" dataField="memDifference"/>
-					</mx:columns>
-				</mx:DataGrid>
-			</mx:AddChild>
-		</mx:State>
-	</mx:states>
-	<mx:Canvas width="100%" height="100%">
-		<mx:Panel id="titlePanel" backgroundAlpha="0.4" title="Test Runner" paddingBottom="10" width="100%" height="100%">
-			<mx:HBox width="100%">
-				<mx:HBox width="50%" height="20" horizontalAlign="left" paddingLeft="0" paddingRight="10">
-					<mx:ProgressBar width="100%" trackHeight="12" id="progressBar" labelPlacement="left" label="Running..." mode="manual" />
-				</mx:HBox>
-				<mx:HBox width="50%" height="20" horizontalAlign="right">
-					<mx:Label id="runLabel" paddingRight="10" />
-					<mx:Label id="errorsLabel" text="Errors: 0" paddingRight="10" />
-					<mx:Label id="failuresLabel" text="Failures: 0" />					
-				</mx:HBox>
-			</mx:HBox>
-			<mx:HDividedBox width="100%" height="100%">
-				<mx:TabNavigator id="testTabs" change="onTestSelected()" width="50%" 
-					height="100%" paddingBottom="0" paddingLeft="0" paddingRight="0" 
-					paddingTop="0" creationPolicy="all" >
-					<mx:Canvas label="Failures" width="100%" height="100%">
-						<mx:List id="testFailures" width="100%" height="100%" borderStyle="none" editable="true"
-								 change="onTestSelected()" />
-					</mx:Canvas>
-					<mx:Canvas label="All Tests" width="100%" height="100%">
-						<mx:List id="allTestsList" width="100%" height="100%" borderStyle="none"
-								 change="onTestSelected()" />								
-					</mx:Canvas>
-				</mx:TabNavigator>					
-				<mx:VBox width="50%" height="100%" id="vbox1">
-					<mx:HBox width="100%" height="15" paddingBottom="0" 
-								paddingLeft="0" paddingRight="0" paddingTop="0">
-						<mx:Label id="testDetails"></mx:Label>
-					</mx:HBox>
-					<mx:TextArea id="stackTrace" width="100%" height="100%" borderStyle="none" wordWrap="false" />
-				</mx:VBox>				
-			</mx:HDividedBox>
-		</mx:Panel>
-	</mx:Canvas>
-</mx:VBox>
\ No newline at end of file
+        import org.flexunit.runner.FlexUnitCore;
+
+        private var core:FlexUnitCore;
+
+        public function startTest(isMinimalTests:Boolean = false):void
+        {
+
+            core = new FlexUnitCore();
+            core.addListener(testRunner);
+            if (isMinimalTests)
+            {
+                core.run(new MinimalTestsSuite());
+            }
+            else
+            {
+                core.run(new AllTestsSuite());
+            }
+        }
+        ]]>
+	</fx:Script>
+    <flexunituirunner:TestRunnerBase id="testRunner"/>
+</s:Group>
\ No newline at end of file