Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(116)

Side by Side Diff: tests/html/js_interop_1_test.dart

Issue 12040059: Converting tests over to using event streams. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 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 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 3 // BSD-style license that can be found in the LICENSE file
4 4
5 library JsInterop1Test; 5 library JsInterop1Test;
6 import '../../pkg/unittest/lib/unittest.dart'; 6 import '../../pkg/unittest/lib/unittest.dart';
7 import '../../pkg/unittest/lib/html_config.dart'; 7 import '../../pkg/unittest/lib/html_config.dart';
8 import 'dart:html'; 8 import 'dart:html';
9 9
10 injectSource(code) { 10 injectSource(code) {
11 final script = new ScriptElement(); 11 final script = new ScriptElement();
12 script.type = 'text/javascript'; 12 script.type = 'text/javascript';
13 script.innerHtml = code; 13 script.innerHtml = code;
14 document.body.nodes.add(script); 14 document.body.nodes.add(script);
15 } 15 }
16 16
17 main() { 17 main() {
18 useHtmlConfiguration(); 18 useHtmlConfiguration();
19 var callback; 19 var callback;
20 20
21 test('js-to-dart-post-message', () { 21 test('js-to-dart-post-message', () {
22 var onSuccess = expectAsync1((e) { 22 var subscription = null;
23 window.on.message.remove(callback); 23 var complete = false;
24 }); 24 subscription = window.onMessage.listen(expectAsyncUntil1(
25 callback = (e) { 25 (e) {
26 if (e.data == 'hello') { 26 if (e.data == 'hello') {
27 onSuccess(e); 27 subscription.cancel();
28 } 28 complete = true;
29 }; 29 }
30 window.on.message.add(callback); 30 },
31 () => complete));
31 injectSource("window.postMessage('hello', '*');"); 32 injectSource("window.postMessage('hello', '*');");
32 }); 33 });
33 } 34 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698