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(); - } - -} - -}