| Index: tests/standalone/io/http_10_test.dart | 
| diff --git a/tests/standalone/io/http_10_test.dart b/tests/standalone/io/http_10_test.dart | 
| index 3826a5efb50552811da76677507fef144a9c4bf2..0663a138c84a8495040eb97ed4841e163d972d08 100644 | 
| --- a/tests/standalone/io/http_10_test.dart | 
| +++ b/tests/standalone/io/http_10_test.dart | 
| @@ -17,74 +17,68 @@ import "dart:io"; | 
| // connection as there is no keep alive. | 
| void testHttp10NoKeepAlive() { | 
| HttpServer.bind("127.0.0.1", 0).then((server) { | 
| -    server.listen( | 
| -        (HttpRequest request) { | 
| -          Expect.isNull(request.headers.value('content-length')); | 
| -          Expect.equals(-1, request.contentLength); | 
| -          var response = request.response; | 
| -          response.contentLength = 1; | 
| -          Expect.equals("1.0", request.protocolVersion); | 
| -          response.done | 
| -              .then((_) => Expect.fail("Unexpected response completion")) | 
| -              .catchError((error) => Expect.isTrue(error is HttpException)); | 
| -          response.write("Z"); | 
| -          response.write("Z"); | 
| -          response.close(); | 
| -          response.write("x"); | 
| -        }, | 
| -        onError: (e, trace) { | 
| -          String msg = "Unexpected error $e"; | 
| -          if (trace != null) msg += "\nStackTrace: $trace"; | 
| -          Expect.fail(msg); | 
| -        }); | 
| +    server.listen((HttpRequest request) { | 
| +      Expect.isNull(request.headers.value('content-length')); | 
| +      Expect.equals(-1, request.contentLength); | 
| +      var response = request.response; | 
| +      response.contentLength = 1; | 
| +      Expect.equals("1.0", request.protocolVersion); | 
| +      response.done | 
| +          .then((_) => Expect.fail("Unexpected response completion")) | 
| +          .catchError((error) => Expect.isTrue(error is HttpException)); | 
| +      response.write("Z"); | 
| +      response.write("Z"); | 
| +      response.close(); | 
| +      response.write("x"); | 
| +    }, onError: (e, trace) { | 
| +      String msg = "Unexpected error $e"; | 
| +      if (trace != null) msg += "\nStackTrace: $trace"; | 
| +      Expect.fail(msg); | 
| +    }); | 
|  | 
| int count = 0; | 
| makeRequest() { | 
| Socket.connect("127.0.0.1", server.port).then((socket) { | 
| -          socket.write("GET / HTTP/1.0\r\n\r\n"); | 
| - | 
| -          List<int> response = []; | 
| -          socket.listen( | 
| -              response.addAll, | 
| -              onDone: () { | 
| -                count++; | 
| -                socket.destroy(); | 
| -                String s = new String.fromCharCodes(response).toLowerCase(); | 
| -                Expect.equals(-1, s.indexOf("keep-alive")); | 
| -                if (count < 10) { | 
| -                  makeRequest(); | 
| -                } else { | 
| -                  server.close(); | 
| -                } | 
| -              }); | 
| +        socket.write("GET / HTTP/1.0\r\n\r\n"); | 
| + | 
| +        List<int> response = []; | 
| +        socket.listen(response.addAll, onDone: () { | 
| +          count++; | 
| +          socket.destroy(); | 
| +          String s = new String.fromCharCodes(response).toLowerCase(); | 
| +          Expect.equals(-1, s.indexOf("keep-alive")); | 
| +          if (count < 10) { | 
| +            makeRequest(); | 
| +          } else { | 
| +            server.close(); | 
| +          } | 
| }); | 
| +      }); | 
| } | 
| + | 
| makeRequest(); | 
| }); | 
| } | 
|  | 
| - | 
| // Client makes a HTTP 1.0 request and the server does not set a | 
| // content length so it has to close the connection to mark the end of | 
| // the response. | 
| void testHttp10ServerClose() { | 
| HttpServer.bind("127.0.0.1", 0).then((server) { | 
| -    server.listen( | 
| -        (HttpRequest request) { | 
| -          Expect.isNull(request.headers.value('content-length')); | 
| -          Expect.equals(-1, request.contentLength); | 
| -          request.listen((_) {}, onDone: () { | 
| -            var response = request.response; | 
| -            Expect.equals("1.0", request.protocolVersion); | 
| -            response.write("Z"); | 
| -            response.close(); | 
| -          }); | 
| -        }, | 
| -        onError: (e, trace) { | 
| -          String msg = "Unexpected error $e"; | 
| -          if (trace != null) msg += "\nStackTrace: $trace"; | 
| -          Expect.fail(msg); | 
| -        }); | 
| +    server.listen((HttpRequest request) { | 
| +      Expect.isNull(request.headers.value('content-length')); | 
| +      Expect.equals(-1, request.contentLength); | 
| +      request.listen((_) {}, onDone: () { | 
| +        var response = request.response; | 
| +        Expect.equals("1.0", request.protocolVersion); | 
| +        response.write("Z"); | 
| +        response.close(); | 
| +      }); | 
| +    }, onError: (e, trace) { | 
| +      String msg = "Unexpected error $e"; | 
| +      if (trace != null) msg += "\nStackTrace: $trace"; | 
| +      Expect.fail(msg); | 
| +    }); | 
|  | 
| int count = 0; | 
| makeRequest() { | 
| @@ -93,8 +87,7 @@ void testHttp10ServerClose() { | 
| socket.write("Connection: Keep-Alive\r\n\r\n"); | 
|  | 
| List<int> response = []; | 
| -        socket.listen( | 
| -            response.addAll, | 
| +        socket.listen(response.addAll, | 
| onDone: () { | 
| socket.destroy(); | 
| count++; | 
| @@ -111,32 +104,30 @@ void testHttp10ServerClose() { | 
| onError: (e) => print(e)); | 
| }); | 
| } | 
| + | 
| makeRequest(); | 
| }); | 
| } | 
|  | 
| - | 
| // Client makes a HTTP 1.0 request with connection keep alive. The | 
| // server sets a content length so the persistent connection can be | 
| // used. | 
| void testHttp10KeepAlive() { | 
| HttpServer.bind("127.0.0.1", 0).then((server) { | 
| -    server.listen( | 
| -        (HttpRequest request) { | 
| -          Expect.isNull(request.headers.value('content-length')); | 
| -          Expect.equals(-1, request.contentLength); | 
| -          var response = request.response; | 
| -          response.contentLength = 1; | 
| -          response.persistentConnection = true; | 
| -          Expect.equals("1.0", request.protocolVersion); | 
| -          response.write("Z"); | 
| -          response.close(); | 
| -        }, | 
| -        onError: (e, trace) { | 
| -          String msg = "Unexpected error $e"; | 
| -          if (trace != null) msg += "\nStackTrace: $trace"; | 
| -          Expect.fail(msg); | 
| -        }); | 
| +    server.listen((HttpRequest request) { | 
| +      Expect.isNull(request.headers.value('content-length')); | 
| +      Expect.equals(-1, request.contentLength); | 
| +      var response = request.response; | 
| +      response.contentLength = 1; | 
| +      response.persistentConnection = true; | 
| +      Expect.equals("1.0", request.protocolVersion); | 
| +      response.write("Z"); | 
| +      response.close(); | 
| +    }, onError: (e, trace) { | 
| +      String msg = "Unexpected error $e"; | 
| +      if (trace != null) msg += "\nStackTrace: $trace"; | 
| +      Expect.fail(msg); | 
| +    }); | 
|  | 
| Socket.connect("127.0.0.1", server.port).then((socket) { | 
| void sendRequest() { | 
| @@ -146,51 +137,46 @@ void testHttp10KeepAlive() { | 
|  | 
| List<int> response = []; | 
| int count = 0; | 
| -      socket.listen( | 
| -          (d) { | 
| -            response.addAll(d); | 
| -            if (response[response.length - 1] == "Z".codeUnitAt(0)) { | 
| -              String s = new String.fromCharCodes(response).toLowerCase(); | 
| -              Expect.isTrue(s.indexOf("\r\nconnection: keep-alive\r\n") > 0); | 
| -              Expect.isTrue(s.indexOf("\r\ncontent-length: 1\r\n") > 0); | 
| -              count++; | 
| -              if (count < 10) { | 
| -                response = []; | 
| -                sendRequest(); | 
| -              } else { | 
| -                socket.close(); | 
| -              } | 
| -            } | 
| -          }, | 
| -          onDone: () { | 
| -            socket.destroy(); | 
| -            server.close(); | 
| -          }); | 
| +      socket.listen((d) { | 
| +        response.addAll(d); | 
| +        if (response[response.length - 1] == "Z".codeUnitAt(0)) { | 
| +          String s = new String.fromCharCodes(response).toLowerCase(); | 
| +          Expect.isTrue(s.indexOf("\r\nconnection: keep-alive\r\n") > 0); | 
| +          Expect.isTrue(s.indexOf("\r\ncontent-length: 1\r\n") > 0); | 
| +          count++; | 
| +          if (count < 10) { | 
| +            response = []; | 
| +            sendRequest(); | 
| +          } else { | 
| +            socket.close(); | 
| +          } | 
| +        } | 
| +      }, onDone: () { | 
| +        socket.destroy(); | 
| +        server.close(); | 
| +      }); | 
| sendRequest(); | 
| }); | 
| }); | 
| } | 
|  | 
| - | 
| // Client makes a HTTP 1.0 request with connection keep alive. The | 
| // server does not set a content length so it cannot honor connection | 
| // keep alive. | 
| void testHttp10KeepAliveServerCloses() { | 
| HttpServer.bind("127.0.0.1", 0).then((server) { | 
| -    server.listen( | 
| -        (HttpRequest request) { | 
| -          Expect.isNull(request.headers.value('content-length')); | 
| -          Expect.equals(-1, request.contentLength); | 
| -          var response = request.response; | 
| -          Expect.equals("1.0", request.protocolVersion); | 
| -          response.write("Z"); | 
| -          response.close(); | 
| -        }, | 
| -        onError: (e, trace) { | 
| -          String msg = "Unexpected error $e"; | 
| -          if (trace != null) msg += "\nStackTrace: $trace"; | 
| -          Expect.fail(msg); | 
| -        }); | 
| +    server.listen((HttpRequest request) { | 
| +      Expect.isNull(request.headers.value('content-length')); | 
| +      Expect.equals(-1, request.contentLength); | 
| +      var response = request.response; | 
| +      Expect.equals("1.0", request.protocolVersion); | 
| +      response.write("Z"); | 
| +      response.close(); | 
| +    }, onError: (e, trace) { | 
| +      String msg = "Unexpected error $e"; | 
| +      if (trace != null) msg += "\nStackTrace: $trace"; | 
| +      Expect.fail(msg); | 
| +    }); | 
|  | 
| int count = 0; | 
| makeRequest() { | 
| @@ -199,28 +185,26 @@ void testHttp10KeepAliveServerCloses() { | 
| socket.write("Connection: Keep-Alive\r\n\r\n"); | 
|  | 
| List<int> response = []; | 
| -        socket.listen( | 
| -            response.addAll, | 
| -            onDone: () { | 
| -              socket.destroy(); | 
| -              count++; | 
| -              String s = new String.fromCharCodes(response).toLowerCase(); | 
| -              Expect.equals("z", s[s.length - 1]); | 
| -              Expect.equals(-1, s.indexOf("content-length")); | 
| -              Expect.equals(-1, s.indexOf("connection")); | 
| -              if (count < 10) { | 
| -                makeRequest(); | 
| -              } else { | 
| -                server.close(); | 
| -              } | 
| -            }); | 
| +        socket.listen(response.addAll, onDone: () { | 
| +          socket.destroy(); | 
| +          count++; | 
| +          String s = new String.fromCharCodes(response).toLowerCase(); | 
| +          Expect.equals("z", s[s.length - 1]); | 
| +          Expect.equals(-1, s.indexOf("content-length")); | 
| +          Expect.equals(-1, s.indexOf("connection")); | 
| +          if (count < 10) { | 
| +            makeRequest(); | 
| +          } else { | 
| +            server.close(); | 
| +          } | 
| }); | 
| +      }); | 
| } | 
| + | 
| makeRequest(); | 
| }); | 
| } | 
|  | 
| - | 
| void main() { | 
| testHttp10NoKeepAlive(); | 
| testHttp10ServerClose(); | 
|  |