OLD | NEW |
1 import 'dart:isolate'; | 1 import 'dart:isolate'; |
2 import 'dart:async'; | 2 import 'dart:async'; |
3 import 'package:unittest/unittest.dart'; | 3 import 'package:unittest/unittest.dart'; |
4 | 4 |
5 @a import 'deferred_in_isolate_lib.dart' as lib1; | 5 @a import 'deferred_in_isolate_lib.dart' as lib1; |
6 @b import 'deferred_api_library.dart' as lib2; | 6 @b import 'deferred_library.dart' as lib2; |
7 | 7 |
8 const a = const DeferredLibrary("lib1"); | 8 const a = const DeferredLibrary("lib1"); |
9 const b = const DeferredLibrary("NonExistingFile", uri: "wrong/"); | 9 const b = const DeferredLibrary("NonExistingFile", uri: "wrong/"); |
10 | 10 |
11 loadDeferred(ports) { | 11 loadDeferred(ports) { |
12 a.load().then((_) { | 12 a.load().then((_) { |
13 ports[0].send(lib1.f()); | 13 ports[0].send(lib1.f()); |
14 }); | 14 }); |
15 b.load().then((b) { | 15 b.load().then((b) { |
16 ports[1].send("No error"); | 16 ports[1].send("No error"); |
17 lib2.foo(20); | 17 lib2.foo(20); |
18 }).catchError((_) { | 18 }).catchError((_) { |
19 ports[1].send("Error caught"); | 19 ports[1].send("Error caught"); |
20 }, test: (e) => e is DeferredLoadException); | 20 }, test: (e) => e is DeferredLoadException); |
21 } | 21 } |
22 | 22 |
23 main() { | 23 main() { |
24 test("Deferred loading in isolate", () { | 24 test("Deferred loading in isolate", () { |
25 List<ReceivePort> ports = new List.generate(2, (_) => new ReceivePort()); | 25 List<ReceivePort> ports = new List.generate(2, (_) => new ReceivePort()); |
26 ports[0].first.then(expectAsync((msg) { | 26 ports[0].first.then(expectAsync((msg) { |
27 expect(msg, equals("hi")); | 27 expect(msg, equals("hi")); |
28 })); | 28 })); |
29 ports[1].first.then(expectAsync((msg) { | 29 ports[1].first.then(expectAsync((msg) { |
30 expect(msg, equals("Error caught")); | 30 expect(msg, equals("Error caught")); |
31 })); | 31 })); |
32 Isolate.spawn(loadDeferred, ports.map((p) => p.sendPort).toList()); | 32 Isolate.spawn(loadDeferred, ports.map((p) => p.sendPort).toList()); |
33 }); | 33 }); |
34 } | 34 } |
OLD | NEW |