asproject 0.1.21

Sign up to get free protection for your applications and to get access to all the features.
Files changed (142) hide show
  1. data/CHANGELOG.txt +0 -0
  2. data/History.txt +0 -0
  3. data/MIT-LICENSE.txt +20 -0
  4. data/Manifest.txt +16 -0
  5. data/README.txt +3 -0
  6. data/TODO.txt +10 -0
  7. data/bin/asclass +16 -0
  8. data/bin/asproject +16 -0
  9. data/lib/asclass.rb +254 -0
  10. data/lib/asclass_arguments.rb +147 -0
  11. data/lib/asproject.rb +248 -0
  12. data/lib/asproject/version.rb +9 -0
  13. data/lib/asproject_arguments.rb +175 -0
  14. data/lib/asproject_base.rb +43 -0
  15. data/lib/asproject_utils.rb +57 -0
  16. data/lib/eclipse_project.rb +32 -0
  17. data/lib/path_finder.rb +286 -0
  18. data/lib/platform.rb +107 -0
  19. data/lib/project.rb +82 -0
  20. data/lib/template_resolver.rb +144 -0
  21. data/lib/test_suite_generator.rb +128 -0
  22. data/rakefile.rb +85 -0
  23. data/setup.rb +1585 -0
  24. data/templates/asclass/as2/Class.as +11 -0
  25. data/templates/asclass/as2/Component.as +8 -0
  26. data/templates/asclass/as2/Interface.as +3 -0
  27. data/templates/asclass/as2/TestCase.as +30 -0
  28. data/templates/asclass/as2/TestSuite.as +15 -0
  29. data/templates/asclass/as3/Class.as +9 -0
  30. data/templates/asclass/as3/Component.as +9 -0
  31. data/templates/asclass/as3/Component.mxml +1 -0
  32. data/templates/asclass/as3/Interface.as +6 -0
  33. data/templates/asclass/as3/TestCase.as +30 -0
  34. data/templates/asclass/as3/TestSuite.as +18 -0
  35. data/templates/asproject/as2/project/rakefile.rb +18 -0
  36. data/templates/asproject/as2/project/src/AsProject.as +13 -0
  37. data/templates/asproject/as2/project/test/AsProjectRunner.as +12 -0
  38. data/templates/asproject/as3/project/rakefile.rb +18 -0
  39. data/templates/asproject/as3/project/src/AsProject.as +9 -0
  40. data/templates/asproject/as3/project/src/AsProjectRunner.as +11 -0
  41. data/templates/asproject/asunit2/project/lib/asunit/AsUnitUi.swf +0 -0
  42. data/templates/asproject/asunit2/project/lib/asunit/Sys.as +70 -0
  43. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/LocalOutputPanel.as +182 -0
  44. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/LocalOutputPanelTest.as +84 -0
  45. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/LocalOutputPanelTextArea.as +111 -0
  46. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/LocalOutputPanelTextAreaTest.as +26 -0
  47. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/LocalOutputPanelTitleBar.as +81 -0
  48. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/ResizeHandle.as +35 -0
  49. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/ScrollArrow.as +34 -0
  50. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/ScrollHandle.as +43 -0
  51. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/ScrollListener.as +10 -0
  52. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/TextScroller.as +169 -0
  53. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/shapes/Rectangle.as +29 -0
  54. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/controls/shapes/Triangle.as +27 -0
  55. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/AsUnit.as +19 -0
  56. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/Assert.as +408 -0
  57. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/Assertion.as +27 -0
  58. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/Reflection.as +68 -0
  59. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/Test.as +3 -0
  60. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/TestCase.as +191 -0
  61. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/TestCaseXml.as +31 -0
  62. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/TestFailure.as +15 -0
  63. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/TestResult.as +15 -0
  64. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/TestRunner.as +41 -0
  65. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/TestSetup.as +19 -0
  66. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/framework/TestSuite.as +22 -0
  67. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/ui/Main.as +325 -0
  68. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/ui/RemoteVersion.as +24 -0
  69. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/ui/SuccessMeter.as +32 -0
  70. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/util/Comparable.as +7 -0
  71. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/util/EventListener.as +29 -0
  72. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/util/EventSource.as +89 -0
  73. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/util/LocalConnClient.as +42 -0
  74. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/util/LocalConnGateway.as +47 -0
  75. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/util/LocalConnServer.as +61 -0
  76. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/util/LocalMessageBroker.as +58 -0
  77. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/util/Observable.as +11 -0
  78. data/templates/asproject/asunit2/project/lib/asunit/com/asunit/util/TextFile.as +30 -0
  79. data/templates/asproject/asunit25/project/lib/asunit/AsUnitTestRunner.as +13 -0
  80. data/templates/asproject/asunit25/project/lib/asunit/asunit/errors/AssertionFailedError.as +7 -0
  81. data/templates/asproject/asunit25/project/lib/asunit/asunit/errors/AssertionPassedError.as +7 -0
  82. data/templates/asproject/asunit25/project/lib/asunit/asunit/errors/ClassNotFoundError.as +7 -0
  83. data/templates/asproject/asunit25/project/lib/asunit/asunit/errors/IllegalOperationError.as +7 -0
  84. data/templates/asproject/asunit25/project/lib/asunit/asunit/errors/InstanceNotFoundError.as +7 -0
  85. data/templates/asproject/asunit25/project/lib/asunit/asunit/errors/InvocationTargetError.as +7 -0
  86. data/templates/asproject/asunit25/project/lib/asunit/asunit/errors/UnimplementedFeatureError.as +7 -0
  87. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/Assert.as +376 -0
  88. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/AssertMock.as +15 -0
  89. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/AssertTest.as +59 -0
  90. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/ITestListener.as +13 -0
  91. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/Test.as +11 -0
  92. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/TestCase.as +277 -0
  93. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/TestCaseMock.as +23 -0
  94. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/TestCaseTest.as +29 -0
  95. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/TestCaseXml.as +38 -0
  96. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/TestFailure.as +47 -0
  97. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/TestResult.as +168 -0
  98. data/templates/asproject/asunit25/project/lib/asunit/asunit/framework/TestSuite.as +102 -0
  99. data/templates/asproject/asunit25/project/lib/asunit/asunit/runner/BaseTestRunner.as +101 -0
  100. data/templates/asproject/asunit25/project/lib/asunit/asunit/runner/IResultPrinter.as +8 -0
  101. data/templates/asproject/asunit25/project/lib/asunit/asunit/textui/ResultPrinter.as +254 -0
  102. data/templates/asproject/asunit25/project/lib/asunit/asunit/textui/SuccessBar.as +41 -0
  103. data/templates/asproject/asunit25/project/lib/asunit/asunit/textui/TestRunner.as +17 -0
  104. data/templates/asproject/asunit25/project/lib/asunit/asunit/util/ArrayIterator.as +24 -0
  105. data/templates/asproject/asunit25/project/lib/asunit/asunit/util/ArrayIteratorTest.as +52 -0
  106. data/templates/asproject/asunit25/project/lib/asunit/asunit/util/Iterator.as +5 -0
  107. data/templates/asproject/asunit3/project/lib/asunit/AsUnitTestRunner.as +10 -0
  108. data/templates/asproject/asunit3/project/lib/asunit/asunit/errors/AbstractMemberCalledError.as +10 -0
  109. data/templates/asproject/asunit3/project/lib/asunit/asunit/errors/AssertionFailedError.as +10 -0
  110. data/templates/asproject/asunit3/project/lib/asunit/asunit/errors/ClassNotFoundError.as +10 -0
  111. data/templates/asproject/asunit3/project/lib/asunit/asunit/errors/InstanceNotFoundError.as +10 -0
  112. data/templates/asproject/asunit3/project/lib/asunit/asunit/errors/UnimplementedFeatureError.as +10 -0
  113. data/templates/asproject/asunit3/project/lib/asunit/asunit/framework/Assert.as +271 -0
  114. data/templates/asproject/asunit3/project/lib/asunit/asunit/framework/AsynchronousTestCase.as +52 -0
  115. data/templates/asproject/asunit3/project/lib/asunit/asunit/framework/AsynchronousTestCaseExample.as +71 -0
  116. data/templates/asproject/asunit3/project/lib/asunit/asunit/framework/Test.as +15 -0
  117. data/templates/asproject/asunit3/project/lib/asunit/asunit/framework/TestCase.as +351 -0
  118. data/templates/asproject/asunit3/project/lib/asunit/asunit/framework/TestCaseExample.as +73 -0
  119. data/templates/asproject/asunit3/project/lib/asunit/asunit/framework/TestFailure.as +47 -0
  120. data/templates/asproject/asunit3/project/lib/asunit/asunit/framework/TestListener.as +22 -0
  121. data/templates/asproject/asunit3/project/lib/asunit/asunit/framework/TestResult.as +158 -0
  122. data/templates/asproject/asunit3/project/lib/asunit/asunit/framework/TestSuite.as +115 -0
  123. data/templates/asproject/asunit3/project/lib/asunit/asunit/runner/BaseTestRunner.as +15 -0
  124. data/templates/asproject/asunit3/project/lib/asunit/asunit/runner/TestSuiteLoader.as +9 -0
  125. data/templates/asproject/asunit3/project/lib/asunit/asunit/runner/Version.as +11 -0
  126. data/templates/asproject/asunit3/project/lib/asunit/asunit/textui/FlexRunner.as +19 -0
  127. data/templates/asproject/asunit3/project/lib/asunit/asunit/textui/FlexTestRunner.as +55 -0
  128. data/templates/asproject/asunit3/project/lib/asunit/asunit/textui/ResultPrinter.as +245 -0
  129. data/templates/asproject/asunit3/project/lib/asunit/asunit/textui/TestRunner.as +121 -0
  130. data/templates/asproject/asunit3/project/lib/asunit/asunit/util/ArrayIterator.as +26 -0
  131. data/templates/asproject/asunit3/project/lib/asunit/asunit/util/Iterator.as +9 -0
  132. data/templates/asproject/asunit3/project/lib/asunit/asunit/util/Properties.as +30 -0
  133. data/templates/asproject/asunit3/project/lib/asunit/mx/managers/LayoutManager.as +945 -0
  134. data/templates/asproject/config/project/config/asclass_config.rb +58 -0
  135. data/templates/asproject/fb2as/project/.actionScriptProperties +21 -0
  136. data/templates/asproject/fb2as/project/.project +29 -0
  137. data/templates/asproject/fdt/project/.as2_classpath +6 -0
  138. data/templates/asproject/fdt/project/.project +19 -0
  139. data/templates/ide/mate/Create Class.tmCommand +37 -0
  140. data/templates/ide/mate/Rebuild Test Suites.tmCommand +33 -0
  141. data/templates/ide/mate/Run Rake Task.tmCommand +127 -0
  142. metadata +266 -0
@@ -0,0 +1,24 @@
1
+
2
+ import com.asunit.ui.*;
3
+
4
+ class RemoteVersion extends XML {
5
+ private var callback:Main;
6
+
7
+ public function RemoteVersion(cb:Main) {
8
+ callback = cb;
9
+ init();
10
+ }
11
+
12
+ public function init():Void {
13
+ ignoreWhite = true;
14
+ load("http://www.asunit.com/version.xml?userVersion=" + callback.getVersionNumber());
15
+ }
16
+
17
+ public function onLoad(success:Boolean):Void {
18
+ parseVersion(this.firstChild.firstChild);
19
+ }
20
+
21
+ public function parseVersion(node:XMLNode):Void {
22
+ callback.checkRemoteVersion(node.firstChild.nodeValue);
23
+ }
24
+ }
@@ -0,0 +1,32 @@
1
+
2
+ import com.asunit.ui.*;
3
+
4
+ class SuccessMeter extends MovieClip {
5
+ private var bg_mc:MovieClip;
6
+ private var border_mc:MovieClip;
7
+ private var _hasFailed:Boolean = false;
8
+
9
+ private var successColor:Number = 0xA8E085;
10
+ private var failureColor:Number = 0xDF412B;
11
+
12
+ public function hasFailed():Boolean
13
+ {
14
+ return _hasFailed;
15
+ }
16
+
17
+ public function setSuccess(success:Boolean):Void
18
+ {
19
+ var col:Number = (success) ? successColor : failureColor;
20
+ var bgColor:Color = new Color(bg_mc);
21
+ bgColor.setRGB(col);
22
+ if(!success) {
23
+ _hasFailed = true;
24
+ }
25
+ }
26
+
27
+ public function setSize(w:Number, h:Number):Void
28
+ {
29
+ _width = Math.floor(w);
30
+ _height = Math.floor(h);
31
+ }
32
+ }
@@ -0,0 +1,7 @@
1
+
2
+ import com.asunit.util.*;
3
+
4
+ interface com.asunit.util.Comparable {
5
+ public function equals(obj:Object):Boolean;
6
+ public function toString():String;
7
+ }
@@ -0,0 +1,29 @@
1
+
2
+ // immutable, protected class...
3
+ class com.asunit.util.EventListener extends Object {
4
+ private var source:Object;
5
+ private var event:String;
6
+ private var scope:Object;
7
+ public static var defaultEvent:String = "all"
8
+
9
+ public function EventListener(evnt:String, src:Object, scp:Object) {
10
+ if(src instanceof Function && !(scp instanceof Object)) {
11
+ Sys.println(">> EventListener constructor may cause problems because Function reference passed without appropriate scope argument.");
12
+ }
13
+ source = src;
14
+ scope = scp;
15
+ event = (evnt == undefined || evnt == null) ? EventListener.defaultEvent : evnt;
16
+ }
17
+
18
+ public function getScope():Object {
19
+ return scope;
20
+ }
21
+
22
+ public function getSource():Object {
23
+ return source;
24
+ }
25
+
26
+ public function getEvent():String {
27
+ return event;
28
+ }
29
+ }
@@ -0,0 +1,89 @@
1
+
2
+ import com.asunit.util.*;
3
+
4
+ class com.asunit.util.EventSource implements Observable {
5
+ private var listeners:Array;
6
+
7
+ public function EventSource() {
8
+ listeners = new Array();
9
+ }
10
+
11
+ public function addEventListener(event:String, observer:Object, scope:Object):Void {
12
+ if(typeof(observer) == "string") {
13
+ Sys.println(">> failed to addEventListener because observer argument is type:String.");
14
+ return;
15
+ } else if(event.indexOf(",") > -1) {
16
+ parseMultipleEvents(event, observer, scope);
17
+ return;
18
+ } else if(getListenerIndex(event, observer) > -1) {
19
+ return;
20
+ }
21
+ listeners.push(new EventListener(event, observer, scope));
22
+ }
23
+
24
+ public function removeEventListener(event:String, observer:Object):Boolean {
25
+ var index:Number = getListenerIndex(event, observer);
26
+ var found:Boolean = false;
27
+
28
+ do {
29
+ listeners.splice(index, 1);
30
+ index = getListenerIndex(event, observer);
31
+ found = true;
32
+ } while (index > -1);
33
+ return found;
34
+ }
35
+
36
+ public function addListener(observer:Object, scope:Object):Void {
37
+ if(typeof(observer) == "string") {
38
+ Sys.println(">> attempting to addListener with invalid argument - try addEventListener");
39
+ return;
40
+ }
41
+ addEventListener(EventListener.defaultEvent, observer, scope);
42
+ }
43
+
44
+ public function removeListener(observer:Object):Boolean {
45
+ // Needs updated to remove all instances that have this observer?
46
+ // If no event name identified...
47
+ return removeEventListener(EventListener.defaultEvent, observer);
48
+ }
49
+
50
+ public function getListenerCount():Number {
51
+ return listeners.length;
52
+ }
53
+
54
+ public function getListenerIndex(event:Object, observer:Object):Number {
55
+ for(var i:Number=0; i<listeners.length; i++) {
56
+ if(event == null || event == undefined || event == EventListener.defaultEvent) {
57
+ if(listeners[i].getSource() == observer) {
58
+ return i;
59
+ }
60
+ } else if(listeners[i].getEvent() == event && listeners[i].getSource() == observer) {
61
+ return i;
62
+ }
63
+ }
64
+ return -1;
65
+ }
66
+
67
+ public function parseMultipleEvents(events:Object, observer:Object):Void {
68
+ var evnts:Array = events.split(",");
69
+ var ln:Number = evnts.length;
70
+ for(var i:Number = 0; i < ln; i++) {
71
+ addEventListener(evnts[i], observer);
72
+ }
73
+ }
74
+
75
+ public function broadcastMessage():Void {
76
+ var eventName:Object = arguments.shift();
77
+ var list:Array = listeners;
78
+ var ln:Number = list.length;
79
+ for(var i:Number = 0; i < ln; i++) {
80
+ if(list[i].getEvent() == eventName || list[i].getEvent() == EventListener.defaultEvent) {
81
+ if(list[i].getSource() instanceof Function) {
82
+ list[i].getSource().apply(list[i].getScope(), arguments);
83
+ } else {
84
+ list[i].getSource()[eventName].apply(list[i].getSource(), arguments);
85
+ }
86
+ }
87
+ }
88
+ }
89
+ }
@@ -0,0 +1,42 @@
1
+
2
+ import com.asunit.util.*;
3
+
4
+ dynamic class com.asunit.util.LocalConnClient extends LocalConnection {
5
+
6
+ public var serverId:String;
7
+
8
+ public function LocalConnClient(srvrId:String) {
9
+ init(srvrId);
10
+ }
11
+
12
+ private function init(srvrId:String):Void {
13
+ serverId = srvrId;
14
+ }
15
+
16
+ public function __resolve(fname:String):Function {
17
+ // Execute Any Method Call thru gateway on Server and return results...
18
+ var ref:LocalConnClient = this;
19
+ return Function( function() {
20
+ arguments.unshift(fname);
21
+ arguments.unshift("execResolve");
22
+ arguments.unshift( ref.serverId);
23
+ return ref.execMethod.apply(this, arguments);
24
+ });
25
+ }
26
+
27
+ public function execMethod():Object {
28
+ //send.apply(this, arguments);
29
+ return send.apply(this, arguments);
30
+ }
31
+
32
+ public function onStatus(infoObject:Object):Void {
33
+ // trace("!! Client Local Connection Object.onStatus Called with : ");
34
+ // for(var i in arguments) {
35
+ // trace(i + " : " + arguments[i]);
36
+ // for(var k in arguments[i]) {
37
+ // trace(i + "." + k + " : "+ arguments[i][k]);
38
+ // }
39
+ // }
40
+ }
41
+
42
+ }
@@ -0,0 +1,47 @@
1
+
2
+ import com.asunit.util.*;
3
+
4
+ /************************************************
5
+ ::: LocalConnGateway
6
+
7
+ SERVER EXAMPLE:
8
+ var dp = new RemoteApiClass(); // Like DataProviderClass();
9
+ var srvrId = "SomeUniqueIdentifier";
10
+ this.local = com.framework.util.LocalConnGateway.createServer(dp, srvrId);
11
+
12
+ CLIENT EXAMPLE:
13
+ var srvrId = "SomeUniqueIdentifier"; // matches an existing serverId
14
+ this.remote = com.framework.util.LocalConnGateway.createClient(srvrId);
15
+
16
+ this.res = this.remote.getItemAt(3);
17
+ echo("res : " + this.res.label);
18
+
19
+ ************************************************/
20
+
21
+ class com.asunit.util.LocalConnGateway {
22
+ //private static var existingServers:Array;
23
+ //private static var clientQueue:Array;
24
+
25
+ //------------------------------------------------
26
+ // Factory method for LC Server Instances
27
+ // cb : An Object Instance that whose methods/props will be called
28
+ // by any client classes
29
+ // srvrId : Unique string to identify the LC Server instance
30
+ // NOTE: Any "." found in the serverId will be ripped out...
31
+ // this is done to prevent any potential namespace conflicts...
32
+ public static function createServer(cb:Object, srvrId:String):LocalConnServer
33
+ {
34
+ return new LocalConnServer(cb, srvrId);
35
+ }
36
+
37
+ //------------------------------------------------
38
+ // Factory method for LC Client Instances
39
+ // srvrId : Unique String Matching an existing .createServer instance
40
+ public static function createClient(srvrId:String):LocalConnClient
41
+ {
42
+ return new LocalConnClient(srvrId);
43
+ // was attempting to build a queue so that clients could be created
44
+ // before servers - but *I think* that they already can!!!
45
+ //return getClient(validateId(srvrId));
46
+ }
47
+ }
@@ -0,0 +1,61 @@
1
+
2
+ dynamic class com.asunit.util.LocalConnServer extends LocalConnection {
3
+
4
+ private var controller:Object;
5
+ private var id:String;
6
+ public var status:Boolean;
7
+
8
+ public function LocalConnServer(ctrl:Object, srvrId:String) {
9
+ init(ctrl, srvrId);
10
+ }
11
+
12
+ private function init(ctrl:Object, srvrId:String):Void {
13
+ controller = ctrl;
14
+ id = srvrId;
15
+ status = connect(srvrId);
16
+ }
17
+
18
+ public function getId():String {
19
+ return id;
20
+ }
21
+
22
+ public function close():Void {
23
+ //trace(">> LocalConnServer Closing now from : " + id);
24
+ super.close();
25
+ }
26
+
27
+ public function connect(str:String):Boolean {
28
+ if(super.connect(str)) {
29
+ return true;
30
+ } else {
31
+ trace("!! CONNECT CALL FAILED IN createServer with : " + getId());
32
+ return false;
33
+ }
34
+ }
35
+
36
+ public function allowDomain(domain:String):Boolean {
37
+ // EXTREMELY INSECURE...
38
+ return true;
39
+ }
40
+
41
+ public function allowInsecureDomain(domain:String):Boolean {
42
+ return true;
43
+ }
44
+
45
+ // Used for synchronous communication...
46
+ public function execResolve_sync(method:String):Object {
47
+ arguments.shift();
48
+ return controller[method].apply(controller, arguments);
49
+ }
50
+
51
+ // Used for asynchronous communication...
52
+ public function execResolve( method:String):Void {
53
+ // trace(">> exec resolve called from the window swf with : " + arguments);
54
+ arguments.shift();
55
+ controller[method].apply(controller, arguments);
56
+ }
57
+
58
+ public function onStatus(infoObject:Object):Void {
59
+ trace("!! Server LocalConnonStatus Called with : " + arguments + " id : " + getId());
60
+ }
61
+ }
@@ -0,0 +1,58 @@
1
+
2
+ import com.asunit.util.*;
3
+
4
+ class com.asunit.util.LocalMessageBroker extends Object implements Observable {
5
+ private static var instance:LocalMessageBroker;
6
+ private var msgs:Array;
7
+ private var eventSrc:EventSource;
8
+
9
+ private function LocalMessageBroker() {
10
+ init();
11
+ }
12
+
13
+ private function init():Void {
14
+ msgs = new Array();
15
+ eventSrc = new EventSource();
16
+ }
17
+
18
+ public static function getInstance():LocalMessageBroker {
19
+ if(instance == undefined) {
20
+ instance = new LocalMessageBroker();
21
+ }
22
+ return instance;
23
+ }
24
+
25
+ public function send(msg:String, category:String):String {
26
+ msgs.push({message:msg, category:category});
27
+ eventSrc.broadcastMessage("onMessageSent", {event:"onMessageSent", message:msg, category:category});
28
+ return msg;
29
+ }
30
+
31
+ public function toString():String {
32
+ var str:String = "";
33
+ for(var i:Number = 0; i < msgs.length; i++) {
34
+ str += msgs[i] + "\n";
35
+ }
36
+ return str;
37
+ }
38
+
39
+ // Can accept either an event:String or an event:String[]
40
+ // if the observer wants to subscribe to multiple events.
41
+ public function addEventListener(event:String, observer:Object, scope:Object):Void {
42
+ eventSrc.addEventListener(event, observer, scope);
43
+ }
44
+
45
+ public function addListener(observer:Object, scope:Object):Void {
46
+ eventSrc.addListener(observer, scope);
47
+ }
48
+
49
+ // Should return bool false if handler ref was not found.
50
+ // Should return bool true if handler ref was found
51
+ public function removeEventListener(event:String, observer:Object):Boolean {
52
+ return eventSrc.removeEventListener(event, observer);
53
+ }
54
+
55
+ public function removeListener(observer:Object):Boolean {
56
+ return eventSrc.removeListener(observer);
57
+ }
58
+ }
@@ -0,0 +1,11 @@
1
+
2
+ interface com.asunit.util.Observable {
3
+ // Can accept either an event:String or an event:String[]
4
+ // if the observer wants to subscribe to multiple events.
5
+ public function addEventListener(event:String, observer:Object, scope:Object):Void;
6
+ public function addListener(observer:Object, scope:Object):Void;
7
+ // Should return bool false if handler ref was not found.
8
+ // Should return bool true if handler ref was found
9
+ public function removeEventListener(event:String, observer:Object):Boolean;
10
+ public function removeListener(observer:Object):Boolean;
11
+ }
@@ -0,0 +1,30 @@
1
+
2
+ class com.asunit.util.TextFile extends XML {
3
+ public static var linkageId:String = "com.asunit.util.TextFile";
4
+ public static var classRef:Function = TextFile;
5
+
6
+ private var source:String;
7
+ private var callback:Object;
8
+ private var fileString:String;
9
+
10
+ public function TextFile(src:String, cb:Object) {
11
+ source = src;
12
+ callback = cb;
13
+ ignoreWhite = true;
14
+ onData = doData;
15
+ if(src != undefined) {
16
+ load(source);
17
+ }
18
+ }
19
+
20
+ public function doData(str:String):Void {
21
+ fileString = str;
22
+ callback.onTextFileLoaded(this);
23
+ }
24
+
25
+ public function toString():String {
26
+ return fileString;
27
+ }
28
+
29
+ public static var serializable:Boolean = Object.registerClass(linkageId, classRef);
30
+ }
@@ -0,0 +1,13 @@
1
+ import asunit.textui.TestRunner;
2
+
3
+ class AsUnitTestRunner extends TestRunner {
4
+
5
+ public function AsUnitTestRunner() {
6
+ fscommand("fullscreen", "true");
7
+ start(AllTests);
8
+ }
9
+
10
+ public static function main():Void {
11
+ var runner = new AsUnitTestRunner();
12
+ }
13
+ }