| Index: tests/standalone/src/io/HttpServerEarlyClientCloseTest.dart
|
| diff --git a/tests/standalone/src/io/HttpServerEarlyClientCloseTest.dart b/tests/standalone/src/io/HttpServerEarlyClientCloseTest.dart
|
| deleted file mode 100644
|
| index 9df075c510c7ce5fc5e74b1392d30cc9ced39b7a..0000000000000000000000000000000000000000
|
| --- a/tests/standalone/src/io/HttpServerEarlyClientCloseTest.dart
|
| +++ /dev/null
|
| @@ -1,94 +0,0 @@
|
| -#import("dart:io");
|
| -#import("dart:isolate");
|
| -
|
| -void sendData(List<int> data, int port) {
|
| - Socket socket = new Socket("127.0.0.1", port);
|
| - socket.onConnect = () {
|
| - socket.onData = () {
|
| - Expect.fail("No data response was expected");
|
| - };
|
| - socket.outputStream.onNoPendingWrites = () {
|
| - socket.close(true);
|
| - };
|
| - socket.outputStream.write(data);
|
| - };
|
| -}
|
| -
|
| -class EarlyCloseTest {
|
| - EarlyCloseTest(Object this.data,
|
| - String this.exception,
|
| - [bool this.expectRequest = false]);
|
| -
|
| - Future execute(HttpServer server) {
|
| - Completer c = new Completer();
|
| -
|
| - bool calledOnRequest = false;
|
| - bool calledOnError = false;
|
| - server.defaultRequestHandler =
|
| - (HttpRequest request, HttpResponse response) {
|
| - Expect.isTrue(expectRequest);
|
| - Expect.isFalse(calledOnError);
|
| - Expect.isFalse(calledOnRequest, "onRequest called multiple times");
|
| - calledOnRequest = true;
|
| - };
|
| - ReceivePort port = new ReceivePort();
|
| - server.onError = (Exception error) {
|
| - Expect.isFalse(calledOnError);
|
| - Expect.equals(exception, error.message);
|
| - Expect.equals(expectRequest, calledOnRequest);
|
| - calledOnError = true;
|
| - port.close();
|
| - c.complete(null);
|
| - };
|
| -
|
| - List<int> d;
|
| - if (data is List<int>) d = data;
|
| - if (data is String) d = data.charCodes();
|
| - if (d == null) Expect.fail("Invalid data");
|
| - sendData(d, server.port);
|
| -
|
| - return c.future;
|
| - }
|
| -
|
| - final Object data;
|
| - final String exception;
|
| - final bool expectRequest;
|
| -}
|
| -
|
| -void testEarlyClose() {
|
| - List<EarlyCloseTest> tests = new List<EarlyCloseTest>();
|
| - 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
|
| - add("G", "Connection closed before full header was received");
|
| - add("GET /", "Connection closed before full header was received");
|
| - add("GET / HTTP/1.1", "Connection closed before full header was received");
|
| - add("GET / HTTP/1.1\r\n", "Connection closed before full header was received");
|
| -
|
| - // Close while sending content
|
| - add("GET / HTTP/1.1\r\nContent-Length: 100\r\n\r\n",
|
| - "Connection closed before full body was received",
|
| - expectRequest: true);
|
| - add("GET / HTTP/1.1\r\nContent-Length: 100\r\n\r\n1",
|
| - "Connection closed before full body was received",
|
| - expectRequest: true);
|
| -
|
| -
|
| - HttpServer server = new HttpServer();
|
| - server.listen("127.0.0.1", 0);
|
| - void runTest(Iterator it) {
|
| - if (it.hasNext()) {
|
| - it.next().execute(server).then((_) => runTest(it));
|
| - } else {
|
| - server.close();
|
| - }
|
| - }
|
| - runTest(tests.iterator());
|
| -}
|
| -
|
| -void main() {
|
| - testEarlyClose();
|
| -}
|
|
|