|
From: <luk...@us...> - 2006-10-11 05:09:10
|
Revision: 122
http://svn.sourceforge.net/asunit/?rev=122&view=rev
Author: lukebayes
Date: 2006-10-10 22:09:04 -0700 (Tue, 10 Oct 2006)
Log Message:
-----------
Made TestSuites pause execution for asynchronus TestCases
Modified Paths:
--------------
trunk/framework/as3/asunit/framework/TestCase.as
trunk/framework/as3/asunit/framework/TestSuite.as
Modified: trunk/framework/as3/asunit/framework/TestCase.as
===================================================================
--- trunk/framework/as3/asunit/framework/TestCase.as 2006-10-05 20:17:40 UTC (rev 121)
+++ trunk/framework/as3/asunit/framework/TestCase.as 2006-10-11 05:09:04 UTC (rev 122)
@@ -300,6 +300,7 @@
finally {
context.methodIsAsynchronous = false;
context.runTearDown();
+ trace("CONTEXT: " + context);
context.runBare();
}
}
Modified: trunk/framework/as3/asunit/framework/TestSuite.as
===================================================================
--- trunk/framework/as3/asunit/framework/TestSuite.as 2006-10-05 20:17:40 UTC (rev 121)
+++ trunk/framework/as3/asunit/framework/TestSuite.as 2006-10-11 05:09:04 UTC (rev 122)
@@ -19,6 +19,8 @@
public class TestSuite extends TestCase implements Test {
private var fTests:Array = new Array();
private var testsCompleteCount:Number = 0;
+ private var iterator:ArrayIterator;
+ private var isRunning:Boolean;
public function TestSuite() {
super();
@@ -53,16 +55,31 @@
public override function run():void {
var result:TestResult = getResult();
var test:Test;
- var itr:Iterator = new ArrayIterator(fTests);
+ var itr:Iterator = getIterator();
while(itr.hasNext()) {
+ isRunning = true;
test = Test(itr.next());
test.setResult(result);
test.addEventListener(Event.COMPLETE, testCompleteHandler);
test.run();
+ if(!test.getIsComplete()) {
+ isRunning = false;
+ break;
+ }
}
}
+ private function getIterator():ArrayIterator {
+ if(iterator == null) {
+ iterator = new ArrayIterator(fTests);
+ }
+ return iterator;
+ }
+
private function testCompleteHandler(event:Event):void {
+ if(!isRunning) {
+ run();
+ }
if(++testsCompleteCount >= testCount()) {
dispatchEvent(new Event(Event.COMPLETE));
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|