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

Side by Side Diff: test/codegen/lib/html/isolates_test.dart

Issue 1930043002: Add all dart:html tests from the sdk to test/codegen. (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: ptal Created 4 years, 7 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
OLDNEW
(Empty)
1 library IsolatesTest;
2 import 'package:unittest/unittest.dart';
3 import 'package:unittest/html_config.dart';
4 import 'dart:async';
5 import 'dart:html';
6 import 'dart:convert';
7 import 'dart:isolate' as isolate;
8
9 String responseFor(message) => 'response for $message';
10
11 void isolateEntry(isolate.SendPort initialReplyTo) {
12 var port = new isolate.ReceivePort();
13 initialReplyTo.send(port.sendPort);
14
15 bool wasThrown = false;
16 try {
17 window.alert('Test');
18 } catch (e) {
19 wasThrown = true;
20 }
21 // If wasn't thrown, do not listen to messages to make test fail.
22 if (!wasThrown) {
23 return;
24 }
25
26 // Check that convert library was loaded to isolate.
27 JSON.encode([1, 2, 3]);
28
29 port.listen((message) {
30 var data = message[0];
31 var replyTo = message[1];
32 replyTo.send(responseFor(data));
33 });
34 }
35
36 Future sendReceive(isolate.SendPort port, msg) {
37 var response = new isolate.ReceivePort();
38 port.send([msg, response.sendPort]);
39 return response.first;
40 }
41
42 main() {
43 useHtmlConfiguration();
44 test('IsolateSpawn', () {
45 var port = new isolate.ReceivePort();
46 isolate.Isolate.spawn(isolateEntry, port.sendPort);
47 port.close();
48 });
49 test('NonDOMIsolates', () {
50 var callback = expectAsync((){});
51 var response = new isolate.ReceivePort();
52 var remote = isolate.Isolate.spawn(isolateEntry, response.sendPort);
53 response.first.then((port) {
54 final msg1 = 'foo';
55 final msg2 = 'bar';
56 sendReceive(port, msg1).then((response) {
57 expect(response, equals(responseFor(msg1)));
58 sendReceive(port, msg2).then((response) {
59 expect(response, equals(responseFor(msg2)));
60 callback();
61 });
62 });
63 });
64 });
65 }
OLDNEW
« no previous file with comments | « test/codegen/lib/html/interactive_test.dart ('k') | test/codegen/lib/html/js_function_getter_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698