asproject 0.1.92 → 0.1.118

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. data/lib/asclass_arguments.rb +1 -1
  2. data/lib/asproject.rb +3 -1
  3. data/lib/asproject/version.rb +1 -1
  4. data/lib/asproject_arguments.rb +5 -5
  5. data/lib/path_finder.rb +17 -7
  6. data/lib/tasks/asunit.rb +8 -0
  7. data/lib/tasks/flash_log.rb +2 -1
  8. data/lib/tasks/flash_player.rb +10 -6
  9. data/lib/tasks/mxmlc.rb +13 -2
  10. data/lib/tasks/remote_file_loader.rb +144 -0
  11. data/lib/tasks/remote_file_task.rb +2 -128
  12. data/lib/tasks/remote_library_task.rb +75 -0
  13. data/templates/asclass/as2/Class.as +1 -1
  14. data/templates/asproject/as2/{art → assets}/.crap_file +0 -0
  15. data/templates/asproject/as2/project/rakefile.rb +3 -2
  16. data/templates/asproject/as3/{art → assets}/.crap_file +0 -0
  17. data/templates/asproject/as3/project/rakefile.rb +3 -3
  18. data/templates/asproject/fdt/project/.as2_classpath +1 -1
  19. metadata +9 -129
  20. data/templates/asproject/asunit2/project/lib/asunit/AsUnitUi.swf +0 -0
  21. data/templates/asproject/asunit2/project/lib/asunit/Sys.as +0 -70
  22. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/LocalOutputPanel.as +0 -182
  23. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/LocalOutputPanelTest.as +0 -84
  24. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/LocalOutputPanelTextArea.as +0 -111
  25. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/LocalOutputPanelTextAreaTest.as +0 -26
  26. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/LocalOutputPanelTitleBar.as +0 -81
  27. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/ResizeHandle.as +0 -35
  28. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/ScrollArrow.as +0 -34
  29. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/ScrollHandle.as +0 -43
  30. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/ScrollListener.as +0 -10
  31. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/TextScroller.as +0 -169
  32. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/shapes/Rectangle.as +0 -29
  33. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/shapes/Triangle.as +0 -27
  34. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/AsUnit.as +0 -19
  35. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/Assert.as +0 -408
  36. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/Assertion.as +0 -27
  37. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/Reflection.as +0 -68
  38. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/Test.as +0 -3
  39. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/TestCase.as +0 -191
  40. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/TestCaseXml.as +0 -31
  41. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/TestFailure.as +0 -15
  42. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/TestResult.as +0 -15
  43. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/TestRunner.as +0 -41
  44. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/TestSetup.as +0 -19
  45. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/TestSuite.as +0 -22
  46. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/ui/Main.as +0 -325
  47. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/ui/RemoteVersion.as +0 -24
  48. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/ui/SuccessMeter.as +0 -32
  49. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/util/Comparable.as +0 -7
  50. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/util/EventListener.as +0 -29
  51. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/util/EventSource.as +0 -89
  52. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/util/LocalConnClient.as +0 -42
  53. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/util/LocalConnGateway.as +0 -47
  54. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/util/LocalConnServer.as +0 -61
  55. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/util/LocalMessageBroker.as +0 -58
  56. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/util/Observable.as +0 -11
  57. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/util/TextFile.as +0 -30
  58. data/templates/asproject/asunit25/project/lib/asunit/AsUnitTestRunner.as +0 -13
  59. data/templates/asproject/asunit25/project/lib/asunit/asunit/errors/AssertionFailedError.as +0 -7
  60. data/templates/asproject/asunit25/project/lib/asunit/asunit/errors/AssertionPassedError.as +0 -7
  61. data/templates/asproject/asunit25/project/lib/asunit/asunit/errors/ClassNotFoundError.as +0 -7
  62. data/templates/asproject/asunit25/project/lib/asunit/asunit/errors/IllegalOperationError.as +0 -7
  63. data/templates/asproject/asunit25/project/lib/asunit/asunit/errors/InstanceNotFoundError.as +0 -7
  64. data/templates/asproject/asunit25/project/lib/asunit/asunit/errors/InvocationTargetError.as +0 -7
  65. data/templates/asproject/asunit25/project/lib/asunit/asunit/errors/UnimplementedFeatureError.as +0 -7
  66. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/Assert.as +0 -376
  67. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/AssertMock.as +0 -15
  68. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/AssertTest.as +0 -59
  69. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/ITestListener.as +0 -13
  70. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/Test.as +0 -11
  71. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/TestCase.as +0 -278
  72. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/TestCaseMock.as +0 -23
  73. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/TestCaseTest.as +0 -29
  74. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/TestCaseXml.as +0 -38
  75. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/TestFailure.as +0 -47
  76. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/TestResult.as +0 -168
  77. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/TestSuite.as +0 -102
  78. data/templates/asproject/asunit25/project/lib/asunit/asunit/runner/BaseTestRunner.as +0 -101
  79. data/templates/asproject/asunit25/project/lib/asunit/asunit/runner/IResultPrinter.as +0 -8
  80. data/templates/asproject/asunit25/project/lib/asunit/asunit/textui/ResultPrinter.as +0 -254
  81. data/templates/asproject/asunit25/project/lib/asunit/asunit/textui/SuccessBar.as +0 -41
  82. data/templates/asproject/asunit25/project/lib/asunit/asunit/textui/TestRunner.as +0 -17
  83. data/templates/asproject/asunit25/project/lib/asunit/asunit/util/ArrayIterator.as +0 -24
  84. data/templates/asproject/asunit25/project/lib/asunit/asunit/util/ArrayIteratorTest.as +0 -52
  85. data/templates/asproject/asunit25/project/lib/asunit/asunit/util/Iterator.as +0 -5
  86. data/templates/asproject/asunit3/project/lib/asunit/AsUnitTestRunner.as +0 -10
  87. data/templates/asproject/asunit3/project/lib/asunit/asunit/errors/AbstractMemberCalledError.as +0 -10
  88. data/templates/asproject/asunit3/project/lib/asunit/asunit/errors/AssertionFailedError.as +0 -10
  89. data/templates/asproject/asunit3/project/lib/asunit/asunit/errors/ClassNotFoundError.as +0 -10
  90. data/templates/asproject/asunit3/project/lib/asunit/asunit/errors/InstanceNotFoundError.as +0 -10
  91. data/templates/asproject/asunit3/project/lib/asunit/asunit/errors/UnimplementedFeatureError.as +0 -10
  92. data/templates/asproject/asunit3/project/lib/asunit/asunit/framework/Assert.as +0 -271
  93. data/templates/asproject/asunit3/project/lib/asunit/asunit/framework/AsynchronousTestCase.as +0 -52
  94. data/templates/asproject/asunit3/project/lib/asunit/asunit/framework/AsynchronousTestCaseExample.as +0 -71
  95. data/templates/asproject/asunit3/project/lib/asunit/asunit/framework/Test.as +0 -15
  96. data/templates/asproject/asunit3/project/lib/asunit/asunit/framework/TestCase.as +0 -354
  97. data/templates/asproject/asunit3/project/lib/asunit/asunit/framework/TestCaseExample.as +0 -73
  98. data/templates/asproject/asunit3/project/lib/asunit/asunit/framework/TestFailure.as +0 -47
  99. data/templates/asproject/asunit3/project/lib/asunit/asunit/framework/TestListener.as +0 -22
  100. data/templates/asproject/asunit3/project/lib/asunit/asunit/framework/TestResult.as +0 -158
  101. data/templates/asproject/asunit3/project/lib/asunit/asunit/framework/TestSuite.as +0 -115
  102. data/templates/asproject/asunit3/project/lib/asunit/asunit/runner/BaseTestRunner.as +0 -15
  103. data/templates/asproject/asunit3/project/lib/asunit/asunit/runner/TestSuiteLoader.as +0 -9
  104. data/templates/asproject/asunit3/project/lib/asunit/asunit/runner/Version.as +0 -11
  105. data/templates/asproject/asunit3/project/lib/asunit/asunit/textui/FlexRunner.as +0 -19
  106. data/templates/asproject/asunit3/project/lib/asunit/asunit/textui/FlexTestRunner.as +0 -55
  107. data/templates/asproject/asunit3/project/lib/asunit/asunit/textui/ResultPrinter.as +0 -245
  108. data/templates/asproject/asunit3/project/lib/asunit/asunit/textui/TestRunner.as +0 -121
  109. data/templates/asproject/asunit3/project/lib/asunit/asunit/util/ArrayIterator.as +0 -26
  110. data/templates/asproject/asunit3/project/lib/asunit/asunit/util/Iterator.as +0 -9
  111. data/templates/asproject/asunit3/project/lib/asunit/asunit/util/Properties.as +0 -30
@@ -1,52 +0,0 @@
1
- package asunit.framework {
2
- import flash.net.URLRequest;
3
- import flash.net.URLLoader;
4
- import flash.events.*;
5
- import flash.errors.IllegalOperationError;
6
-
7
- /**
8
- * Extend this class if you have a TestCase that requires the
9
- * asynchronous load of external data.
10
- */
11
- public class AsynchronousTestCase extends TestCase {
12
-
13
- public function AsynchronousTestCase(testMethod:String = null) {
14
- super(testMethod);
15
- }
16
-
17
- protected function configureListeners(loader:URLLoader):void {
18
- loader.addEventListener(Event.COMPLETE, completeHandler);
19
- loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
20
- loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
21
- loader.addEventListener(Event.OPEN, openHandler);
22
- loader.addEventListener(ProgressEvent.PROGRESS, progressHandler);
23
- loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
24
- }
25
-
26
- // override this method and implement your own completeHandler
27
- // you should be sure to call super.run() from the body of
28
- // this override.
29
- protected function completeHandler(event:Event):void {
30
- }
31
-
32
- // TODO: add support for failing status events...
33
- protected function httpStatusHandler(event:HTTPStatusEvent):void {
34
- }
35
-
36
- protected function ioErrorHandler(event:IOErrorEvent):void {
37
- result.addError(this, new IllegalOperationError(event.toString()));
38
- isComplete = true;
39
- }
40
-
41
- protected function openHandler(event:Event):void {
42
- }
43
-
44
- protected function progressHandler(event:ProgressEvent):void {
45
- }
46
-
47
- protected function securityErrorHandler(event:SecurityErrorEvent):void {
48
- result.addError(this, new IllegalOperationError(event.toString()));
49
- isComplete = true;
50
- }
51
- }
52
- }
@@ -1,71 +0,0 @@
1
- package asunit.framework {
2
- import flash.net.URLRequest;
3
- import flash.net.URLLoader;
4
- import flash.events.*;
5
-
6
- /**
7
- * This example is built on the following mock data:
8
- * <books>
9
- * <book publisher="Addison-Wesley" name="Design Patterns" />
10
- * <book publisher="Addison-Wesley" name="The Pragmattic Programmer" />
11
- * <book publisher="Addison-Wesley" name="Test Driven Development" />
12
- * <book publisher="Addison-Wesley" name="Refactoring to Patterns" />
13
- * <book publisher="O'Reilly Media" name="The Cathedral & the Bazaar" />
14
- * <book publisher="O'Reilly Media" name="Unit Test Frameworks" />
15
- * </books>
16
- *
17
- * This example was created to illustrate how one can build an synchronous
18
- * TestCase - one that relies on remote data of some sort.
19
- * This use case is now diminished by the creation of E4X and easily
20
- * readable/editable XML data directly in source form.
21
- * But asynchronous tests will probably need to be built at some point
22
- * by somebody... If you're them, maybe you can use this as a template.
23
- */
24
-
25
- public class AsynchronousTestCaseExample extends AsynchronousTestCase {
26
- private var source:String = "asunit/framework/MockData.xml";
27
- private var dataSource:XML;
28
- private var instance:Object;
29
-
30
- // Override the run method and begin the request for remote data
31
- public override function run():void {
32
- var request:URLRequest = new URLRequest(source);
33
- var loader:URLLoader = new URLLoader();
34
- // configureListeners is a method on the AsynchronousTestCase
35
- // and it will handle error states by failing loudly...
36
- configureListeners(loader);
37
- loader.load(request);
38
- }
39
-
40
- protected override function completeHandler(event:Event):void {
41
- // put a copy of the data into a member reference
42
- dataSource = XML(event.target.data).copy();
43
- // call super.run() to execute test methods
44
- super.run();
45
- }
46
-
47
- protected override function setUp():void {
48
- // create a new instance of the class under test
49
- instance = new Object();
50
- // copy the data into a member or method of the instance
51
- instance.data = dataSource.copy();
52
- }
53
-
54
- protected override function tearDown():void {
55
- // destroy the class under test instance
56
- instance = null;
57
- }
58
-
59
- public function testBookCount():void {
60
- var data:XML = XML(instance.data);
61
- var list:XMLList = data..book;
62
- assertTrue("list.length() == " + list.length() + " (6?)", list.length() == 6);
63
- }
64
-
65
- public function testOReillyBookCount():void {
66
- var data:XML = XML(instance.data);
67
- var list:XMLList = data..book.(@publisher == "O'Reilly Media");
68
- assertTrue("list.length() == " + list.length() + " (2?)", list.length() == 2);
69
- }
70
- }
71
- }
@@ -1,15 +0,0 @@
1
- package asunit.framework {
2
- import flash.display.DisplayObjectContainer;
3
- import flash.events.IEventDispatcher;
4
-
5
- public interface Test extends IEventDispatcher {
6
- function countTestCases():int;
7
- function toString():String;
8
- function setResult(result:TestResult):void;
9
- function run():void;
10
- function getCurrentMethod():String;
11
- function getIsComplete():Boolean;
12
- function setContext(context:DisplayObjectContainer):void;
13
- function getContext():DisplayObjectContainer;
14
- }
15
- }
@@ -1,354 +0,0 @@
1
- package asunit.framework {
2
- import asunit.errors.AssertionFailedError;
3
-
4
- import flash.display.DisplayObject;
5
- import flash.display.DisplayObjectContainer;
6
- import flash.errors.IllegalOperationError;
7
- import flash.utils.describeType;
8
- import asunit.util.Iterator;
9
- import asunit.util.ArrayIterator;
10
- import flash.net.getClassByAlias;
11
- import flash.events.Event;
12
- import flash.utils.Timer;
13
- import flash.events.TimerEvent;
14
- import flash.utils.setTimeout;
15
- import flash.utils.clearTimeout;
16
- import flash.utils.getDefinitionByName;
17
-
18
- /**
19
- * A test case defines the fixture to run multiple tests. To define a test case<br>
20
- * 1) implement a subclass of TestCase<br>
21
- * 2) define instance variables that store the state of the fixture<br>
22
- * 3) initialize the fixture state by overriding <code>setUp</code><br>
23
- * 4) clean-up after a test by overriding <code>tearDown</code>.<br>
24
- * Each test runs in its own fixture so there
25
- * can be no side effects among test runs.
26
- * Here is an example:
27
- * <pre>
28
- * public class MathTest extends TestCase {
29
- * protected double fValue1;
30
- * protected double fValue2;
31
- *
32
- * protected void setUp() {
33
- * fValue1= 2.0;
34
- * fValue2= 3.0;
35
- * }
36
- * }
37
- * </pre>
38
- *
39
- * For each test implement a method which interacts
40
- * with the fixture. Verify the expected results with assertions specified
41
- * by calling <code>assertTrue</code> with a boolean.
42
- * <pre>
43
- * public void testAdd() {
44
- * double result= fValue1 + fValue2;
45
- * assertTrue(result == 5.0);
46
- * }
47
- * </pre>
48
- * Once the methods are defined you can run them. The framework supports
49
- * both a static type safe and more dynamic way to run a test.
50
- * In the static way you override the runTest method and define the method to
51
- * be invoked. A convenient way to do so is with an anonymous inner class.
52
- * <pre>
53
- * TestCase test= new MathTest("add") {
54
- * public void runTest() {
55
- * testAdd();
56
- * }
57
- * };
58
- * test.run();
59
- * </pre>
60
- * The dynamic way uses reflection to implement <code>runTest</code>. It dynamically finds
61
- * and invokes a method.
62
- * In this case the name of the test case has to correspond to the test method
63
- * to be run.
64
- * <pre>
65
- * TestCase= new MathTest("testAdd");
66
- * test.run();
67
- * </pre>
68
- * The tests to be run can be collected into a TestSuite. JUnit provides
69
- * different <i>test runners</i> which can run a test suite and collect the results.
70
- * A test runner either expects a static method <code>suite</code> as the entry
71
- * point to get a test to run or it will extract the suite automatically.
72
- * <pre>
73
- * public static Test suite() {
74
- * suite.addTest(new MathTest("testAdd"));
75
- * suite.addTest(new MathTest("testDivideByZero"));
76
- * return suite;
77
- * }
78
- * </pre>
79
- * @see TestResult
80
- * @see TestSuite
81
- */
82
- public class TestCase extends Assert implements Test {
83
- /**
84
- * the name of the test case
85
- */
86
- protected static const DEFAULT_TIMEOUT:int = 1000;
87
- protected var fName:String;
88
- protected var result:TestResult;
89
- protected var testMethods:Array;
90
- protected var isComplete:Boolean;
91
- protected var context:DisplayObjectContainer;
92
- protected var methodIsAsynchronous:Boolean;
93
- protected var timeout:Timer;
94
- private var currentMethod:String;
95
- private var runSingle:Boolean;
96
- private var methodIterator:Iterator;
97
- private var layoutManager:Object;
98
-
99
- /**
100
- * Constructs a test case with the given name.
101
- */
102
- public function TestCase(testMethod:String = null) {
103
- var description:XML = describeType(this);
104
- var className:Object = description.@name;
105
- var methods:XMLList = description..method.(@name.match("^test"));
106
- if(testMethod != null) {
107
- testMethods = testMethod.split(", ").join(",").split(",");
108
- if(testMethods.length == 1) {
109
- runSingle = true;
110
- }
111
- } else {
112
- setTestMethods(methods);
113
- }
114
- setName(className.toString());
115
- resolveLayoutManager();
116
- }
117
-
118
- private function resolveLayoutManager():void {
119
- // Avoid creating import dependencies on flex framework
120
- // If you have the framework.swc in your classpath,
121
- // the layout manager will be found, if not, a mcok
122
- // will be used.
123
- try {
124
- var manager:Class = getDefinitionByName("mx.managers.LayoutManager") as Class;
125
- layoutManager = manager["getInstance"]();
126
- if(!layoutManager.hasOwnProperty("resetAll")) {
127
- throw new Error("TestCase :: mx.managers.LayoutManager missing resetAll method");
128
- }
129
- }
130
- catch(e:Error) {
131
- layoutManager = new Object();
132
- layoutManager.resetAll = function():void {
133
- }
134
- }
135
- }
136
-
137
- /**
138
- * Sets the name of a TestCase
139
- * @param name The name to set
140
- */
141
- public function setName(name:String):void {
142
- fName = name;
143
- }
144
-
145
- protected function setTestMethods(methodNodes:XMLList):void {
146
- testMethods = new Array();
147
- var methodNames:Object = methodNodes.@name;
148
- var name:String;
149
- for each(var item:Object in methodNames) {
150
- name = item.toString();
151
- testMethods.push(name);
152
- }
153
- }
154
-
155
- /**
156
- * Counts the number of test cases executed by run(TestResult result).
157
- */
158
- public function countTestCases():int {
159
- return testMethods.length;
160
- }
161
-
162
- /**
163
- * Creates a default TestResult object
164
- *
165
- * @see TestResult
166
- */
167
- protected function createResult():TestResult {
168
- return new TestResult();
169
- }
170
-
171
- /**
172
- * A convenience method to run this test, collecting the results with
173
- * either the TestResult provided or a default, new TestResult object.
174
- * Expects either:
175
- * run():void // will return the newly created TestResult
176
- * run(result:TestResult):TestResult // will use the TestResult
177
- * that was passed in.
178
- *
179
- * @see TestResult
180
- */
181
- public function run():void {
182
- getResult().run(this);
183
- }
184
-
185
- public function setResult(result:TestResult):void {
186
- this.result = result;
187
- }
188
-
189
- protected function getResult():TestResult {
190
- return (result == null) ? createResult() : result;
191
- }
192
-
193
- /**
194
- * Runs the bare test sequence.
195
- * @exception Error if any exception is thrown
196
- * throws Error
197
- */
198
- public function runBare():void {
199
- if(isComplete) {
200
- return;
201
- }
202
- var name:String;
203
- var itr:Iterator = getMethodIterator();
204
- if(itr.hasNext()) {
205
- name = String(itr.next());
206
- runMethod(name);
207
- }
208
- else {
209
- cleanUp();
210
- getResult().endTest(this);
211
- isComplete = true;
212
- dispatchEvent(new Event(Event.COMPLETE));
213
- }
214
- }
215
-
216
- private function getMethodIterator():Iterator {
217
- if(methodIterator == null) {
218
- methodIterator = new ArrayIterator(testMethods);
219
- }
220
- return methodIterator;
221
- }
222
-
223
- // Override this method in Asynchronous test cases
224
- // or any other time you want to perform additional
225
- // member cleanup after all test methods have run
226
- protected function cleanUp():void {
227
- }
228
-
229
- private function runMethod(methodName:String):void {
230
- try {
231
- setUp();
232
- currentMethod = methodName;
233
- methodIsAsynchronous = false;
234
- this[methodName]();
235
- }
236
- catch(assertionFailedError:AssertionFailedError) {
237
- getResult().addFailure(this, assertionFailedError);
238
- }
239
- catch(unknownError:Error) {
240
- getResult().addError(this, unknownError);
241
- }
242
- finally {
243
- if(!methodIsAsynchronous) {
244
- runTearDown();
245
- }
246
- }
247
- }
248
-
249
- /**
250
- * Sets up the fixture, for example, instantiate a mock object.
251
- * This method is called before each test is executed.
252
- * throws Exception on error
253
- */
254
- protected function setUp():void {
255
- }
256
- /**
257
- * Tears down the fixture, for example, delete mock object.
258
- * This method is called after a test is executed.
259
- * throws Exception on error
260
- */
261
- protected function tearDown():void {
262
- }
263
- /**
264
- * Returns a string representation of the test case
265
- */
266
- override public function toString():String {
267
- return getName() + "." + getCurrentMethod() + "()";
268
- }
269
- /**
270
- * Gets the name of a TestCase
271
- * @return returns a String
272
- */
273
- public function getName():String {
274
- return fName;
275
- }
276
-
277
- public function getCurrentMethod():String {
278
- return currentMethod;
279
- }
280
-
281
- public function getIsComplete():Boolean {
282
- return isComplete;
283
- }
284
-
285
- public function setContext(context:DisplayObjectContainer):void {
286
- this.context = context;
287
- }
288
-
289
- public function getContext():DisplayObjectContainer {
290
- return context;
291
- }
292
-
293
- protected function addAsync(handler:Function = null, duration:Number=DEFAULT_TIMEOUT):Function {
294
- if(handler == null) {
295
- handler = function(args:*):* {};
296
- }
297
- methodIsAsynchronous = true;
298
- timeout = new Timer(duration, 1);
299
- timeout.addEventListener(TimerEvent.TIMER_COMPLETE, getTimeoutComplete(duration));
300
- timeout.start();
301
- // try ..args
302
- var context:TestCase = this;
303
- return function(args:*):* {
304
- context.timeout.stop();
305
- try {
306
- handler.apply(context, arguments);
307
- }
308
- catch(e:AssertionFailedError) {
309
- context.getResult().addFailure(context, e);
310
- }
311
- catch(ioe:IllegalOperationError) {
312
- context.getResult().addError(context, ioe);
313
- }
314
- finally {
315
- context.runTearDown();
316
- }
317
- }
318
- }
319
-
320
- private function getTimeoutComplete(duration:Number):Function {
321
- var context:TestCase = this;
322
- return function(event:Event):void {
323
- context.getResult().addError(context, new IllegalOperationError("TestCase.timeout (" + duration + "ms) exceeded on an asynchronous test method."));
324
- context.runTearDown();
325
- }
326
- }
327
-
328
- protected function runTearDown():void {
329
- if(isComplete) {
330
- return;
331
- }
332
- if(!runSingle) {
333
- tearDown();
334
- layoutManager.resetAll();
335
- }
336
- setTimeout(runBare, 5);
337
- }
338
-
339
- protected function addChild(child:DisplayObject):DisplayObject {
340
- return getContext().addChild(child);
341
- }
342
-
343
- protected function removeChild(child:DisplayObject):DisplayObject {
344
- if(child == null) {
345
- throw new IllegalOperationError("TestCase.removeChild must have non-null parameter child");
346
- }
347
- return getContext().removeChild(child);
348
- }
349
-
350
- // public function fail(message:String):void {
351
- // result.addFailure(this, new AssertionFailedError(message));
352
- // }
353
- }
354
- }