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

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

Issue 11748017: Add synchronous directory listing to dart:io Directory. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Avoid memory leak of DirectorySyncLister. Created 7 years, 12 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 baf506efc5ea7c607923fd7de5e67a92d357f54c..c663389eec74b3925a5bddafaf274e075b005e8e 100644
--- a/tests/standalone/io/directory_test.dart
+++ b/tests/standalone/io/directory_test.dart
@@ -22,6 +22,31 @@ class DirectoryTest {
Expect.isFalse(f.existsSync());
f.createSync();
+ void testSyncListing(bool recursive) {
+ for (var entry in directory.listSync(recursive: recursive)) {
+ if (entry is File) {
+ Expect.isTrue(entry.name.contains(directory.path));
+ Expect.isTrue(entry.name.contains('subdir'));
+ Expect.isTrue(entry.name.contains('file.txt'));
+ Expect.isFalse(listedFile);
+ listedFile = true;
+ } else {
+ Expect.isTrue(entry is Directory);
+ Expect.isTrue(entry.path.contains(directory.path));
+ Expect.isTrue(entry.path.contains('subdir'));
+ Expect.isFalse(listedDir);
+ listedDir = true;
+ }
+ }
+ Expect.equals(listedFile, recursive);
+ Expect.isTrue(listedDir);
+ listedFile = false;
+ listedDir = false;
+ }
+
+ testSyncListing(true);
+ testSyncListing(false);
+
var lister = directory.list(recursive: true);
lister.onDir = (dir) {
@@ -74,6 +99,9 @@ class DirectoryTest {
d.delete().then((ignore) {
setupListerHandlers(d.list());
setupListerHandlers(d.list(recursive: true));
+ Expect.throws(() => d.listSync(), (e) => e is DirectoryIOException);
+ Expect.throws(() => d.listSync(recursive: true),
+ (e) => e is DirectoryIOException);
});
});
}
@@ -109,6 +137,10 @@ class DirectoryTest {
buffer.add("/../${subDirName}");
}
var long = new Directory("${buffer.toString()}");
+ Expect.throws(() => long.listSync(),
+ (e) => e is DirectoryIOException);
+ Expect.throws(() => long.listSync(recursive: true),
+ (e) => e is DirectoryIOException);
setupListHandlers(long.list());
setupListHandlers(long.list(recursive: true));
});

Powered by Google App Engine
This is Rietveld 408576698