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

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

Issue 10392023: Change dart:io to use Future for one-shot operations. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Adding stable test binaries Created 8 years, 7 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
« no previous file with comments | « tests/standalone/io/directory_invalid_arguments_test.dart ('k') | tests/standalone/io/file_error_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/standalone/io/directory_test.dart
diff --git a/tests/standalone/io/directory_test.dart b/tests/standalone/io/directory_test.dart
index 2477883c51d54bd5afd5324b74fce63545fe2f67..5e14a324757ce80383fa2346927c2999da0184e5 100644
--- a/tests/standalone/io/directory_test.dart
+++ b/tests/standalone/io/directory_test.dart
@@ -12,8 +12,7 @@ class DirectoryTest {
bool listedDir = false;
bool listedFile = false;
- Directory directory = new Directory("");
- directory.createTempSync();
+ Directory directory = new Directory("").createTempSync();
Directory subDirectory = new Directory("${directory.path}/subdir");
Expect.isFalse(subDirectory.existsSync());
subDirectory.createSync();
@@ -21,36 +20,32 @@ class DirectoryTest {
Expect.isFalse(f.existsSync());
f.createSync();
- directory.onDir = (dir) {
+ var lister = directory.list(recursive: true);
+
+ lister.onDir = (dir) {
listedDir = true;
Expect.isTrue(dir.contains(directory.path));
Expect.isTrue(dir.contains('subdir'));
};
- directory.onFile = (f) {
+ lister.onFile = (f) {
listedFile = true;
Expect.isTrue(f.contains(directory.path));
Expect.isTrue(f.contains('subdir'));
Expect.isTrue(f.contains('file.txt'));
};
- directory.onDone = (completed) {
+ lister.onDone = (completed) {
Expect.isTrue(completed, "directory listing did not complete");
Expect.isTrue(listedDir, "directory not found");
Expect.isTrue(listedFile, "file not found");
- directory.deleteRecursively(() {
- f.exists((exists) => Expect.isFalse(exists));
- directory.exists((exists) => Expect.isFalse(exists));
- subDirectory.exists((exists) => Expect.isFalse(exists));
+ directory.deleteRecursively().then((ignore) {
+ f.exists().then((exists) => Expect.isFalse(exists));
+ directory.exists().then((exists) => Expect.isFalse(exists));
+ subDirectory.exists().then((exists) => Expect.isFalse(exists));
});
};
- directory.onError = (e) {
- Expect.fail("error listing directory: $e");
- };
-
- directory.list(recursive: true);
-
// Listing is asynchronous, so nothing should be listed at this
// point.
Expect.isFalse(listedDir);
@@ -58,43 +53,52 @@ class DirectoryTest {
}
static void testListNonExistent() {
- Directory d = new Directory("");
- d.onError = (e) {
- Expect.fail("Directory error: $e");
- };
- d.createTemp(() {
- d.delete(() {
- // Test that listing a non-existing directory fails.
- d.onError = (e) {
+ 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);
+ };
+ }
+ new Directory("").createTemp().then((d) {
+ d.delete().then((ignore) {
+ setupListerHandlers(d.list());
+ setupListerHandlers(d.list(recursive: true));
+ });
+ });
+ }
+
+ 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.deleteRecursively();
+ }
};
- d.onFile = (file) {
+ lister.onFile = (file) {
Expect.fail("Listing of non-existing directory should fail");
};
- d.onDir = (dir) {
+ lister.onDir = (dir) {
Expect.fail("Listing of non-existing directory should fail");
};
- d.onDone = (done) {
- Expect.isFalse(done);
+ lister.onDone = (success) {
+ Expect.isFalse(success);
};
- d.list();
- d.list(recursive: true);
- });
- });
- }
-
- static void testListTooLongName() {
- Directory d = new Directory("");
- d.onError = (e) {
- Expect.fail("Directory error: $e");
- };
- d.createTemp(() {
+ }
var subDirName = 'subdir';
var subDir = new Directory("${d.path}/$subDirName");
- subDir.onError = (e) {
- Expect.fail("Directory error: $e");
- };
- subDir.create(() {
+ subDir.create().then((ignore) {
// Construct a long string of the form
// 'tempdir/subdir/../subdir/../subdir'.
var buffer = new StringBuffer();
@@ -103,97 +107,69 @@ class DirectoryTest {
buffer.add("/../${subDirName}");
}
var long = new Directory("${buffer.toString()}");
- var errors = 0;
- long.onError = (e) {
- Expect.isTrue(e is DirectoryIOException);
- if (++errors == 2) {
- d.deleteRecursively(() => null);
- }
- };
- long.onFile = (file) {
- Expect.fail("Listing of non-existing directory should fail");
- };
- long.onDir = (dir) {
- Expect.fail("Listing of non-existing directory should fail");
- };
- long.onDone = (done) {
- Expect.isFalse(done);
- };
- long.list();
- long.list(recursive: true);
+ setupListHandlers(long.list());
+ setupListHandlers(long.list(recursive: true));
});
});
}
static void testDeleteNonExistent() {
- Directory d = new Directory("");
- d.onError = (e) {
- Expect.fail("Directory error: $e");
- };
- d.createTemp(() {
- d.delete(() {
- // Test that deleting a non-existing directory fails.
- d.onError = (e) {
- Expect.isTrue(e is DirectoryIOException);
- };
- d.delete(() {
- Expect.fail("Deletion of non-existing directory should fail");
- });
- d.deleteRecursively(() {
- Expect.fail("Deletion of non-existing directory should fail");
- });
+ // Test that deleting a non-existing directory fails.
+ setupFutureHandlers(future) {
+ future.handleException((e) {
+ Expect.isTrue(e is DirectoryIOException);
+ return true;
+ });
+ future.then((ignore) {
+ Expect.fail("Deletion of non-existing directory should fail");
+ });
+ }
+
+ new Directory("").createTemp().then((d) {
+ d.delete().then((ignore) {
+ setupFutureHandlers(d.delete());
+ setupFutureHandlers(d.deleteRecursively());
});
});
}
static void testDeleteTooLongName() {
- Directory d = new Directory("");
- d.onError = (e) {
- Expect.fail("Directory error: $e");
- };
- d.createTemp(() {
+ var port = new ReceivePort();
+ new Directory("").createTemp().then((d) {
var subDirName = 'subdir';
var subDir = new Directory("${d.path}/$subDirName");
- subDir.onError = (e) {
- Expect.fail("Directory error: $e");
- };
- subDir.create(() {
- // Construct a long string of the form
- // 'tempdir/subdir/../subdir/../subdir'.
- var buffer = new StringBuffer();
- buffer.add(subDir.path);
- for (var i = 0; i < 1000; i++) {
- buffer.add("/../${subDirName}");
- }
- var long = new Directory("${buffer.toString()}");
- var errors = 0;
- long.onError = (e) {
- Expect.isTrue(e is DirectoryIOException);
- if (++errors == 2) {
- d.deleteRecursively(() => null);
+ subDir.create().then((ignore) {
+ // Construct a long string of the form
+ // 'tempdir/subdir/../subdir/../subdir'.
+ var buffer = new StringBuffer();
+ buffer.add(subDir.path);
+ for (var i = 0; i < 1000; i++) {
+ buffer.add("/../${subDirName}");
}
- };
- long.delete(() {
- Expect.fail("Deletion of a directory with a long name should fail");
- });
- long.deleteRecursively(() {
- Expect.fail("Deletion of a directory with a long name should fail");
+ var long = new Directory("${buffer.toString()}");
+ var errors = 0;
+ onError(e) {
+ Expect.isTrue(e is DirectoryIOException);
+ if (++errors == 2) {
+ d.deleteRecursively().then((ignore) => port.close());
+ }
+ return true;
+ }
+ long.delete().handleException(onError);
+ long.deleteRecursively().handleException(onError);
});
- });
});
}
static void testDeleteNonExistentSync() {
- Directory d = new Directory("");
- d.createTempSync();
+ Directory d = new Directory("").createTempSync();
d.deleteSync();
Expect.throws(d.deleteSync);
Expect.throws(() => d.deleteRecursivelySync());
}
static void testDeleteTooLongNameSync() {
- Directory d = new Directory("");
- d.createTempSync();
+ Directory d = new Directory("").createTempSync();
var subDirName = 'subdir';
var subDir = new Directory("${d.path}/$subDirName");
subDir.createSync();
@@ -207,22 +183,22 @@ class DirectoryTest {
var long = new Directory("${buffer.toString()}");
Expect.throws(long.deleteSync);
Expect.throws(() => long.deleteRecursivelySync());
+ d.deleteRecursivelySync();
}
static void testExistsCreateDelete() {
- Directory d = new Directory("");
- d.createTemp(() {
- d.exists((bool exists) {
+ new Directory("").createTemp().then((d) {
+ d.exists().then((bool exists) {
Expect.isTrue(exists);
Directory created = new Directory("${d.path}/subdir");
- created.create(() {
- created.exists((bool exists) {
+ created.create().then((ignore) {
+ created.exists().then((bool exists) {
Expect.isTrue(exists);
- created.delete(() {
- created.exists((bool exists) {
+ created.delete().then((ignore) {
+ created.exists().then((bool exists) {
Expect.isFalse(exists);
- d.delete(() {
- d.exists((bool exists) {
+ d.delete().then((ignore) {
+ d.exists().then((bool exists) {
Expect.isFalse(exists);
});
});
@@ -235,8 +211,7 @@ class DirectoryTest {
}
static void testExistsCreateDeleteSync() {
- Directory d = new Directory("");
- d.createTempSync();
+ Directory d = new Directory("").createTempSync();
Expect.isTrue(d.existsSync());
Directory created = new Directory("${d.path}/subdir");
created.createSync();
@@ -248,8 +223,8 @@ class DirectoryTest {
}
static void testCreateTemp() {
- Directory tempDir1 = new Directory("/tmp/dart_temp_dir_");
- Directory tempDir2 = new Directory("/tmp/dart_temp_dir_");
+ Directory tempDir1;
+ Directory tempDir2;
bool stage1aDone = false;
bool stage1bDone = false;
bool emptyTemplateTestRunning = false;
@@ -261,18 +236,14 @@ class DirectoryTest {
Function stage2;
Function stage3; // Loops to stage 0.
- Function error(e) {
- Expect.fail("Directory onError: $e");
- }
-
stage0 = () {
- tempDir1.onError = error;
- tempDir1.createTemp(stage1a);
- tempDir2.onError = error;
- tempDir2.createTemp(stage1b);
+ var dir = new Directory("/tmp/dart_temp_dir_");
+ dir.createTemp().then(stage1a);
+ dir.createTemp().then(stage1b);
};
- stage1a = () {
+ stage1a = (temp) {
+ tempDir1 = temp;
stage1aDone = true;
Expect.isTrue(tempDir1.existsSync());
if (stage1bDone) {
@@ -280,7 +251,8 @@ class DirectoryTest {
}
};
- stage1b = () {
+ stage1b = (temp) {
+ tempDir2 = temp;
stage1bDone = true;
Expect.isTrue(tempDir2.existsSync());
if (stage1aDone) {
@@ -319,24 +291,20 @@ class DirectoryTest {
}
static void testCreateDeleteTemp() {
- Directory tempDirectory = new Directory("");
- tempDirectory.createTemp(() {
+ new Directory("").createTemp().then((tempDirectory) {
String filename = tempDirectory.path +
Platform.pathSeparator + "dart_testfile";
File file = new File(filename);
Expect.isFalse(file.existsSync());
- file.onError = (e) {
- Expect.fail("testCreateTemp file.onError called: $e");
- };
- file.create(() {
- file.exists((bool exists) {
+ file.create().then((ignore) {
+ file.exists().then((exists) {
Expect.isTrue(exists);
// Try to delete the directory containing the file - should throw.
Expect.throws(tempDirectory.deleteSync);
Expect.isTrue(tempDirectory.existsSync());
// Delete the file, and then delete the directory.
- file.delete(() {
+ file.delete().then((ignore) {
tempDirectory.deleteSync();
Expect.isFalse(tempDirectory.existsSync());
});
@@ -374,26 +342,19 @@ class NestedTempDirectoryTest {
Directory current;
NestedTempDirectoryTest.run()
- : createdDirectories = new List<Directory>(),
- current = new Directory("") {
- current.onError = errorCallback;
- current.createTemp(createPhaseCallback);
+ : createdDirectories = new List<Directory>() {
+ new Directory("").createTemp().then(createPhaseCallback);
}
- void errorCallback(e) {
- Expect.fail("Error callback called in NestedTempDirectoryTest: $e");
- }
-
- void createPhaseCallback() {
- createdDirectories.add(current);
+ void createPhaseCallback(temp) {
+ createdDirectories.add(temp);
int nestingDepth = 6;
var os = Platform.operatingSystem;
if (os == "windows") nestingDepth = 2;
if (createdDirectories.length < nestingDepth) {
- current = new Directory(
- current.path + "/nested_temp_dir_${createdDirectories.length}_");
- current.onError = errorCallback;
- current.createTemp(createPhaseCallback);
+ temp = new Directory(
+ '${temp.path}/nested_temp_dir_${createdDirectories.length}_');
+ temp.createTemp().then(createPhaseCallback);
} else {
deletePhaseCallback();
}
@@ -440,15 +401,9 @@ testCreateTempError() {
var location = illegalTempDirectoryLocation();
if (location == null) return;
- var resultPort = new ReceivePort();
- resultPort.receive((String message, ignored) {
- resultPort.close();
- Expect.equals("error", message);
- });
-
- Directory dir = new Directory(location);
- dir.onError = (e) { resultPort.toSendPort().send("error"); };
- dir.createTemp(() => resultPort.toSendPort().send("success"));
+ var port = new ReceivePort();
+ var future = new Directory(location).createTemp();
+ future.handleException((e) => port.close());
}
« no previous file with comments | « tests/standalone/io/directory_invalid_arguments_test.dart ('k') | tests/standalone/io/file_error_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698