OLD | NEW |
---|---|
(Empty) | |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | |
2 // for details. All rights reserved. Use of this source code is governed by a | |
3 // BSD-style license that can be found in the LICENSE file | |
4 | |
5 #library('JsInterop3Test'); | |
6 #import('../../lib/unittest/unittest.dart'); | |
7 #import('../../lib/unittest/html_config.dart'); | |
8 #import('dart:html'); | |
9 #import('dart:isolate'); | |
10 | |
11 injectSource(code) { | |
12 final script = new ScriptElement(); | |
13 script.type = 'text/javascript'; | |
14 script.innerHTML = code; | |
15 document.body.nodes.add(script); | |
16 } | |
17 | |
18 var jsToDart = """ | |
19 var fun1 = window.lookupPort('fun1'); | |
20 var result = fun1.callSync({'a': 'Hello', 'b': 'World', c: 42}); | |
21 | |
22 var fun2 = window.lookupPort('fun2'); | |
23 fun2.callSync(result); | |
24 """; | |
25 | |
26 main() { | |
27 useHtmlConfiguration(); | |
28 | |
29 test('js-to-dart', () { | |
kasperl
2012/07/06 07:48:47
Should we update the description string used in th
| |
30 var done = expectAsync0(() {}); | |
kasperl
2012/07/06 07:48:47
Maybe move this closer to where it is used? It fee
| |
31 | |
32 var fun1 = (message) { | |
33 Expect.equals('Hello', message['a']); | |
34 Expect.equals('World', message['b']); | |
35 Expect.equals(42, message['c']); | |
36 Expect.equals(3, message.getKeys().length); | |
37 return 42; | |
38 }; | |
39 | |
40 var port1 = new ReceivePortSync(); | |
41 port1.receive(fun1); | |
42 window.registerPort('fun1', port1.toSendPort()); | |
43 | |
44 var fun2 = (message) { | |
45 Expect.equals(42, message); | |
46 | |
47 // TODO(vsm): Investigate why this needs to be called asynchronously. | |
48 window.setTimeout(done, 0); | |
49 }; | |
50 | |
51 var port2 = new ReceivePortSync(); | |
52 port2.receive(fun2); | |
53 window.registerPort('fun2', port2.toSendPort()); | |
54 | |
55 injectSource(jsToDart); | |
56 }); | |
57 } | |
OLD | NEW |