| Index: tests/standalone/io/socket_invalid_arguments_test.dart
 | 
| diff --git a/tests/standalone/io/socket_invalid_arguments_test.dart b/tests/standalone/io/socket_invalid_arguments_test.dart
 | 
| index 91108b4128d5b1fd13113714c988c919b24026e4..7505aaa7b4e75ad07da3ce0f8b2cd2f039a39470 100644
 | 
| --- a/tests/standalone/io/socket_invalid_arguments_test.dart
 | 
| +++ b/tests/standalone/io/socket_invalid_arguments_test.dart
 | 
| @@ -1,8 +1,9 @@
 | 
| -// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 | 
| +// Copyright (c) 2013, 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.
 | 
|  
 | 
|  import "dart:io";
 | 
| +import "dart:isolate";
 | 
|  
 | 
|  class NotAnInteger {
 | 
|    operator==(other) => other == 1;
 | 
| @@ -16,39 +17,41 @@ class NotAList {
 | 
|  }
 | 
|  
 | 
|  testSocketCreation(host, port) {
 | 
| -  var s = new Socket(host, port);
 | 
| -  s.onError = (e) => null;
 | 
| -  s.onConnect = () => Expect.fail("Shouldn't get connected");
 | 
| +  Socket.connect(host, port)
 | 
| +      .then((socket) => Expect.fail("Shouldn't get connected"))
 | 
| +      .catchError((e) => null, test: (e) => e is SocketIOException)
 | 
| +      .catchError((e) => null, test: (e) => e is ArgumentError);
 | 
|  }
 | 
|  
 | 
| -testReadList(buffer, offset, length) {
 | 
| -  var server = new ServerSocket("127.0.0.1", 0, 5);
 | 
| -  var s = new Socket("127.0.0.1", server.port);
 | 
| -  s.onConnect = () {
 | 
| -    try { s.readList(buffer, offset, length); } catch (e) {}
 | 
| -    s.close();
 | 
| -  };
 | 
| -  s.onError = (e) => null;
 | 
| -}
 | 
| -
 | 
| -testWriteList(buffer, offset, length) {
 | 
| -  var server = new ServerSocket("127.0.0.1", 0, 5);
 | 
| -  var s = new Socket("127.0.0.1", server.port);
 | 
| -  s.onConnect = () {
 | 
| -    try { s.writeList(buffer, offset, length); } catch (e) {}
 | 
| -    s.close();
 | 
| -  };
 | 
| -  s.onError = (e) => null;
 | 
| +testAdd(buffer) {
 | 
| +  ServerSocket.bind("127.0.0.1", 0, 5).then((server) {
 | 
| +    server.listen((socket) => socket.destroy());
 | 
| +    Socket.connect("127.0.0.1", server.port).then((socket) {
 | 
| +      int errors = 0;
 | 
| +      socket.done.catchError((e) { errors++; });
 | 
| +      socket.listen(
 | 
| +          (_) { },
 | 
| +          onError: (error) {
 | 
| +            Expect.fail("Error on stream");
 | 
| +          },
 | 
| +          onDone: () {
 | 
| +            Expect.equals(1, errors);
 | 
| +            socket.destroy();
 | 
| +            server.close();
 | 
| +          });
 | 
| +      socket.add(buffer);
 | 
| +    });
 | 
| +  });
 | 
|  }
 | 
|  
 | 
|  testServerSocketCreation(address, port, backlog) {
 | 
|    var server;
 | 
| +  var port = new ReceivePort();
 | 
|    try {
 | 
| -    server = new ServerSocket(address, port, backlog);
 | 
| -    server.onError = (e) => null;
 | 
| -    server.onConnection = (c) => Expect.fail("Shouldn't get connection");
 | 
| +    ServerSocket.bind(address, port, backlog)
 | 
| +        .then((_) { Expect.fail("ServerSocket bound"); });
 | 
|    } catch (e) {
 | 
| -    // ignore
 | 
| +    port.close();
 | 
|    }
 | 
|  }
 | 
|  
 | 
| @@ -56,15 +59,14 @@ main() {
 | 
|    testSocketCreation(123, 123);
 | 
|    testSocketCreation("string", null);
 | 
|    testSocketCreation(null, null);
 | 
| -  testReadList(null, 123, 123);
 | 
| -  testReadList(new NotAList(), 1, 1);
 | 
| -  testReadList([1, 2, 3], new NotAnInteger(), new NotAnInteger());
 | 
| -  testReadList([1, 2, 3], 1, new NotAnInteger());
 | 
| -  testWriteList(null, 123, 123);
 | 
| -  testWriteList(new NotAList(), 1, 1);
 | 
| -  testWriteList([1, 2, 3], new NotAnInteger(), new NotAnInteger());
 | 
| -  testWriteList([1, 2, 3], 1, new NotAnInteger());
 | 
| -  testWriteList([1, 2, 3], new NotAnInteger(), 1);
 | 
| +  testAdd(null);
 | 
| +  testAdd(new NotAList());
 | 
| +  testAdd(42);
 | 
| +  // TODO(8233): Throw ArgumentError from API implementation.
 | 
| +  // testAdd([-1]);
 | 
| +  // testAdd([2222222222222222222222222222222]);
 | 
| +  // testAdd([1, 2, 3, null]);
 | 
| +  // testAdd([new NotAnInteger()]);
 | 
|    testServerSocketCreation(123, 123, 123);
 | 
|    testServerSocketCreation("string", null, null);
 | 
|    testServerSocketCreation("string", 123, null);
 | 
| 
 |