| Index: tests/standalone/io/http_client_test.dart
 | 
| diff --git a/tests/standalone/io/http_client_test.dart b/tests/standalone/io/http_client_test.dart
 | 
| index 698090a8aa502be99c6ccf2aac0a3db47b961c9c..c3e7db1c7848f836591c4591e5a2ccd3386b2f67 100644
 | 
| --- a/tests/standalone/io/http_client_test.dart
 | 
| +++ b/tests/standalone/io/http_client_test.dart
 | 
| @@ -1,6 +1,11 @@
 | 
|  // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 | 
|  // for details. All rights reserved. Use of this source code is governed by a
 | 
|  // BSD-style license that can be found in the LICENSE file.
 | 
| +//
 | 
| +// VMOptions=
 | 
| +// VMOptions=--short_socket_read
 | 
| +// VMOptions=--short_socket_write
 | 
| +// VMOptions=--short_socket_read --short_socket_write
 | 
|  
 | 
|  import "dart:io";
 | 
|  import "dart:uri";
 | 
| @@ -8,21 +13,13 @@ import "dart:isolate";
 | 
|  
 | 
|  void testGoogle() {
 | 
|    HttpClient client = new HttpClient();
 | 
| -  var conn = client.get('www.google.com', 80, '/');
 | 
| -
 | 
| -  conn.onRequest = (HttpClientRequest request) {
 | 
| -    request.outputStream.close();
 | 
| -  };
 | 
| -  conn.onResponse = (HttpClientResponse response) {
 | 
| -    Expect.isTrue(response.statusCode < 500);
 | 
| -    response.inputStream.onData = () {
 | 
| -      response.inputStream.read();
 | 
| -    };
 | 
| -    response.inputStream.onClosed = () {
 | 
| -      client.shutdown();
 | 
| -    };
 | 
| -  };
 | 
| -  conn.onError = (error) => Expect.fail("Unexpected IO error $error");
 | 
| +  client.get('www.google.com', 80, '/')
 | 
| +      .then((request) => request.close())
 | 
| +      .then((response) {
 | 
| +        Expect.isTrue(response.statusCode < 500);
 | 
| +        response.listen((data) {}, onDone: client.close);
 | 
| +      })
 | 
| +      .catchError((error) => Expect.fail("Unexpected IO error: $error"));
 | 
|  }
 | 
|  
 | 
|  int testGoogleUrlCount = 0;
 | 
| @@ -31,25 +28,19 @@ void testGoogleUrl() {
 | 
|  
 | 
|    void testUrl(String url) {
 | 
|      var requestUri = Uri.parse(url);
 | 
| -    var conn = client.getUrl(requestUri);
 | 
| -
 | 
| -    conn.onRequest = (HttpClientRequest request) {
 | 
| -      request.outputStream.close();
 | 
| -    };
 | 
| -    conn.onResponse = (HttpClientResponse response) {
 | 
| -      testGoogleUrlCount++;
 | 
| -      Expect.isTrue(response.statusCode < 500);
 | 
| -      if (requestUri.path.length == 0) {
 | 
| -        Expect.isTrue(response.statusCode != 404);
 | 
| -      }
 | 
| -      response.inputStream.onData = () {
 | 
| -        response.inputStream.read();
 | 
| -      };
 | 
| -      response.inputStream.onClosed = () {
 | 
| -        if (testGoogleUrlCount == 5) client.shutdown();
 | 
| -      };
 | 
| -    };
 | 
| -    conn.onError = (error) => Expect.fail("Unexpected IO error $error");
 | 
| +    client.getUrl(requestUri)
 | 
| +        .then((request) => request.close())
 | 
| +        .then((response) {
 | 
| +          testGoogleUrlCount++;
 | 
| +          Expect.isTrue(response.statusCode < 500);
 | 
| +          if (requestUri.path.length == 0) {
 | 
| +            Expect.isTrue(response.statusCode != 404);
 | 
| +          }
 | 
| +          response.listen((data) {}, onDone: () {
 | 
| +            if (testGoogleUrlCount == 5) client.close();
 | 
| +          });
 | 
| +        })
 | 
| +        .catchError((error) => Expect.fail("Unexpected IO error: $error"));
 | 
|    }
 | 
|  
 | 
|    testUrl('http://www.google.com');
 | 
| @@ -67,15 +58,13 @@ void testInvalidUrl() {
 | 
|  
 | 
|  void testBadHostName() {
 | 
|    HttpClient client = new HttpClient();
 | 
| -  HttpClientConnection connection =
 | 
| -      client.get("some.bad.host.name.7654321", 0, "/");
 | 
| -  connection.onRequest = (HttpClientRequest request) {
 | 
| -    Expect.fail("Should not open a request on bad hostname");
 | 
| -  };
 | 
|    ReceivePort port = new ReceivePort();
 | 
| -  connection.onError = (Exception error) {
 | 
| -    port.close();  // We expect onError to be called, due to bad host name.
 | 
| -  };
 | 
| +  client.get("some.bad.host.name.7654321", 0, "/")
 | 
| +    .then((request) {
 | 
| +      Expect.fail("Should not open a request on bad hostname");
 | 
| +    }).catchError((error) {
 | 
| +      port.close();  // We expect onError to be called, due to bad host name.
 | 
| +    }, test: (error) => error is! String);
 | 
|  }
 | 
|  
 | 
|  void main() {
 | 
| 
 |