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

Side by Side Diff: samples/tests/samples/src/chat/ChatServerTest.dart

Issue 8776001: Fix HTTP sample implementation to actually wait for connections before attempting to write. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 9 years 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) 2011, the Dart project authors. Please see the AUTHORS file 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 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 // VMOptions= 5 // VMOptions=
6 // VMOptions=--short_socket_read 6 // VMOptions=--short_socket_read
7 // VMOptions=--short_socket_write 7 // VMOptions=--short_socket_write
8 // VMOptions=--short_socket_read --short_socket_write 8 // VMOptions=--short_socket_read --short_socket_write
9 9
10 10
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 var responseData = JSON.parse(data); 58 var responseData = JSON.parse(data);
59 Expect.equals("leave", responseData["response"]); 59 Expect.equals("leave", responseData["response"]);
60 60
61 // Test done. 61 // Test done.
62 statusPort.send("Test succeeded", null); 62 statusPort.send("Test succeeded", null);
63 } 63 }
64 64
65 Map messageRequest = new Map(); 65 Map messageRequest = new Map();
66 messageRequest["request"] = "leave"; 66 messageRequest["request"] = "leave";
67 messageRequest["sessionId"] = sessionId; 67 messageRequest["sessionId"] = sessionId;
68 request = httpClient.open("POST", "127.0.0.1", port, "/leave"); 68 httpClient.openHandler = (HTTPClientRequest request) {
69 request.writeString(JSON.stringify(messageRequest)); 69 print('leave');
70 request.responseReceived = 70 request.writeString(JSON.stringify(messageRequest));
71 void _(HTTPClientResponse r) { 71 request.writeDone();
72 response = r; 72 request.responseReceived = (HTTPClientResponse r) {
73 response.dataEnd = leaveResponseHandler; 73 print('leave response');
74 }; 74 response = r;
75 request.writeDone(); 75 response.dataEnd = leaveResponseHandler;
76 };
77 };
78 httpClient.open("POST", "127.0.0.1", port, "/leave");
76 } 79 }
77 80
78 void receive() { 81 void receive() {
79 HTTPClientRequest request; 82 HTTPClientRequest request;
80 HTTPClientResponse response; 83 HTTPClientResponse response;
81 84
82 void receiveResponseHandler(String data) { 85 void receiveResponseHandler(String data) {
83 Expect.equals(HTTPStatus.OK, response.statusCode); 86 Expect.equals(HTTPStatus.OK, response.statusCode);
84 var responseData = JSON.parse(data); 87 var responseData = JSON.parse(data);
85 Expect.equals("receive", responseData["response"]); 88 Expect.equals("receive", responseData["response"]);
(...skipping 28 matching lines...) Expand all
114 Expect.equals(messagesToReceive, messageCount); 117 Expect.equals(messagesToReceive, messageCount);
115 Expect.equals(totalClients, joinCount); 118 Expect.equals(totalClients, joinCount);
116 leave(); 119 leave();
117 } 120 }
118 } 121 }
119 122
120 Map messageRequest = new Map(); 123 Map messageRequest = new Map();
121 messageRequest["request"] = "receive"; 124 messageRequest["request"] = "receive";
122 messageRequest["sessionId"] = sessionId; 125 messageRequest["sessionId"] = sessionId;
123 messageRequest["nextMessage"] = receiveMessageNumber; 126 messageRequest["nextMessage"] = receiveMessageNumber;
124 request = httpClient.open("POST", "127.0.0.1", port, "/receive"); 127 httpClient.openHandler = (HTTPClientRequest request) {
125 request.writeString(JSON.stringify(messageRequest)); 128 print('receive');
126 request.responseReceived = 129 request.writeString(JSON.stringify(messageRequest));
127 void _(HTTPClientResponse r) { 130 request.writeDone();
128 response = r; 131 request.responseReceived = (HTTPClientResponse r) {
129 response.dataEnd = receiveResponseHandler; 132 print('receive response');
130 }; 133 response = r;
131 request.writeDone(); 134 response.dataEnd = receiveResponseHandler;
135 };
136 };
137 httpClient.open("POST", "127.0.0.1", port, "/receive");
132 } 138 }
133 139
134 void sendMessage() { 140 void sendMessage() {
135 HTTPClientRequest request; 141 HTTPClientRequest request;
136 HTTPClientResponse response; 142 HTTPClientResponse response;
137 143
138 void sendResponseHandler(String data) { 144 void sendResponseHandler(String data) {
139 Expect.equals(HTTPStatus.OK, response.statusCode); 145 Expect.equals(HTTPStatus.OK, response.statusCode);
140 var responseData = JSON.parse(data); 146 var responseData = JSON.parse(data);
141 Expect.equals("message", responseData["response"]); 147 Expect.equals("message", responseData["response"]);
142 sendMessageNumber++; 148 sendMessageNumber++;
143 if (sendMessageNumber < messagesToSend) { 149 if (sendMessageNumber < messagesToSend) {
144 sendMessage(); 150 sendMessage();
145 } else { 151 } else {
146 receive(); 152 receive();
147 } 153 }
148 } 154 }
149 155
150 Map messageRequest = new Map(); 156 Map messageRequest = new Map();
151 messageRequest["request"] = "message"; 157 messageRequest["request"] = "message";
152 messageRequest["sessionId"] = sessionId; 158 messageRequest["sessionId"] = sessionId;
153 messageRequest["message"] = "message " + sendMessageNumber; 159 messageRequest["message"] = "message " + sendMessageNumber;
154 request = httpClient.open("POST", "127.0.0.1", port, "/message"); 160 httpClient.openHandler = (HTTPClientRequest request) {
155 request.writeString(JSON.stringify(messageRequest)); 161 print('message');
156 request.responseReceived = 162 request.writeString(JSON.stringify(messageRequest));
157 void _(HTTPClientResponse r) { 163 request.writeDone();
158 response = r; 164 request.responseReceived = (HTTPClientResponse r) {
159 response.dataEnd = sendResponseHandler; 165 print('message response');
160 }; 166 response = r;
161 request.writeDone(); 167 response.dataEnd = sendResponseHandler;
168 };
169 };
170 httpClient.open("POST", "127.0.0.1", port, "/message");
162 } 171 }
163 172
164 void join() { 173 void join() {
165 HTTPClientRequest request; 174 HTTPClientRequest request;
166 HTTPClientResponse response; 175 HTTPClientResponse response;
167 176
168 void joinResponseHandler(String data) { 177 void joinResponseHandler(String data) {
169 Expect.equals(HTTPStatus.OK, response.statusCode); 178 Expect.equals(HTTPStatus.OK, response.statusCode);
170 var responseData = JSON.parse(data); 179 var responseData = JSON.parse(data);
171 Expect.equals("join", responseData["response"]); 180 Expect.equals("join", responseData["response"]);
172 sessionId = responseData["sessionId"]; 181 sessionId = responseData["sessionId"];
173 Expect.isTrue(sessionId != null); 182 Expect.isTrue(sessionId != null);
174 183
175 joinCount = 0; 184 joinCount = 0;
176 messageCount = 0; 185 messageCount = 0;
177 sendMessageNumber = 0; 186 sendMessageNumber = 0;
178 receiveMessageNumber = 0; 187 receiveMessageNumber = 0;
179 sendMessage(); 188 sendMessage();
180 } 189 }
181 190
182 Map joinRequest = new Map(); 191 Map joinRequest = new Map();
183 joinRequest["request"] = "join"; 192 joinRequest["request"] = "join";
184 joinRequest["handle"] = "test1"; 193 joinRequest["handle"] = "test1";
185 request = httpClient.open("POST", "127.0.0.1", port, "/join"); 194 httpClient.openHandler = (HTTPClientRequest request) {
186 request.writeString(JSON.stringify(joinRequest)); 195 print("join");
187 request.responseReceived = 196 request.writeString(JSON.stringify(joinRequest));
188 void _(HTTPClientResponse r) { 197 request.writeDone();
189 response = r; 198 request.responseReceived = (HTTPClientResponse r) {
190 response.dataEnd = joinResponseHandler; 199 print("join response");
191 }; 200 response = r;
192 request.writeDone(); 201 response.dataEnd = joinResponseHandler;
202 };
203 };
204 print('opening for join');
205 httpClient.open("POST", "127.0.0.1", port, "/join");
193 } 206 }
194 207
195 this.port.receive( 208 this.port.receive(
196 void _(var message, SendPort replyTo) { 209 void _(var message, SendPort replyTo) {
197 totalClients = message.totalClients; 210 totalClients = message.totalClients;
198 messagesToSend = message.messagesToSend; 211 messagesToSend = message.messagesToSend;
199 messagesToReceive = message.messagesToReceive; 212 messagesToReceive = message.messagesToReceive;
200 port = message.port; 213 port = message.port;
201 statusPort = replyTo; 214 statusPort = replyTo;
202 215
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 TestMain testMain = new TestMain.start(10, 2); 327 TestMain testMain = new TestMain.start(10, 2);
315 } 328 }
316 329
317 330
318 void main() { 331 void main() {
319 testOneClient(); 332 testOneClient();
320 testTwoClients(); 333 testTwoClients();
321 testTwoClientsMoreMessages; 334 testTwoClientsMoreMessages;
322 testTenClients(); 335 testTenClients();
323 } 336 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698