Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(154)

Unified Diff: tests/standalone/io/directory_test.dart

Issue 12316036: Merge IO v2 branch to bleeding edge (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Rebased to r18818 Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tests/standalone/io/directory_test.dart
diff --git a/tests/standalone/io/directory_test.dart b/tests/standalone/io/directory_test.dart
index 8a3776a3ade0883e55810c2eedf20ce3f7b5e9bb..0d6500e02bf13521cb7d90344aee0cb7334b7649 100644
--- a/tests/standalone/io/directory_test.dart
+++ b/tests/standalone/io/directory_test.dart
@@ -50,31 +50,33 @@ class DirectoryTest {
testSyncListing(false);
Expect.equals(f.fullPathSync(), fLong.fullPathSync());
- var lister = directory.list(recursive: true);
-
- lister.onDir = (dir) {
- listedDir = true;
- Expect.isTrue(dir.contains(directory.path));
- Expect.isTrue(dir.contains('subdir'));
- };
-
- lister.onFile = (f) {
- listedFile = true;
- Expect.isTrue(f.contains(directory.path));
- Expect.isTrue(f.contains('subdir'));
- Expect.isTrue(f.contains('file.txt'));
- };
-
- lister.onDone = (completed) {
- Expect.isTrue(completed, "directory listing did not complete");
- Expect.isTrue(listedDir, "directory not found");
- Expect.isTrue(listedFile, "file not found");
- directory.delete(recursive: true).then((ignore) {
- f.exists().then((exists) => Expect.isFalse(exists));
- directory.exists().then((exists) => Expect.isFalse(exists));
- subDirectory.exists().then((exists) => Expect.isFalse(exists));
- });
- };
+ var listingDonePort = new ReceivePort();
+ directory.list(recursive: true).listen(
+ (FileSystemEntity entity) {
+ if (entity is File) {
+ var path = entity.name;
+ listedFile = true;
+ Expect.isTrue(path.contains(directory.path));
+ Expect.isTrue(path.contains('subdir'));
+ Expect.isTrue(path.contains('file.txt'));
+ } else {
+ var path = entity.path;
+ Expect.isTrue(entity is Directory);
+ listedDir = true;
+ Expect.isTrue(path.contains(directory.path));
+ Expect.isTrue(path.contains('subdir'));
+ }
+ },
+ onDone: () {
+ Expect.isTrue(listedDir, "directory not found");
+ Expect.isTrue(listedFile, "file not found");
+ directory.delete(recursive: true).then((ignore) {
+ f.exists().then((exists) => Expect.isFalse(exists));
+ directory.exists().then((exists) => Expect.isFalse(exists));
+ subDirectory.exists().then((exists) => Expect.isFalse(exists));
+ listingDonePort.close();
+ });
+ });
// Listing is asynchronous, so nothing should be listed at this
// point.
@@ -83,20 +85,13 @@ class DirectoryTest {
}
static void testListNonExistent() {
- setupListerHandlers(DirectoryLister lister) {
- // Test that listing a non-existing directory fails.
- lister.onError = (e) {
- Expect.isTrue(e is DirectoryIOException);
- };
- lister.onFile = (file) {
- Expect.fail("Listing of non-existing directory should fail");
- };
- lister.onDir = (dir) {
- Expect.fail("Listing of non-existing directory should fail");
- };
- lister.onDone = (success) {
- Expect.isFalse(success);
- };
+ setupListerHandlers(Stream<FileSystemEntity> stream) {
+ stream.listen(
+ (_) => Expect.fail("Listing of non-existing directory should fail"),
+ onError: (e) {
+ Expect.isTrue(e is AsyncError);
+ Expect.isTrue(e.error is DirectoryIOException);
+ });
}
new Directory("").createTemp().then((d) {
d.delete().then((ignore) {
@@ -109,22 +104,19 @@ class DirectoryTest {
static void testListTooLongName() {
new Directory("").createTemp().then((d) {
var errors = 0;
- setupListHandlers(DirectoryLister lister) {
- lister.onError = (e) {
- Expect.isTrue(e is DirectoryIOException);
- if (++errors == 2) {
- d.delete(recursive: true);
- }
- };
- lister.onFile = (file) {
- Expect.fail("Listing of non-existing directory should fail");
- };
- lister.onDir = (dir) {
- Expect.fail("Listing of non-existing directory should fail");
- };
- lister.onDone = (success) {
- Expect.isFalse(success);
- };
+ var port = new ReceivePort();
+ setupListHandlers(Stream<FileSystemEntity> stream) {
+ stream.listen(
+ (_) => Expect.fail("Listing of non-existing directory should fail"),
+ onError: (e) {
+ Expect.isTrue(e is AsyncError);
+ Expect.isTrue(e.error is DirectoryIOException);
+ if (++errors == 2) {
+ d.delete(recursive: true).then((_) {
+ port.close();
+ });
+ }
+ });
}
var subDirName = 'subdir';
var subDir = new Directory("${d.path}/$subDirName");
@@ -214,45 +206,6 @@ class DirectoryTest {
d.deleteSync(recursive: true);
}
- static void testDeleteSymlink() {
- // temp/
- // a/
- // file.txt
- // b/
- // a_link -> a
- var d = new Directory("").createTempSync();
- var a = new Directory("${d.path}/a");
- a.createSync();
-
- var b = new Directory("${d.path}/b");
- b.createSync();
-
- var f = new File("${d.path}/a/file.txt");
- f.createSync();
- Expect.isTrue(f.existsSync());
-
- // Create a symlink (or junction on Windows) from
- // temp/b/a_link to temp/a.
- var cmd = "ln";
- var args = ['-s', "${d.path}/b/a_link", "${d.path}/a"];
-
- if (Platform.operatingSystem == "windows") {
- cmd = "cmd";
- args = ["/c", "mklink", "/j", "${d.path}\\b\\a_link", "${d.path}\\a"];
- }
-
- Process.run(cmd, args).then((_) {
- // Delete the directory containing the junction.
- b.deleteSync(recursive: true);
-
- // We should not have recursed through a_link into a.
- Expect.isTrue(f.existsSync());
-
- // Clean up after ourselves.
- d.deleteSync(recursive: true);
- });
- }
-
static void testExistsCreateDelete() {
new Directory("").createTemp().then((d) {
d.exists().then((bool exists) {
@@ -359,7 +312,6 @@ class DirectoryTest {
testDeleteTooLongName();
testDeleteNonExistentSync();
testDeleteTooLongNameSync();
- testDeleteSymlink();
testExistsCreateDelete();
testExistsCreateDeleteSync();
testCreateTemp();
« no previous file with comments | « tests/standalone/io/directory_invalid_arguments_test.dart ('k') | tests/standalone/io/echo_server_stream_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698