| Index: tests/standalone/io/raw_secure_socket_test.dart | 
| diff --git a/tests/standalone/io/raw_secure_socket_test.dart b/tests/standalone/io/raw_secure_socket_test.dart | 
| index cd327ec5a13fad8de1528833b1eb48ab833e644b..9cd54a1aa26b556d67686ab1b09e9de4a99c6eae 100644 | 
| --- a/tests/standalone/io/raw_secure_socket_test.dart | 
| +++ b/tests/standalone/io/raw_secure_socket_test.dart | 
| @@ -13,69 +13,61 @@ import "dart:async"; | 
| import "dart:io"; | 
| import "dart:isolate"; | 
|  | 
| -Future<HttpServer> startServer() { | 
| -  return HttpServer.bindSecure( | 
| -      "localhost", | 
| -      0, | 
| -      backlog: 5, | 
| -      certificateName: 'localhost_cert').then((server) { | 
| -    server.listen((HttpRequest request) { | 
| -      request.listen( | 
| -        (_) { }, | 
| -        onDone: () { | 
| -          request.response.contentLength = 100; | 
| -          for (int i = 0; i < 10; i++) { | 
| -            request.response.add([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]); | 
| -          } | 
| -          request.response.close(); | 
| -        }); | 
| -    }); | 
| -    return server; | 
| -  }); | 
| -} | 
| +String localFile(path) => Platform.script.resolve(path).toFilePath(); | 
|  | 
| -void InitializeSSL() { | 
| -  var testPkcertDatabase = Platform.script.resolve('pkcert').toFilePath(); | 
| -  SecureSocket.initialize(database: testPkcertDatabase, | 
| -                          password: 'dartdart'); | 
| -} | 
| +SecurityContext serverContext = new SecurityContext() | 
| +  ..useCertificateChain(localFile('certificates/server_chain.pem')) | 
| +  ..usePrivateKey(localFile('certificates/server_key.pem'), | 
| +                  password: 'dartdart'); | 
|  | 
| -void main() { | 
| +SecurityContext clientContext = new SecurityContext() | 
| +  ..setTrustedCertificates(file: localFile('certificates/trusted_certs.pem')); | 
| + | 
| +main() async { | 
| List<int> message = "GET / HTTP/1.0\r\nHost: localhost\r\n\r\n".codeUnits; | 
| int written = 0; | 
| List<int> body = <int>[]; | 
| -  InitializeSSL(); | 
| -  startServer().then((server) { | 
| -    RawSecureSocket.connect("localhost", server.port).then((socket) { | 
| -      socket.listen( | 
| -          (RawSocketEvent event) { | 
| -            switch (event) { | 
| -              case RawSocketEvent.READ: | 
| -                body.addAll(socket.read()); | 
| -                break; | 
| -              case RawSocketEvent.WRITE: | 
| -                written += | 
| -                    socket.write(message, written, message.length - written); | 
| -                if (written < message.length) { | 
| -                  socket.writeEventsEnabled = true; | 
| -                } else { | 
| -                  socket.shutdown(SocketDirection.SEND); | 
| -                } | 
| -                break; | 
| -              case RawSocketEvent.READ_CLOSED: | 
| -                Expect.isTrue(body.length > 100, "$body\n${body.length}"); | 
| -                Expect.equals(72, body[0]); | 
| -                Expect.equals(9, body[body.length - 1]); | 
| -                server.close(); | 
| -                break; | 
| -              default: throw "Unexpected event $event"; | 
| -            } | 
| -          }, | 
| -          onError: (e, trace) { | 
| -            String msg = "onError handler of RawSecureSocket stream hit $e"; | 
| -            if (trace != null) msg += "\nStackTrace: $trace"; | 
| -            Expect.fail(msg); | 
| -          }); | 
| -    }); | 
| +  var server = await HttpServer.bindSecure( | 
| +      "localhost", | 
| +      0, | 
| +      serverContext, | 
| +      backlog: 5); | 
| +  server.listen((HttpRequest request) async { | 
| +    await request.drain(); | 
| +    request.response.contentLength = 100; | 
| +    for (int i = 0; i < 10; i++) { | 
| +      request.response.add([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]); | 
| +    } | 
| +    request.response.close(); | 
| +  }); | 
| +  var socket = await RawSecureSocket.connect("localhost", | 
| +                                             server.port, | 
| +                                             context: clientContext); | 
| +  socket.listen((RawSocketEvent event) { | 
| +    switch (event) { | 
| +      case RawSocketEvent.READ: | 
| +        body.addAll(socket.read()); | 
| +        break; | 
| +      case RawSocketEvent.WRITE: | 
| +        written += | 
| +            socket.write(message, written, message.length - written); | 
| +        if (written < message.length) { | 
| +          socket.writeEventsEnabled = true; | 
| +        } else { | 
| +          socket.shutdown(SocketDirection.SEND); | 
| +        } | 
| +        break; | 
| +      case RawSocketEvent.READ_CLOSED: | 
| +        Expect.isTrue(body.length > 100, "$body\n${body.length}"); | 
| +        Expect.equals(72, body[0]); | 
| +        Expect.equals(9, body[body.length - 1]); | 
| +        server.close(); | 
| +        break; | 
| +      default: throw "Unexpected event $event"; | 
| +    } | 
| +  }, onError: (e, trace) { | 
| +    String msg = "onError handler of RawSecureSocket stream hit $e"; | 
| +    if (trace != null) msg += "\nStackTrace: $trace"; | 
| +    Expect.fail(msg); | 
| }); | 
| } | 
|  |