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

Side by Side Diff: tests/lib_strong/async/zone_run_test.dart

Issue 3014593002: Use generic functions in zones. (Closed)
Patch Set: Added changes missing from patch set #2 Created 3 years, 2 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
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 import 'package:expect/expect.dart'; 5 import 'package:expect/expect.dart';
6 import 'package:async_helper/async_helper.dart'; 6 import 'package:async_helper/async_helper.dart';
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 main() { 9 main() {
10 Completer done = new Completer(); 10 Completer done = new Completer();
11 List events = []; 11 List events = [];
12 12
13 bool shouldForward = true; 13 bool shouldForward = true;
14 Expect.identical(Zone.ROOT, Zone.current); 14 Expect.identical(Zone.ROOT, Zone.current);
15 Zone forked = Zone.current.fork(specification: new ZoneSpecification( 15 Zone forked = Zone.current.fork(specification: new ZoneSpecification(
16 run: (Zone self, ZoneDelegate parent, Zone origin, f()) { 16 run: <R>(Zone self, ZoneDelegate parent, Zone origin, R f()) {
17 // The zone is still the same as when origin.run was invoked, which 17 // The zone is still the same as when origin.run was invoked, which
18 // is the root zone. (The origin zone hasn't been set yet). 18 // is the root zone. (The origin zone hasn't been set yet).
19 Expect.identical(Zone.ROOT, Zone.current); 19 Expect.identical(Zone.ROOT, Zone.current);
20 events.add("forked.run"); 20 events.add("forked.run");
21 if (shouldForward) return parent.run(origin, f); 21 if (shouldForward) return parent.run(origin, f);
22 return 42; 22 return 42 as R;
23 })); 23 }));
24 24
25 events.add("zone forked"); 25 events.add("zone forked");
26 Zone expectedZone = forked; 26 Zone expectedZone = forked;
27 var result = forked.run(() { 27 var result = forked.run(() {
28 Expect.identical(expectedZone, Zone.current); 28 Expect.identical(expectedZone, Zone.current);
29 events.add("run closure"); 29 events.add("run closure");
30 return 499; 30 return 499;
31 }); 31 });
32 Expect.equals(499, result); 32 Expect.equals(499, result);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 }); 85 });
86 }); 86 });
87 zone3.run(() { 87 zone3.run(() {
88 future.then((_) { 88 future.then((_) {
89 Expect.identical(zone3, Zone.current); 89 Expect.identical(zone3, Zone.current);
90 asyncEnd(); 90 asyncEnd();
91 }); 91 });
92 }); 92 });
93 }); 93 });
94 } 94 }
OLDNEW
« no previous file with comments | « tests/lib_strong/async/zone_run_guarded_test.dart ('k') | tests/lib_strong/async/zone_run_unary_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698