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

Unified Diff: tests/standalone/io/http_server_early_client_close_test.dart

Issue 15814004: Don't report unuseful SocketIOExceptions on HttpServer. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 7 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
Index: tests/standalone/io/http_server_early_client_close_test.dart
diff --git a/tests/standalone/io/http_server_early_client_close_test.dart b/tests/standalone/io/http_server_early_client_close_test.dart
index 57a922b0209c027c364a8e269b9747be3d83fca4..ee80a1d26ddc7ada05c8bedbbedfb986da99bbd1 100644
--- a/tests/standalone/io/http_server_early_client_close_test.dart
+++ b/tests/standalone/io/http_server_early_client_close_test.dart
@@ -12,62 +12,66 @@ import "dart:async";
import "dart:io";
import "dart:isolate";
-void sendData(List<int> data, int port) {
- Socket.connect("127.0.0.1", port).then((socket) {
+Future sendData(List<int> data, int port) {
+ return Socket.connect("127.0.0.1", port).then((socket) {
socket.listen((data) {
Expect.fail("No data response was expected");
});
socket.add(data);
- socket.close();
socket.done.then((_) {
socket.destroy();
});
+ return socket.close();
});
}
class EarlyCloseTest {
EarlyCloseTest(this.data,
- String this.exception,
- [bool this.expectRequest = false]);
-
- Future execute(HttpServer server) {
- Completer c = new Completer();
-
- bool calledOnRequest = false;
- bool calledOnError = false;
- ReceivePort port = new ReceivePort();
- server.listen(
- (request) {
- Expect.isTrue(expectRequest);
- Expect.isFalse(calledOnError);
- Expect.isFalse(calledOnRequest, "onRequest called multiple times");
- calledOnRequest = true;
- request.listen(
- (_) {},
- onError: (error) {
- Expect.isFalse(calledOnError);
- Expect.equals(exception, error.message);
- calledOnError = true;
- port.close();
- c.complete(null);
- });
- },
- onError: (error) {
- Expect.isFalse(calledOnError);
- Expect.equals(exception, error.message);
- Expect.equals(expectRequest, calledOnRequest);
- calledOnError = true;
- port.close();
- c.complete(null);
- });
+ [String this.exception,
+ bool this.expectRequest = false]);
+
+ Future execute() {
+ return HttpServer.bind("127.0.0.1", 0).then((server) {
+ Completer c = new Completer();
+
+ bool calledOnRequest = false;
+ bool calledOnError = false;
+ bool calledOnDone = false;
+ ReceivePort port = new ReceivePort();
+ server.listen(
+ (request) {
+ Expect.isTrue(expectRequest);
+ Expect.isFalse(calledOnError);
+ Expect.isFalse(calledOnRequest, "onRequest called multiple times");
+ calledOnRequest = true;
+ request.listen(
+ (_) {},
+ onError: (error) {
+ Expect.isFalse(calledOnError);
+ Expect.equals(exception, error.message);
+ calledOnError = true;
+ if (exception != null) port.close();
+ });
+ server.close();
+ },
+ onDone: () {
+ Expect.equals(expectRequest, calledOnRequest);
+ calledOnDone = true;
+ if (exception == null) port.close();
+ c.complete(null);
+ });
- List<int> d;
- if (data is List<int>) d = data;
- if (data is String) d = data.codeUnits;
- if (d == null) Expect.fail("Invalid data");
- sendData(d, server.port);
+ List<int> d;
+ if (data is List<int>) d = data;
+ if (data is String) d = data.codeUnits;
+ if (d == null) Expect.fail("Invalid data");
+ sendData(d, server.port)
+ .then((_) {
+ if (!expectRequest) server.close();
+ });
- return c.future;
+ return c.future;
+ });
}
final data;
@@ -77,33 +81,29 @@ class EarlyCloseTest {
void testEarlyClose1() {
List<EarlyCloseTest> tests = new List<EarlyCloseTest>();
- void add(Object data, String exception, {bool expectRequest: false}) {
+ void add(Object data, [String exception, bool expectRequest = false]) {
tests.add(new EarlyCloseTest(data, exception, expectRequest));
}
// The empty packet is valid.
// Close while sending header
- String message = "Connection closed before full header was received";
- add("G", message);
- add("GET /", message);
- add("GET / HTTP/1.1", message);
- add("GET / HTTP/1.1\r\n", message);
+ add("G");
+ add("GET /");
+ add("GET / HTTP/1.1");
+ add("GET / HTTP/1.1\r\n");
// Close while sending content
add("GET / HTTP/1.1\r\nContent-Length: 100\r\n\r\n",
"Connection closed while receiving data",
- expectRequest: true);
+ true);
add("GET / HTTP/1.1\r\nContent-Length: 100\r\n\r\n1",
"Connection closed while receiving data",
- expectRequest: true);
+ true);
void runTest(Iterator it) {
if (it.moveNext()) {
- HttpServer.bind("127.0.0.1", 0).then((server) {
- it.current.execute(server).then((_) {
- runTest(it);
- server.close();
- });
+ it.current.execute().then((_) {
+ runTest(it);
});
}
}

Powered by Google App Engine
This is Rietveld 408576698