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

Side by Side Diff: tests/isolate/src/Message2Test.dart

Issue 10247004: test rename overhaul: step 6 - isolate tests (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 8 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
(Empty)
1 // Copyright (c) 2011, 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 // Dart test program for testing serialization of messages.
6 // VMOptions=--enable_type_checks --enable_asserts
7
8 #library('Message2Test');
9 #import("dart:isolate");
10
11 #import('../../../lib/unittest/unittest.dart');
12
13 // ---------------------------------------------------------------------------
14 // Message passing test 2.
15 // ---------------------------------------------------------------------------
16
17 class MessageTest {
18 static void mapEqualsDeep(Map expected, Map actual) {
19 Expect.equals(true, expected is Map);
20 Expect.equals(true, actual is Map);
21 Expect.equals(expected.length, actual.length);
22 testForEachMap(key, value) {
23 if (value is List) {
24 listEqualsDeep(value, actual[key]);
25 } else {
26 Expect.equals(value, actual[key]);
27 }
28 }
29 expected.forEach(testForEachMap);
30 }
31
32 static void listEqualsDeep(List expected, List actual) {
33 for (int i = 0; i < expected.length; i++) {
34 if (expected[i] is List) {
35 listEqualsDeep(expected[i], actual[i]);
36 } else if (expected[i] is Map) {
37 mapEqualsDeep(expected[i], actual[i]);
38 } else {
39 Expect.equals(expected[i], actual[i]);
40 }
41 }
42 }
43 }
44
45 class PingPongServer extends Isolate {
46 PingPongServer() : super.heavy();
47
48 void main() {
49 this.port.receive((var message, SendPort replyTo) {
50 if (message == -1) {
51 this.port.close();
52 } else {
53 // Bounce the received object back so that the sender
54 // can make sure that the object matches.
55 replyTo.send(message, null);
56 }
57 });
58 }
59 }
60
61 main() {
62 test("map is equal after it is sent back and forth", () {
63 new PingPongServer().spawn().then(expectAsync1((SendPort remote) {
64 Map m = new Map();
65 m[1] = "eins";
66 m[2] = "deux";
67 m[3] = "tre";
68 m[4] = "four";
69 remote.call(m).then(expectAsync1((var received) {
70 MessageTest.mapEqualsDeep(m, received);
71 remote.send(-1, null);
72 }));
73 }));
74 });
75 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698