You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2017/02/21 08:08:28 UTC

git commit: [flex-asjs] [refs/heads/dual] - Revert "get checkintests to not fail again" now that we don't wrap Sprites anymore

Repository: flex-asjs
Updated Branches:
  refs/heads/dual 80e61d8e3 -> aaf81f665


Revert "get checkintests to not fail again" now that we don't wrap Sprites anymore

This reverts commit 5c8c667cb2b93860d98e210ec8201d49c02cd794.


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

Branch: refs/heads/dual
Commit: aaf81f6657d3f2d60d8e3e7cdb25fd1c74ad10ac
Parents: 80e61d8
Author: Alex Harui <ah...@apache.org>
Authored: Mon Feb 20 23:47:34 2017 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Mon Feb 20 23:47:34 2017 -0800

----------------------------------------------------------------------
 build.xml                                       |   1 -
 mustella/tests/basicTests/BasicTestsApp.mxml    |  20 +-
 .../tests/basicTests/DispatchMouseClickEvent.as | 300 ------------------
 mustella/tests/basicTests/DispatchMouseEvent.as | 309 -------------------
 mustella/tests/basicTests/FlexJSContext.as      |  22 +-
 mustella/tests/basicTests/TestStep.as           | 193 ------------
 6 files changed, 12 insertions(+), 833 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/aaf81f66/build.xml
----------------------------------------------------------------------
diff --git a/build.xml b/build.xml
index bf4e15f..e98f431 100644
--- a/build.xml
+++ b/build.xml
@@ -1401,7 +1401,6 @@
                file="${basedir}/mustella/tests/basicTests/BasicTestsApp.mxml">
             <jvmarg line="${mxmlc.jvm.args}"/>
             <arg line="-compiler.mxml.children-as-data=true" />
-            <arg line="-compiler.info.flex=false" />
             <library-path dir="${FLEX_SDK_HOME}" append="true">
                 <include name="mustella/mustella.swc"/>
                 <include name="frameworks/libs/framework.swc"/>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/aaf81f66/mustella/tests/basicTests/BasicTestsApp.mxml
----------------------------------------------------------------------
diff --git a/mustella/tests/basicTests/BasicTestsApp.mxml b/mustella/tests/basicTests/BasicTestsApp.mxml
index 6d2635e..805b535 100644
--- a/mustella/tests/basicTests/BasicTestsApp.mxml
+++ b/mustella/tests/basicTests/BasicTestsApp.mxml
@@ -22,25 +22,7 @@ limitations under the License.
                    xmlns:js="library://ns.apache.org/flexjs/basic" 
                    xmlns:models="models.*" 
                    xmlns:controllers="controllers.*"
-                   applicationComplete="forwardEvent(event)" >
-    <fx:Script>
-	  <![CDATA[
-	    import org.apache.flex.core.WrappedMovieClip;
-	    
-	    private var r:WrappedMovieClip;
-	    override public function setRoot(r:WrappedMovieClip):void
-	    {
-	      this.r = r;
-	      r["info"]().app = this;
-	      super.setRoot(r);
-	    }
-	    
-	    private function forwardEvent(e:Event):void
-	    {
-	    	r.dispatchEvent(e);
-	    }
-	  ]]>
-    </fx:Script>
+                   >
     <js:valuesImpl>
         <js:SimpleCSSValuesImpl />
     </js:valuesImpl>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/aaf81f66/mustella/tests/basicTests/DispatchMouseClickEvent.as
----------------------------------------------------------------------
diff --git a/mustella/tests/basicTests/DispatchMouseClickEvent.as b/mustella/tests/basicTests/DispatchMouseClickEvent.as
deleted file mode 100644
index 7b5eba0..0000000
--- a/mustella/tests/basicTests/DispatchMouseClickEvent.as
+++ /dev/null
@@ -1,300 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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.
-//
-////////////////////////////////////////////////////////////////////////////////
-package {
-
-import flash.display.DisplayObject;
-import flash.display.DisplayObjectContainer;
-import flash.display.InteractiveObject;
-import flash.events.MouseEvent;
-import flash.geom.Point;
-import flash.text.TextField;
-
-import mx.core.mx_internal;
-use namespace mx_internal;
-
-/**
- *  The test step that fakes a mouse event
- *  MXML attributes:
- *  target
- *  type
- *  ctrlKey (optional)
- *  delta (optional)
- *  localX
- *  localY
- *  relatedObject (optional)
- *  shiftKey (optional)
- *  stageX
- *  stageY
- *  waitTarget (optional)
- *  waitEvent (optional)
- *  timeout (optional);
- */
-public class DispatchMouseClickEvent extends TestStep
-{
-
-	private static var mouseX:QName = new QName(mx_internal, "_mouseX");
-	private static var mouseY:QName = new QName(mx_internal, "_mouseY");
-
-	/**
-	 *  @private
-	 */
-	override public function execute(root:DisplayObject, context:UnitTester, testCase:TestCase, testResult:TestResult):Boolean
-	{
-		if (waitEvent && waitTarget == null)
-			waitTarget = target;
-		return super.execute(root, context, testCase, testResult);
-	}
-
-	/**
-	 *  Set the target's property to the specified value
-	 */
-	override protected function doStep():void
-	{
-		UnitTester.blockFocusEvents = false;
-
-		var actualTarget:Object = context.stringToObject(target);
-		if (!(actualTarget is DisplayObject))
-		    if ("element" in actualTarget)
-			    actualTarget = actualTarget["element"];
-		if (!actualTarget)
-		{
-			testResult.doFail("Target " + target + " not found");
-			UnitTester.blockFocusEvents = true;
-			return;
-		}
-		dispatchMouseEvent(actualTarget, "mouseDown");
-		dispatchMouseEvent(actualTarget, "mouseUp");
-		dispatchMouseEvent(actualTarget, "click");
-
-		UnitTester.blockFocusEvents = true;
-
-	}
-
-	private function dispatchMouseEvent(actualTarget:Object, type:String):void
-	{
-		var event:MouseEvent = new MouseEvent(type, true); // all mouse events bubble
-		event.ctrlKey = ctrlKey;
-		event.shiftKey = shiftKey;
-		event.buttonDown = type == "mouseDown";
-		event.delta = delta;
-		if (relatedObject && relatedObject.length > 0)
-		{
-			event.relatedObject = InteractiveObject(context.stringToObject(relatedObject));
-		}
-		
-		var stagePt:Point;
-		if (!isNaN(localX) && !isNaN(localY))
-		{
-			stagePt = actualTarget.localToGlobal(new Point(localX, localY));
-		}
-		else if (!isNaN(stageX) && !isNaN(stageY))
-		{
-			stagePt = new Point(stageX, stageY);
-		}
-		else
-		{
-			stagePt = actualTarget.localToGlobal(new Point(0, 0));
-		}
-        try {
-            root[mouseX] = stagePt.x;
-            root[mouseY] = stagePt.y;
-            UnitTester.setMouseXY(stagePt);
-            if (root["topLevelSystemManager"] != root)
-            {
-                root["topLevelSystemManager"][mouseX] = stagePt.x;
-                root["topLevelSystemManager"][mouseY] = stagePt.y;
-            }            
-        } catch (e:Error) {} // some scenarios don't support this
-
-		if (actualTarget is DisplayObjectContainer)
-		{
-			var targets:Array = actualTarget.stage.getObjectsUnderPoint(stagePt);
-			var arr:Array = UnitTester.getObjectsUnderPoint(DisplayObject(actualTarget), stagePt);
-			targets = targets.concat(arr);
-
-			for (var i:int = targets.length - 1; i >= 0; i--)
-			{
-				if (targets[i] is InteractiveObject)
-				{
-					if (targets[i] is TextField && !targets[i].selectable)
-					{
-						actualTarget = targets[i].parent;
-						break;
-					}
-
-					if (isMouseTarget(InteractiveObject(targets[i])))
-					{
-						actualTarget = targets[i];
-						break;
-					}
-				}
-/*				else
-				{
-					try
-					{
-						actualTarget = targets[i].parent;
-						while (actualTarget)
-						{
-							if (actualTarget is InteractiveObject)
-							{
-								if (isMouseTarget(InteractiveObject(actualTarget)))
-								{
-									break;
-								}
-							}
-							actualTarget = actualTarget.parent;
-						}
-						if (actualTarget && actualTarget != root)
-							break;
-					}
-					catch (e:Error)
-					{
-						if (actualTarget)
-							break;
-					}
-				}
-*/			}
-		}
-
-		var localPt:Point = actualTarget.globalToLocal(stagePt);
-		event.localX = localPt.x;
-		event.localY = localPt.y;
-
-		if (actualTarget is TextField)
-		{
-			if (type == "mouseDown")
-			{
-				var charIndex:int = actualTarget.getCharIndexAtPoint(event.localX, event.localY);
-				actualTarget.setSelection(charIndex + 1, charIndex + 1);
-			}
-		}
-
-		try
-		{
-			actualTarget.dispatchEvent(event);
-		}
-		catch (e2:Error)
-		{
-			TestOutput.logResult("Exception thrown in DispatchMouseClickEvent.");
-			testResult.doFail (e2.getStackTrace());	
-			return;
-		}
-	}
-
-	/**
-	 *  The object that receives the mouse event
-	 */
-	public var target:String;
-
-	/**
-	 *  The ctrlKey property on the MouseEvent (optional)
-	 */
-	public var ctrlKey:Boolean;
-
-	/**
-	 *  The delta property on the MouseEvent (optional)
-	 */
-	public var delta:int;
-
-	/**
-	 *  The localX property on the MouseEvent (optional)
-	 *  Either set stageX/stageY or localX/localY, but not both.
-	 */
-	public var localX:Number;
-
-	/**
-	 *  The localY property on the MouseEvent (optional)
-	 *  Either set stageX/stageY or localX/localY, but not both.
-	 */
-	public var localY:Number;
-
-	/**
-	 *  The stageX property on the MouseEvent (optional)
-	 *  Either set stageX/stageY or localX/localY, but not both.
-	 */
-	public var stageX:Number;
-
-	/**
-	 *  The stageY property on the MouseEvent (optional)
-	 *  Either set stageX/stageY or localX/localY, but not both.
-	 */
-	public var stageY:Number;
-
-	/**
-	 *  The shiftKey property on the MouseEvent (optional)
-	 */
-	public var shiftKey:Boolean;
-
-	/**
-	 *  The relatedObject property on the MouseEvent (optional)
-	 */
-	public var relatedObject:String;
-
-
-    private function isMouseTarget(target:InteractiveObject):Boolean
-    {
-        if (!target.mouseEnabled)
-            return false;
-
-		// Examine parent chain for "mouseChildren" set to false:
-		try
-		{
-			var parent:DisplayObjectContainer = target.parent;
-			while (parent)
-			{
-				if (!parent.mouseChildren)
-					return false;
-				parent = parent.parent;
-			}
-		}
-		catch (e1:Error)
-		{
-		}
-
-        return true;
-    }
-
-	/**
-	 *  customize string representation
-	 */
-	override public function toString():String
-	{
-		var s:String = "DispatchMouseClickEvent: target = ";
-		s += target;
-		if (!isNaN(localX))
-			s += ", localX = " + localX.toString();
-		if (!isNaN(localY))
-			s += ", localY = " + localY.toString();
-		if (!isNaN(stageX))
-			s += ", stageX = " + stageX.toString();
-		if (!isNaN(stageY))
-			s += ", stageY = " + stageY.toString();
-		if (shiftKey)
-			s += ", shiftKey = " + shiftKey.toString();
-		if (ctrlKey)
-			s += ", ctrlKey = " + ctrlKey.toString();
-		if (relatedObject)
-			s += ", relatedObject = " + relatedObject.toString();
-		if (delta)
-			s += ", delta = " + delta.toString();
-		return s;
-	}
-}
-
-}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/aaf81f66/mustella/tests/basicTests/DispatchMouseEvent.as
----------------------------------------------------------------------
diff --git a/mustella/tests/basicTests/DispatchMouseEvent.as b/mustella/tests/basicTests/DispatchMouseEvent.as
deleted file mode 100644
index 58f22a5..0000000
--- a/mustella/tests/basicTests/DispatchMouseEvent.as
+++ /dev/null
@@ -1,309 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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.
-//
-////////////////////////////////////////////////////////////////////////////////
-package {
-
-import flash.display.DisplayObject;
-import flash.display.DisplayObjectContainer;
-import flash.display.InteractiveObject;
-import flash.text.TextField;
-import flash.events.MouseEvent;
-import flash.geom.Point;
-
-import mx.core.mx_internal;
-use namespace mx_internal;
-
-/**
- *  The test step that fakes a mouse event
- *  MXML attributes:
- *  target
- *  type
- *  ctrlKey (optional)
- *  delta (optional)
- *  localX
- *  localY
- *  relatedObject (optional)
- *  shiftKey (optional)
- *  stageX
- *  stageY
- *  waitTarget (optional)
- *  waitEvent (optional)
- *  timeout (optional);
- */
-public class DispatchMouseEvent extends TestStep
-{
-	private static var mouseX:QName = new QName(mx_internal, "_mouseX");
-	private static var mouseY:QName = new QName(mx_internal, "_mouseY");
-
-	/**
-	 *  @private
-	 */
-	override public function execute(root:DisplayObject, context:UnitTester, testCase:TestCase, testResult:TestResult):Boolean
-	{
-		if (waitEvent && waitTarget == null)
-			waitTarget = target;
-		return super.execute(root, context, testCase, testResult);
-	}
-
-	/**
-	 *  Set the target's property to the specified value
-	 */
-	override protected function doStep():void
-	{
-		UnitTester.blockFocusEvents = false;
-
-		var actualTarget:Object = context.stringToObject(target);
-		if (!(actualTarget is DisplayObject))
-		    if ("element" in actualTarget)
-			    actualTarget = actualTarget["element"];
-		if (!actualTarget)
-		{
-			testResult.doFail("Target " + target + " not found");
-			UnitTester.blockFocusEvents = false;
-			return;
-		}
-
-		var event:MouseEvent = new MouseEvent(type, true); // all mouse events bubble
-		event.ctrlKey = ctrlKey;
-		event.shiftKey = shiftKey;
-		event.buttonDown = buttonDown || type == "mouseDown";
-		event.delta = delta;
-		if (relatedObject && relatedObject.length > 0)
-		{
-			event.relatedObject = InteractiveObject(context.stringToObject(relatedObject));
-			if (!event.relatedObject)
-			{
-				testResult.doFail("RelatedObject " + relatedObject + " not found");
-				UnitTester.blockFocusEvents = false;
-				return;
-			}
-		}
-		
-		var stagePt:Point;
-		if (!isNaN(localX) && !isNaN(localY))
-		{
-			stagePt = actualTarget.localToGlobal(new Point(localX, localY));
-		}
-		else if (!isNaN(stageX) && !isNaN(stageY))
-		{
-			stagePt = new Point(stageX, stageY);
-		}
-		else
-		{
-			stagePt = actualTarget.localToGlobal(new Point(0, 0));
-		}
-        try {
-            root[mouseX] = stagePt.x;
-            root[mouseY] = stagePt.y;
-            UnitTester.setMouseXY(stagePt);
-            if (root["topLevelSystemManager"] != root)
-            {
-                root["topLevelSystemManager"][mouseX] = stagePt.x;
-                root["topLevelSystemManager"][mouseY] = stagePt.y;
-            }            
-        } catch (e:Error) {}; // some scenarios don't support this
-
-		if (actualTarget is DisplayObjectContainer)
-		{
-			var targets:Array = actualTarget.stage.getObjectsUnderPoint(stagePt);
-			var arr:Array = UnitTester.getObjectsUnderPoint(DisplayObject(actualTarget), stagePt);
-			targets = targets.concat(arr);
-
-			for (var i:int = targets.length - 1; i >= 0; i--)
-			{
-				if (targets[i] is InteractiveObject)
-				{
-					if (targets[i] is TextField && !targets[i].selectable)
-					{
-						actualTarget = targets[i].parent;
-						break;
-					}
-
-					if (isMouseTarget(InteractiveObject(targets[i])))
-					{
-						actualTarget = targets[i];
-						break;
-					}
-				}
-/*				else
-				{
-					try
-					{
-						actualTarget = targets[i].parent;
-						while (actualTarget)
-						{
-							if (actualTarget is InteractiveObject)
-							{
-								if (isMouseTarget(InteractiveObject(actualTarget)))
-								{
-									break;
-								}
-							}
-							actualTarget = actualTarget.parent;
-						}
-						if (actualTarget && actualTarget != root)
-							break;
-					}
-					catch (e:Error)
-					{
-						if (actualTarget)
-							break;
-					}
-				}
-*/			}
-		}
-
-		var localPt:Point = actualTarget.globalToLocal(stagePt);
-		event.localX = localPt.x;
-		event.localY = localPt.y;
-
-		if (actualTarget is TextField)
-		{
-			if (type == "mouseDown")
-			{
-				var charIndex:int = actualTarget.getCharIndexAtPoint(event.localX, event.localY);
-				actualTarget.setSelection(charIndex + 1, charIndex + 1);
-			}
-		}
-
-		try
-		{
-			actualTarget.dispatchEvent(event);
-		}
-		catch (e2:Error)
-		{
-			TestOutput.logResult("Exception thrown in DispatchMouseClickEvent.");
-			testResult.doFail (e2.getStackTrace());	
-		}
-
-		UnitTester.blockFocusEvents = true;
-	}
-
-	/**
-	 *  The object that receives the mouse event
-	 */
-	public var target:String;
-
-	/**
-	 *  The type of the event to send (mouseUp, mouseDown, etc).
-	 */
-	public var type:String;
-
-	/**
-	 *  The buttonDown property on the MouseEvent (optional)
-	 */
-	public var buttonDown:Boolean;
-
-	/**
-	 *  The ctrlKey property on the MouseEvent (optional)
-	 */
-	public var ctrlKey:Boolean;
-
-	/**
-	 *  The delta property on the MouseEvent (optional)
-	 */
-	public var delta:int;
-
-	/**
-	 *  The localX property on the MouseEvent (optional)
-	 *  Either set stageX/stageY or localX/localY, but not both.
-	 */
-	public var localX:Number;
-
-	/**
-	 *  The localY property on the MouseEvent (optional)
-	 *  Either set stageX/stageY or localX/localY, but not both.
-	 */
-	public var localY:Number;
-
-	/**
-	 *  The stageX property on the MouseEvent (optional)
-	 *  Either set stageX/stageY or localX/localY, but not both.
-	 */
-	public var stageX:Number;
-
-	/**
-	 *  The stageY property on the MouseEvent (optional)
-	 *  Either set stageX/stageY or localX/localY, but not both.
-	 */
-	public var stageY:Number;
-
-	/**
-	 *  The shiftKey property on the MouseEvent (optional)
-	 */
-	public var shiftKey:Boolean;
-
-	/**
-	 *  The relatedObject property on the MouseEvent (optional)
-	 */
-	public var relatedObject:String;
-
-
-    private function isMouseTarget(target:InteractiveObject):Boolean
-    {
-        if (!target.mouseEnabled)
-            return false;
-
-		// Examine parent chain for "mouseChildren" set to false:
-		try
-		{
-			var parent:DisplayObjectContainer = target.parent;
-			while (parent)
-			{
-				if (!parent.mouseChildren)
-					return false;
-				parent = parent.parent;
-			}
-		}
-		catch (e1:Error)
-		{
-		}
-
-        return true;
-    }
-
-	/**
-	 *  customize string representation
-	 */
-	override public function toString():String
-	{
-		var s:String = "DispatchMouseEvent: target = ";
-		s += target;
-		if (type)
-			s += ", type = " + type;
-		if (!isNaN(localX))
-			s += ", localX = " + localX.toString();
-		if (!isNaN(localY))
-			s += ", localY = " + localY.toString();
-		if (!isNaN(stageX))
-			s += ", stageX = " + stageX.toString();
-		if (!isNaN(stageY))
-			s += ", stageY = " + stageY.toString();
-		if (shiftKey)
-			s += ", shiftKey = " + shiftKey.toString();
-		if (ctrlKey)
-			s += ", ctrlKey = " + ctrlKey.toString();
-		if (relatedObject)
-			s += ", relatedObject = " + relatedObject.toString();
-		if (delta)
-			s += ", delta = " + delta.toString();
-		return s;
-	}
-}
-
-}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/aaf81f66/mustella/tests/basicTests/FlexJSContext.as
----------------------------------------------------------------------
diff --git a/mustella/tests/basicTests/FlexJSContext.as b/mustella/tests/basicTests/FlexJSContext.as
index 2482f9f..4f03402 100644
--- a/mustella/tests/basicTests/FlexJSContext.as
+++ b/mustella/tests/basicTests/FlexJSContext.as
@@ -16,14 +16,14 @@
 //  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////
-package 
-{
+package 
+{
 
 [Mixin]
-public class FlexJSContext
+public class FlexJSContext
 {
-	public function FlexJSContext()
-	{
+	public function FlexJSContext()
+	{
 		super();
     }
     
@@ -34,10 +34,10 @@ public class FlexJSContext
 	
 	public static function contextFunction():Object
 	{
-		return UnitTester._root["info"]().app["initialView"];		
-	}
-}
-
-
-}
+		return UnitTester._root["initialView"];		
+	}
+}
 
+
+}
+

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/aaf81f66/mustella/tests/basicTests/TestStep.as
----------------------------------------------------------------------
diff --git a/mustella/tests/basicTests/TestStep.as b/mustella/tests/basicTests/TestStep.as
deleted file mode 100644
index a2304ff..0000000
--- a/mustella/tests/basicTests/TestStep.as
+++ /dev/null
@@ -1,193 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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.
-//
-////////////////////////////////////////////////////////////////////////////////
-package {
-
-import flash.display.DisplayObject;
-import flash.events.Event;
-import flash.events.EventDispatcher;
-import flash.events.IEventDispatcher;
-import flash.utils.getTimer;
-
-/**
- *  The abstract base class for all steps in a test case.  TestStep
- *  cannot be used directly, instead its subclasses must be used
- *  such as SetProperty, RunCode, Assert, etc.
- */
-public class TestStep extends EventDispatcher
-{
-	/**
-	 *  Called by the TestCase when it is time to start this step
-	 *  The default implementation checks for a wait event and
-	 *  returns true if there isn't one and false if there is.
-	 */
-	public function execute(root:DisplayObject, context:UnitTester, testCase:TestCase, testResult:TestResult):Boolean
-	{
-		var tryLater:Boolean = false;
-
-		this.root = root;
-		this.context = context;
-		this.testCase = testCase;
-		this.testResult = testResult;
-
-		if (waitEvent)
-		{
-			var actualTarget:IEventDispatcher = context.stringToObject(waitTarget) as IEventDispatcher;
-			if (!(actualTarget is DisplayObject))
-				if ("element" in actualTarget)
-					actualTarget = actualTarget["element"];
-			if (!actualTarget)
-			{
-				// its ok if the target isn't here yet, it may be created during this step
-				tryLater = true;
-			}
-			else
-			{
-                UnitTester.waitEvent = waitEvent;
-				actualTarget.addEventListener(waitEvent, waitEventHandler);
-				testCase.setExpirationTime(getTimer() + timeout);
-			}
-		}
-
-		if (!UnitTester.hasRTE)
-			doStep();
-
-		// if test failed, don't bother waiting, just bail
-		if (testResult.hasStatus() || UnitTester.hasRTE)
-		{
-			if (UnitTester.hasRTE)
-			{ 
-				testResult.result = 1;
-				testResult.message = UnitTester.RTEMsg;
-				dispatchEvent(new Event("runComplete"));
-				return true;	
-			}
-
-			if (waitEvent)
-			{
-                UnitTester.waitEvent = null;
-				actualTarget = context.stringToObject(waitTarget) as IEventDispatcher;
-				if (!(actualTarget is DisplayObject))
-					if ("element" in actualTarget)
-						actualTarget = actualTarget["element"];
-				actualTarget.removeEventListener(waitEvent, waitEventHandler);
-				testCase.setExpirationTime(0);
-			}
-			return true;
-		}
-
-		if (tryLater && waitEvent)
-		{
-			actualTarget = context.stringToObject(waitTarget) as IEventDispatcher;
-			if (!(actualTarget is DisplayObject))
-			    if ("element" in actualTarget)
-				    actualTarget = actualTarget["element"];
-			if (!actualTarget)
-			{
-				testResult.doFail("Target " + waitTarget + " not found");
-				return true;
-			}
-            UnitTester.waitEvent = waitEvent;
-			actualTarget.addEventListener(waitEvent, waitEventHandler);
-			testCase.setExpirationTime(getTimer() + timeout);
-		}
-
-		return (waitEvent == null);
-	}
-
-	/**
-	 *  The name of the object to listen for an event we're waiting on
-	 */
-	public var waitTarget:String;
-
-	/**
-	 *  The name of the event to listen for on the waitTarget
-	 */
-	public var waitEvent:String;
-
-	/**
-	 *  The number of milliseconds to wait before giving up
-	 */
-	public var timeout:int = 3000;
-
-	/**
-	 *  The TestResult for this TestCase
-	 */
-	protected var testResult:TestResult;
-
-	/**
-	 *  The TestCase that this step belongs to
-	 */
-	protected var testCase:TestCase;
-
-	/**
-	 *  The UnitTester that this step belongs to
-	 */
-	protected var context:UnitTester;
-
-	/**
-	 *  The root for the SWF
-	 */
-	protected var root:DisplayObject;
-
-	/**
-	 *  The method that gets called when it is time to perform the work in the step.
-	 */
-	protected function doStep():void
-	{
-	}
-
-	/**
-	 *  The method that gets called back when the event we're waiting on fires
-	 */
-	protected function waitEventHandler(event:Event):void
-	{
-		stepComplete();
-	}
-
-	/**
-	 *  The method that gets called when it is time to clean up the step.
-	 */
-	protected function stepComplete():void
-	{
-		if (waitEvent)
-		{
-            UnitTester.waitEvent = null;
-			var actualTarget:IEventDispatcher = context.stringToObject(waitTarget) as IEventDispatcher;
-			if (!(actualTarget is DisplayObject))
-			    if ("element" in actualTarget)
-				    actualTarget = actualTarget["element"];
-			if (actualTarget)	// can be null if object killed during step
-				actualTarget.removeEventListener(waitEvent, waitEventHandler);
-			testCase.setExpirationTime(0);
-		}
-		dispatchEvent(new Event("stepComplete"));
-	}
-
-	/**
-	 *  Called by the test case if you time out
-	 */
-	public function timeoutCallback():void
-	{
-		testResult.doFail("Timeout waiting for " + waitEvent + " from " + waitTarget);
-		stepComplete();
-	}
-
-}
-
-}