Index: client/tests/client/dom/IsolateLight.dart |
diff --git a/client/tests/client/dom/IsolateLight.dart b/client/tests/client/dom/IsolateLight.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ee155f1d8e9e5749933e3500c27448c91b03dfd0 |
--- /dev/null |
+++ b/client/tests/client/dom/IsolateLight.dart |
@@ -0,0 +1,39 @@ |
+#library('IsolateLight'); |
+#import('../../../testing/unittest/unittest.dart'); |
+#import('dart:dom'); |
+#import('dart:json'); |
+ |
+var _isolateId; |
+ |
+class TestIsolate extends Isolate { |
+ TestIsolate() : super.light(); |
+ |
+ void main() { |
+ _isolateId = 1; |
+ final div = document.getElementById('testid'); |
+ |
+ // These events fire in the main isolate. Note, dispatchEvent is |
+ // handled synchronously. |
+ Event event = document.createEvent('Event'); |
+ event.initEvent('test', true, false); |
+ div.dispatchEvent(event); |
+ |
+ Expect.equals(1, _isolateId); |
+ event = document.createEvent('Event'); |
+ event.initEvent('done', true, false); |
+ div.dispatchEvent(event); |
+ } |
+} |
+ |
+main() { |
+ _isolateId = 0; |
+ |
+ asyncTest('IsolatedStatic', 1, () { |
+ final div = document.createElement('div'); |
+ div.id = 'testid'; |
+ document.body.appendChild(div); |
+ div.addEventListener('test', (e) => Expect.equals(0, _isolateId), false); |
+ div.addEventListener('done', (e) => callbackDone(), false); |
+ new TestIsolate().spawn(); |
+ }); |
+} |