OLD | NEW |
---|---|
1 library dromaeo_test; | |
2 | |
1 import 'dart:html'; | 3 import 'dart:html'; |
2 import 'dart:json' as json; | 4 import 'dart:json' as json; |
3 import 'dart:math' as Math; | 5 import 'dart:math' as Math; |
4 import 'Suites.dart'; | 6 import 'Suites.dart'; |
5 | 7 |
6 main() { | 8 main() { |
7 new Dromaeo().run(); | 9 new Dromaeo().run(); |
8 } | 10 } |
9 | 11 |
10 class SuiteController { | 12 class SuiteController { |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
91 Dromaeo() | 93 Dromaeo() |
92 : _suiteControllers = new List<SuiteController>() | 94 : _suiteControllers = new List<SuiteController>() |
93 { | 95 { |
94 _handler = _createHandler(); | 96 _handler = _createHandler(); |
95 window.on.message.add( | 97 window.on.message.add( |
96 (MessageEvent event) { | 98 (MessageEvent event) { |
97 try { | 99 try { |
98 final response = json.parse(event.data); | 100 final response = json.parse(event.data); |
99 _handler = _handler(response['command'], response['data']); | 101 _handler = _handler(response['command'], response['data']); |
100 } catch (e, stacktrace) { | 102 } catch (e, stacktrace) { |
101 window.alert('Exception: ${e}: ${stacktrace}'); | 103 if (!(e is FormatException && |
Emily Fortuna
2013/01/30 01:15:56
The fact that this was an alert window causes issu
| |
104 (event.data.toString().startsWith('unittest') || | |
105 event.data.toString().startsWith('dart')))) { | |
106 // Hack because unittest also uses post messages to communicate. | |
107 // So the fact that the event.data is not proper json is not | |
108 // always an error. | |
109 print('Exception: ${e}: ${stacktrace}'); | |
110 print(event.data); | |
111 } | |
102 } | 112 } |
103 }, | 113 }, |
104 false | 114 false |
105 ); | 115 ); |
106 } | 116 } |
107 | 117 |
108 run() { | 118 run() { |
109 // TODO(vsm): Initial page should not run. For now, run all | 119 // TODO(vsm): Initial page should not run. For now, run all |
110 // tests by default. | 120 // tests by default. |
111 final splitUrl = window.location.href.split('?'); | 121 var tags = window.location.search; |
112 var tags; | 122 if (tags.length > 1) { |
113 if (splitUrl.length > 1) { | 123 tags = tags.substring(1); |
114 tags = splitUrl[1]; | |
115 } else if (window.navigator.userAgent.contains('(Dart)')) { | 124 } else if (window.navigator.userAgent.contains('(Dart)')) { |
116 // TODO(vsm): Update when we change Dart VM detection. | 125 // TODO(vsm): Update when we change Dart VM detection. |
117 tags = 'js|dart&html'; | 126 tags = 'js|dart&html'; |
118 } else { | 127 } else { |
119 tags = 'js|dart2js&html'; | 128 tags = 'js|dart2js&html'; |
120 } | 129 } |
121 | 130 |
122 // TODO(antonm): create Re-run tests href. | 131 // TODO(antonm): create Re-run tests href. |
123 final Element suiteNameElement = _byId('overview').nodes[0]; | 132 final Element suiteNameElement = _byId('overview').nodes[0]; |
124 final category = Suites.getCategory(tags); | 133 final category = Suites.getCategory(tags); |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
213 } | 222 } |
214 | 223 |
215 Element _byId(String id) { | 224 Element _byId(String id) { |
216 return document.query('#$id'); | 225 return document.query('#$id'); |
217 } | 226 } |
218 | 227 |
219 int get _suitesTotal { | 228 int get _suitesTotal { |
220 return _suiteControllers.length; | 229 return _suiteControllers.length; |
221 } | 230 } |
222 } | 231 } |
OLD | NEW |