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

Unified Diff: samples/tests/samples/chat/chat_server_test.dart

Issue 10837070: Remove old isolate API and update all code in the repository to use (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address review comments. Created 8 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « samples/dartcombat/state.dart ('k') | tests/co19/co19-compiler.status » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: samples/tests/samples/chat/chat_server_test.dart
diff --git a/samples/tests/samples/chat/chat_server_test.dart b/samples/tests/samples/chat/chat_server_test.dart
index 6caeb6f700c87e583d31405283c49daf0d26b9f0..d8b95c772207db44351c9515a3b55a629a1867e6 100644
--- a/samples/tests/samples/chat/chat_server_test.dart
+++ b/samples/tests/samples/chat/chat_server_test.dart
@@ -26,201 +26,204 @@ class ChatTestClientStart {
}
+void startChatTestClient() {
+ var client = new ChatTestClient();
+ port.receive(client.dispatch);
+}
+
+
// Chat server test client for running in a separate isolate. When
// this test client is started it will join the chat topic, send a
// number of messages, receive the expected number of messages and
// leave the topic.
-class ChatTestClient extends Isolate {
- void main() {
-
- SendPort statusPort; // Port to reply to when test has finished.
- HttpClient httpClient; // HTTP client connection factory.
-
- int totalClients; // Total number of clients in the test.
- int messagesToSend; // Number of messages to send.
- int messagesToReceive; // Numbe rof messages expected to be received.
- int port; // TCP/IP port for server.
-
- String sessionId; // Session id when connected.
- int sendMessageNumber; // Number of messages sent.
- int joinCount;
- int messageCount;
- int receiveMessageNumber; // Number of messages received.
-
- void leave() {
- HttpClientRequest request;
- HttpClientResponse response;
-
- void leaveResponseHandler(String data) {
- Expect.equals(HttpStatus.OK, response.statusCode);
- var responseData = JSON.parse(data);
- Expect.equals("leave", responseData["response"]);
-
- // Test done.
- statusPort.send("Test succeeded", null);
- }
-
- Map leaveRequest = new Map();
- leaveRequest["request"] = "leave";
- leaveRequest["sessionId"] = sessionId;
- HttpClientConnection conn = httpClient.post("127.0.0.1", port, "/leave");
- conn.onRequest = (HttpClientRequest request) {
- request.outputStream.writeString(JSON.stringify(leaveRequest));
- request.outputStream.close();
- };
- conn.onResponse = (HttpClientResponse r) {
- response = r;
- StringInputStream stream = new StringInputStream(response.inputStream);
- StringBuffer body = new StringBuffer();
- stream.onData = () => body.add(stream.read());
- stream.onClosed = () => leaveResponseHandler(body.toString());
- };
+class ChatTestClient {
+ SendPort statusPort; // Port to reply to when test has finished.
+ HttpClient httpClient; // HTTP client connection factory.
+
+ int totalClients; // Total number of clients in the test.
+ int messagesToSend; // Number of messages to send.
+ int messagesToReceive; // Numbe rof messages expected to be received.
+ int port; // TCP/IP port for server.
+
+ String sessionId; // Session id when connected.
+ int sendMessageNumber; // Number of messages sent.
+ int joinCount;
+ int messageCount;
+ int receiveMessageNumber; // Number of messages received.
+
+ void leave() {
+ HttpClientRequest request;
+ HttpClientResponse response;
+
+ void leaveResponseHandler(String data) {
+ Expect.equals(HttpStatus.OK, response.statusCode);
+ var responseData = JSON.parse(data);
+ Expect.equals("leave", responseData["response"]);
+
+ // Test done.
+ statusPort.send("Test succeeded", null);
}
- void receive() {
- HttpClientRequest request;
- HttpClientResponse response;
-
- void receiveResponseHandler(String data) {
- Expect.equals(HttpStatus.OK, response.statusCode);
- var responseData = JSON.parse(data);
- Expect.equals("receive", responseData["response"]);
- Expect.equals(null, responseData["disconnect"]);
- for (int i = 0; i < responseData["messages"].length; i++) {
- Map message = responseData["messages"][i];
- if (message["type"] == "join") {
- joinCount++;
- } else if (message["type"] == "message") {
- messageCount++;
- } else {
- Expect.equals("leave", message["type"]);
- }
- if (totalClients == 1) {
- // Test the exact messages when this is the only client.
- Expect.equals(messagesToSend + 1, responseData["messages"].length);
- Expect.equals(i, message["number"]);
- if (i == 0) {
- Expect.equals("join", message["type"]);
- } else {
- Expect.equals("message", message["type"]);
- Expect.equals("message ${i - 1}", message["message"]);
- }
- }
- receiveMessageNumber = message["number"] + 1;
- }
+ Map leaveRequest = new Map();
+ leaveRequest["request"] = "leave";
+ leaveRequest["sessionId"] = sessionId;
+ HttpClientConnection conn = httpClient.post("127.0.0.1", port, "/leave");
+ conn.onRequest = (HttpClientRequest request) {
+ request.outputStream.writeString(JSON.stringify(leaveRequest));
+ request.outputStream.close();
+ };
+ conn.onResponse = (HttpClientResponse r) {
+ response = r;
+ StringInputStream stream = new StringInputStream(response.inputStream);
+ StringBuffer body = new StringBuffer();
+ stream.onData = () => body.add(stream.read());
+ stream.onClosed = () => leaveResponseHandler(body.toString());
+ };
+ }
- // Receive all expected messages then leave.
- if (messageCount < messagesToReceive) {
- receive();
+ void receive() {
+ HttpClientRequest request;
+ HttpClientResponse response;
+
+ void receiveResponseHandler(String data) {
+ Expect.equals(HttpStatus.OK, response.statusCode);
+ var responseData = JSON.parse(data);
+ Expect.equals("receive", responseData["response"]);
+ Expect.equals(null, responseData["disconnect"]);
+ for (int i = 0; i < responseData["messages"].length; i++) {
+ Map message = responseData["messages"][i];
+ if (message["type"] == "join") {
+ joinCount++;
+ } else if (message["type"] == "message") {
+ messageCount++;
} else {
- Expect.equals(messagesToReceive, messageCount);
- Expect.equals(totalClients, joinCount);
- leave();
+ Expect.equals("leave", message["type"]);
}
+ if (totalClients == 1) {
+ // Test the exact messages when this is the only client.
+ Expect.equals(messagesToSend + 1, responseData["messages"].length);
+ Expect.equals(i, message["number"]);
+ if (i == 0) {
+ Expect.equals("join", message["type"]);
+ } else {
+ Expect.equals("message", message["type"]);
+ Expect.equals("message ${i - 1}", message["message"]);
+ }
+ }
+ receiveMessageNumber = message["number"] + 1;
}
- Map receiveRequest = new Map();
- receiveRequest["request"] = "receive";
- receiveRequest["sessionId"] = sessionId;
- receiveRequest["nextMessage"] = receiveMessageNumber;
- HttpClientConnection conn =
- httpClient.post("127.0.0.1", port, "/receive");
- conn.onRequest = (HttpClientRequest request) {
- request.outputStream.writeString(JSON.stringify(receiveRequest));
- request.outputStream.close();
- };
- conn.onResponse = (HttpClientResponse r) {
- response = r;
- StringInputStream stream = new StringInputStream(response.inputStream);
- StringBuffer body = new StringBuffer();
- stream.onData = () => body.add(stream.read());
- stream.onClosed = () => receiveResponseHandler(body.toString());
- };
+ // Receive all expected messages then leave.
+ if (messageCount < messagesToReceive) {
+ receive();
+ } else {
+ Expect.equals(messagesToReceive, messageCount);
+ Expect.equals(totalClients, joinCount);
+ leave();
+ }
}
- void sendMessage() {
- HttpClientRequest request;
- HttpClientResponse response;
-
- void sendResponseHandler(String data) {
- Expect.equals(HttpStatus.OK, response.statusCode);
- var responseData = JSON.parse(data);
- Expect.equals("message", responseData["response"]);
- sendMessageNumber++;
- if (sendMessageNumber < messagesToSend) {
- sendMessage();
- } else {
- receive();
- }
- }
+ Map receiveRequest = new Map();
+ receiveRequest["request"] = "receive";
+ receiveRequest["sessionId"] = sessionId;
+ receiveRequest["nextMessage"] = receiveMessageNumber;
+ HttpClientConnection conn =
+ httpClient.post("127.0.0.1", port, "/receive");
+ conn.onRequest = (HttpClientRequest request) {
+ request.outputStream.writeString(JSON.stringify(receiveRequest));
+ request.outputStream.close();
+ };
+ conn.onResponse = (HttpClientResponse r) {
+ response = r;
+ StringInputStream stream = new StringInputStream(response.inputStream);
+ StringBuffer body = new StringBuffer();
+ stream.onData = () => body.add(stream.read());
+ stream.onClosed = () => receiveResponseHandler(body.toString());
+ };
+ }
- Map messageRequest = new Map();
- messageRequest["request"] = "message";
- messageRequest["sessionId"] = sessionId;
- messageRequest["message"] = "message $sendMessageNumber";
- HttpClientConnection conn =
- httpClient.post("127.0.0.1", port, "/message");
- conn.onRequest = (HttpClientRequest request) {
- request.outputStream.writeString(JSON.stringify(messageRequest));
- request.outputStream.close();
- };
- conn.onResponse = (HttpClientResponse r) {
- response = r;
- StringInputStream stream = new StringInputStream(response.inputStream);
- StringBuffer body = new StringBuffer();
- stream.onData = () => body.add(stream.read());
- stream.onClosed = () => sendResponseHandler(body.toString());
- };
- }
+ void sendMessage() {
+ HttpClientRequest request;
+ HttpClientResponse response;
- void join() {
- HttpClientRequest request;
- HttpClientResponse response;
-
- void joinResponseHandler(String data) {
- Expect.equals(HttpStatus.OK, response.statusCode);
- var responseData = JSON.parse(data);
- Expect.equals("join", responseData["response"]);
- sessionId = responseData["sessionId"];
- Expect.isTrue(sessionId != null);
-
- joinCount = 0;
- messageCount = 0;
- sendMessageNumber = 0;
- receiveMessageNumber = 0;
+ void sendResponseHandler(String data) {
+ Expect.equals(HttpStatus.OK, response.statusCode);
+ var responseData = JSON.parse(data);
+ Expect.equals("message", responseData["response"]);
+ sendMessageNumber++;
+ if (sendMessageNumber < messagesToSend) {
sendMessage();
+ } else {
+ receive();
}
+ }
+
+ Map messageRequest = new Map();
+ messageRequest["request"] = "message";
+ messageRequest["sessionId"] = sessionId;
+ messageRequest["message"] = "message $sendMessageNumber";
+ HttpClientConnection conn =
+ httpClient.post("127.0.0.1", port, "/message");
+ conn.onRequest = (HttpClientRequest request) {
+ request.outputStream.writeString(JSON.stringify(messageRequest));
+ request.outputStream.close();
+ };
+ conn.onResponse = (HttpClientResponse r) {
+ response = r;
+ StringInputStream stream = new StringInputStream(response.inputStream);
+ StringBuffer body = new StringBuffer();
+ stream.onData = () => body.add(stream.read());
+ stream.onClosed = () => sendResponseHandler(body.toString());
+ };
+ }
- Map joinRequest = new Map();
- joinRequest["request"] = "join";
- joinRequest["handle"] = "test1";
- HttpClientConnection conn = httpClient.post("127.0.0.1", port, "/join");
- conn.onRequest = (HttpClientRequest request) {
- request.outputStream.writeString(JSON.stringify(joinRequest));
- request.outputStream.close();
- };
- conn.onResponse = (HttpClientResponse r) {
- response = r;
- StringInputStream stream = new StringInputStream(response.inputStream);
- StringBuffer body = new StringBuffer();
- stream.onData = () => body.add(stream.read());
- stream.onClosed = () => joinResponseHandler(body.toString());
- };
+ void join() {
+ HttpClientRequest request;
+ HttpClientResponse response;
+
+ void joinResponseHandler(String data) {
+ Expect.equals(HttpStatus.OK, response.statusCode);
+ var responseData = JSON.parse(data);
+ Expect.equals("join", responseData["response"]);
+ sessionId = responseData["sessionId"];
+ Expect.isTrue(sessionId != null);
+
+ joinCount = 0;
+ messageCount = 0;
+ sendMessageNumber = 0;
+ receiveMessageNumber = 0;
+ sendMessage();
}
- this.port.receive((var message, SendPort replyTo) {
- totalClients = message.totalClients;
- messagesToSend = message.messagesToSend;
- messagesToReceive = message.messagesToReceive;
- port = message.port;
- statusPort = replyTo;
+ Map joinRequest = new Map();
+ joinRequest["request"] = "join";
+ joinRequest["handle"] = "test1";
+ HttpClientConnection conn = httpClient.post("127.0.0.1", port, "/join");
+ conn.onRequest = (HttpClientRequest request) {
+ request.outputStream.writeString(JSON.stringify(joinRequest));
+ request.outputStream.close();
+ };
+ conn.onResponse = (HttpClientResponse r) {
+ response = r;
+ StringInputStream stream = new StringInputStream(response.inputStream);
+ StringBuffer body = new StringBuffer();
+ stream.onData = () => body.add(stream.read());
+ stream.onClosed = () => joinResponseHandler(body.toString());
+ };
+ }
+
+ void dispatch(message, replyTo) {
+ totalClients = message.totalClients;
+ messagesToSend = message.messagesToSend;
+ messagesToReceive = message.messagesToReceive;
+ port = message.port;
+ statusPort = replyTo;
- // Create a HTTP client factory.
- httpClient = new HttpClient();
+ // Create a HTTP client factory.
+ httpClient = new HttpClient();
- // Start the client by joining the chat topic.
- join();
- });
+ // Start the client by joining the chat topic.
+ join();
}
}
@@ -230,10 +233,8 @@ class TestMain {
: serverStatusPort = new ReceivePort(),
serverPort = null,
finishedClients = 0 {
- new ChatServer().spawn().then((SendPort port) {
- serverPort = port;
- start();
- });
+ serverPort = spawnFunction(startChatServer);
+ start();
}
void start() {
@@ -281,23 +282,20 @@ class TestMain {
});
clientStatusPorts[i] = statusPort;
- new ChatTestClient().spawn().then((SendPort p) {
- clientPorts[i] = p;
- liveClientsCount++;
- if (liveClientsCount == clientCount) {
- // Once all clients are running send server start message to
- // the server. Use port 0 for an ephemeral port. The actual
- // port will be returned with the server started
- // message. Use a backlog equal to the client count to avoid
- // connection issues.
- serverPort.send(new ChatServerCommand.start("127.0.0.1",
- 0,
- backlog: clientCount),
- serverStatusPort.toSendPort());
- }
- });
+ clientPorts[i] = spawnFunction(startChatTestClient);
+ liveClientsCount++;
+ if (liveClientsCount == clientCount) {
+ // Once all clients are running send server start message to
+ // the server. Use port 0 for an ephemeral port. The actual
+ // port will be returned with the server started
+ // message. Use a backlog equal to the client count to avoid
+ // connection issues.
+ serverPort.send(new ChatServerCommand.start("127.0.0.1",
+ 0,
+ backlog: clientCount),
+ serverStatusPort.toSendPort());
+ }
}
-
}
int clientCount; // Number of clients to run.
« no previous file with comments | « samples/dartcombat/state.dart ('k') | tests/co19/co19-compiler.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698