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 <aha...@apache.org>
Authored: Mon Feb 20 23:47:34 2017 -0800
Committer: Alex Harui <aha...@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();
-       }
-
-}
-
-}

Reply via email to