| OLD | NEW |
| (Empty) |
| 1 #library('DOMIsolatesTest'); | |
| 2 #import('../../lib/unittest/unittest.dart'); | |
| 3 #import('../../lib/unittest/html_config.dart'); | |
| 4 #import('dart:html'); | |
| 5 #import('dart:isolate'); | |
| 6 | |
| 7 isolateMain(port) { | |
| 8 port.receive((msg, replyTo) { | |
| 9 if (msg != 'check') { | |
| 10 replyTo.send('wrong msg: $msg'); | |
| 11 } | |
| 12 replyTo.send(window.location.toString()); | |
| 13 port.close(); | |
| 14 }); | |
| 15 } | |
| 16 | |
| 17 isolateMainTrampoline(port) { | |
| 18 final childPortFuture = spawnDomIsolate(window, 'isolateMain'); | |
| 19 port.receive((msg, parentPort) { | |
| 20 childPortFuture.then((childPort) { | |
| 21 childPort.call(msg).then((response) { | |
| 22 parentPort.send(response); | |
| 23 port.close(); | |
| 24 }); | |
| 25 }); | |
| 26 }); | |
| 27 } | |
| 28 | |
| 29 main() { | |
| 30 useHtmlConfiguration(); | |
| 31 | |
| 32 final iframe = new Element.tag('iframe'); | |
| 33 document.body.nodes.add(iframe); | |
| 34 | |
| 35 asyncTest('Simple DOM isolate test', 1, () { | |
| 36 spawnDomIsolate(iframe.contentWindow, 'isolateMain').then((sendPort) { | |
| 37 sendPort.call('check').then((msg) { | |
| 38 Expect.equals('about:blank', msg); | |
| 39 callbackDone(); | |
| 40 }); | |
| 41 }); | |
| 42 }); | |
| 43 | |
| 44 asyncTest('Nested DOM isolates test', 1, () { | |
| 45 spawnDomIsolate(iframe.contentWindow, 'isolateMainTrampoline').then((sendPor
t) { | |
| 46 sendPort.call('check').then((msg) { | |
| 47 Expect.equals('about:blank', msg); | |
| 48 callbackDone(); | |
| 49 }); | |
| 50 }); | |
| 51 }); | |
| 52 | |
| 53 test('Null as target window', () { | |
| 54 expectThrow(() => spawnDomIsolate(null, 'isolateMain')); | |
| 55 }); | |
| 56 | |
| 57 test('Not window as target window', () { | |
| 58 expectThrow(() => spawnDomIsolate(document, 'isolateMain')); | |
| 59 }); | |
| 60 } | |
| OLD | NEW |