| Index: tests/standalone/io/file_system_links_test.dart
 | 
| diff --git a/tests/standalone/io/file_system_links_test.dart b/tests/standalone/io/file_system_links_test.dart
 | 
| index 2de2aa067de95547a5140d119721409bdfddc56d..90e9692b7f3f7577487e3705f42ba23d29a93f23 100644
 | 
| --- a/tests/standalone/io/file_system_links_test.dart
 | 
| +++ b/tests/standalone/io/file_system_links_test.dart
 | 
| @@ -3,6 +3,7 @@
 | 
|  // BSD-style license that can be found in the LICENSE file.
 | 
|  
 | 
|  import "dart:io";
 | 
| +import "dart:isolate";
 | 
|  
 | 
|  
 | 
|  createLink(String dst, String link, bool symbolic, void callback()) {
 | 
| @@ -66,16 +67,16 @@ testFileWriteRead() {
 | 
|    new File(x).createSync();
 | 
|    createLink(x, y, true, () {
 | 
|      var data = "asdf".charCodes;
 | 
| -    var output = new File(y).openOutputStream(FileMode.WRITE);
 | 
| -    output.write(data);
 | 
| -    output.onNoPendingWrites = () {
 | 
| -      output.close();
 | 
| +    var output = new File(y).openWrite(FileMode.WRITE);
 | 
| +    output.add(data);
 | 
| +    output.close();
 | 
| +    output.done.then((_) {
 | 
|        var read = new File(y).readAsBytesSync();
 | 
|        Expect.listEquals(data, read);
 | 
|        var read2 = new File(x).readAsBytesSync();
 | 
|        Expect.listEquals(data, read2);
 | 
|        temp.deleteSync(recursive: true);
 | 
| -    };
 | 
| +    });
 | 
|    });
 | 
|  }
 | 
|  
 | 
| @@ -119,6 +120,7 @@ testDirectoryDelete() {
 | 
|  
 | 
|  
 | 
|  testDirectoryListing() {
 | 
| +  var keepAlive = new ReceivePort();
 | 
|    var temp = new Directory('').createTempSync();
 | 
|    var temp2 = new Directory('').createTempSync();
 | 
|    var y = '${temp.path}${Platform.pathSeparator}y';
 | 
| @@ -142,23 +144,30 @@ testDirectoryListing() {
 | 
|  
 | 
|      files = [];
 | 
|      dirs = [];
 | 
| -    var lister = temp.list(recursive: true);
 | 
| -    lister.onFile = (f) => files.add(f);
 | 
| -    lister.onDir = (d) => dirs.add(d);
 | 
| -    lister.onDone = (success) {
 | 
| -      Expect.isTrue(success);
 | 
| -      Expect.equals(1, files.length);
 | 
| -      Expect.isTrue(files[0].endsWith('$y${Platform.pathSeparator}x'));
 | 
| -      Expect.equals(1, dirs.length);
 | 
| -      Expect.isTrue(dirs[0].endsWith(y));
 | 
| -      temp.deleteSync(recursive: true);
 | 
| -      temp2.deleteSync(recursive: true);
 | 
| -    };
 | 
| +    var lister = temp.list(recursive: true).listen(
 | 
| +        (entity) {
 | 
| +          if (entity is File) {
 | 
| +            files.add(entity.name);
 | 
| +          } else {
 | 
| +            Expect.isTrue(entity is Directory);
 | 
| +            dirs.add(entity.path);
 | 
| +          }
 | 
| +        },
 | 
| +        onDone: () {
 | 
| +          Expect.equals(1, files.length);
 | 
| +          Expect.isTrue(files[0].endsWith('$y${Platform.pathSeparator}x'));
 | 
| +          Expect.equals(1, dirs.length);
 | 
| +          Expect.isTrue(dirs[0].endsWith(y));
 | 
| +          temp.deleteSync(recursive: true);
 | 
| +          temp2.deleteSync(recursive: true);
 | 
| +          keepAlive.close();
 | 
| +        });
 | 
|    });
 | 
|  }
 | 
|  
 | 
|  
 | 
|  testDirectoryListingBrokenLink() {
 | 
| +  var keepAlive = new ReceivePort();
 | 
|    var temp = new Directory('').createTempSync();
 | 
|    var x = '${temp.path}${Platform.pathSeparator}x';
 | 
|    var link = '${temp.path}${Platform.pathSeparator}link';
 | 
| @@ -170,19 +179,25 @@ testDirectoryListingBrokenLink() {
 | 
|      var files = [];
 | 
|      var dirs = [];
 | 
|      var errors = [];
 | 
| -    var lister = temp.list(recursive: true);
 | 
| -    lister.onFile = (f) => files.add(f);
 | 
| -    lister.onDir = (d) => dirs.add(d);
 | 
| -    lister.onError = (d) => errors.add(d);
 | 
| -    lister.onDone = (success) {
 | 
| -      Expect.isFalse(success);
 | 
| -      Expect.equals(1, files.length);
 | 
| -      Expect.isTrue(files[0].endsWith(x));
 | 
| -      Expect.equals(0, dirs.length);
 | 
| -      Expect.equals(1, errors.length);
 | 
| -      Expect.isTrue(errors[0].toString().contains(link));
 | 
| -      temp.deleteSync(recursive: true);
 | 
| -    };
 | 
| +    temp.list(recursive: true).listen(
 | 
| +        (entity) {
 | 
| +          if (entity is File) {
 | 
| +            files.add(entity.name);
 | 
| +          } else {
 | 
| +            Expect.isTrue(entity is Directory);
 | 
| +            dirs.add(entity.path);
 | 
| +          }
 | 
| +        },
 | 
| +        onError: (e) => errors.add(e),
 | 
| +        onDone: () {
 | 
| +          Expect.equals(1, files.length);
 | 
| +          Expect.isTrue(files[0].endsWith(x));
 | 
| +          Expect.equals(0, dirs.length);
 | 
| +          Expect.equals(1, errors.length);
 | 
| +          Expect.isTrue(errors[0].toString().contains(link));
 | 
| +          temp.deleteSync(recursive: true);
 | 
| +          keepAlive.close();
 | 
| +        });
 | 
|    });
 | 
|  }
 | 
|  
 | 
| 
 |