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

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

Issue 2681683005: [dart:io] Adds functions to set file access and modification time (Closed)
Patch Set: Update changelog Created 3 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
« no previous file with comments | « sdk/lib/io/link.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/standalone/io/file_test.dart
diff --git a/tests/standalone/io/file_test.dart b/tests/standalone/io/file_test.dart
index 7c3295da55cb4bf79318313454453fef54c2d375..701add300ac493b2dce7a5a7928f0104c6c2326a 100644
--- a/tests/standalone/io/file_test.dart
+++ b/tests/standalone/io/file_test.dart
@@ -1261,6 +1261,15 @@ class FileTest {
});
}
+ static void testLastAccessed() {
+ asyncTestStarted();
+ new File(Platform.executable).lastAccessed().then((accessed) {
+ Expect.isTrue(accessed is DateTime);
+ Expect.isTrue(accessed.isBefore(new DateTime.now()));
+ asyncTestDone("testLastAccessed");
+ });
+ }
+
static void testDoubleAsyncOperation() {
asyncTestStarted();
var file = new File(Platform.executable).openSync();
@@ -1290,6 +1299,12 @@ class FileTest {
Expect.isTrue(modified.isBefore(new DateTime.now()));
}
+ static void testLastAccessedSync() {
+ var accessed = new File(Platform.executable).lastAccessedSync();
+ Expect.isTrue(accessed is DateTime);
+ Expect.isTrue(accessed.isBefore(new DateTime.now()));
+ }
+
static void testLastModifiedSyncDirectory() {
Directory tmp = tempDirectory.createTempSync('file_last_modified_test_');
String dirPath = '${tmp.path}/dir';
@@ -1307,6 +1322,115 @@ class FileTest {
}
}
+ static void testLastAccessedSyncDirectory() {
+ Directory tmp = tempDirectory.createTempSync('file_last_accessed_test_');
+ String dirPath = '${tmp.path}/dir';
+ new Directory(dirPath).createSync();
+ try {
+ new File(dirPath).lastAccessedSync();
+ Expect.fail('Expected operation to throw');
+ } catch (e) {
+ if (e is! FileSystemException) {
+ print(e);
+ }
+ Expect.isTrue(e is FileSystemException);
+ } finally {
+ tmp.deleteSync(recursive: true);
+ }
+ }
+
+ static void testSetLastModifiedSync() {
+ String newFilePath = '${tempDirectory.path}/set_last_modified_sync_test';
+ File file = new File(newFilePath);
+ file.createSync();
+ DateTime modifiedTime = new DateTime(2016, 1, 1);
+ file.setLastModifiedSync(modifiedTime);
+ FileStat stat = file.statSync();
+ Expect.equals(2016, stat.modified.year);
+ Expect.equals(1, stat.modified.month);
+ Expect.equals(1, stat.modified.day);
+ }
+
+
+ static testSetLastModified() async {
+ asyncTestStarted();
+ String newFilePath = '${tempDirectory.path}/set_last_modified_test';
+ File file = new File(newFilePath);
+ file.createSync();
+ DateTime modifiedTime = new DateTime(2016, 1, 1);
+ await file.setLastModified(modifiedTime);
+ FileStat stat = await file.stat();
+ Expect.equals(2016, stat.modified.year);
+ Expect.equals(1, stat.modified.month);
+ Expect.equals(1, stat.modified.day);
+ asyncTestDone("testSetLastModified");
+ }
+
+
+ static void testSetLastModifiedSyncDirectory() {
+ Directory tmp = tempDirectory.createTempSync('file_last_modified_test_');
+ String dirPath = '${tmp.path}/dir';
+ new Directory(dirPath).createSync();
+ try {
+ DateTime modifiedTime = new DateTime(2016, 1, 1);
+ new File(dirPath).setLastModifiedSync(modifiedTime);
+ Expect.fail('Expected operation to throw');
+ } catch (e) {
+ if (e is! FileSystemException) {
+ print(e);
+ }
+ Expect.isTrue(e is FileSystemException);
+ } finally {
+ tmp.deleteSync(recursive: true);
+ }
+ }
+
+ static void testSetLastAccessedSync() {
+ String newFilePath = '${tempDirectory.path}/set_last_accessed_sync_test';
+ File file = new File(newFilePath);
+ file.createSync();
+ DateTime accessedTime = new DateTime(2016, 1, 1);
+ file.setLastAccessedSync(accessedTime);
+ FileStat stat = file.statSync();
+ Expect.equals(2016, stat.accessed.year);
+ Expect.equals(1, stat.accessed.month);
+ Expect.equals(1, stat.accessed.day);
+ }
+
+
+ static testSetLastAccessed() async {
+ asyncTestStarted();
+ String newFilePath = '${tempDirectory.path}/set_last_accessed_test';
+ File file = new File(newFilePath);
+ file.createSync();
+ DateTime accessedTime = new DateTime(2016, 1, 1);
+ await file.setLastAccessed(accessedTime);
+ FileStat stat = await file.stat();
+ Expect.equals(2016, stat.accessed.year);
+ Expect.equals(1, stat.accessed.month);
+ Expect.equals(1, stat.accessed.day);
+ asyncTestDone("testSetLastAccessed");
+ }
+
+
+ static void testSetLastAccessedSyncDirectory() {
+ Directory tmp = tempDirectory.createTempSync('file_last_accessed_test_');
+ String dirPath = '${tmp.path}/dir';
+ new Directory(dirPath).createSync();
+ try {
+ DateTime accessedTime = new DateTime(2016, 1, 1);
+ new File(dirPath).setLastAccessedSync(accessedTime);
+ Expect.fail('Expected operation to throw');
+ } catch (e) {
+ if (e is! FileSystemException) {
+ print(e);
+ }
+ Expect.isTrue(e is FileSystemException);
+ } finally {
+ tmp.deleteSync(recursive: true);
+ }
+ }
+
// Test that opens the same file for writing then for appending to test
// that the file is not truncated when opened for appending.
static void testAppend() {
@@ -1481,6 +1605,7 @@ class FileTest {
testReadAsTextSyncEmptyFile();
testReadAsLinesSync();
testLastModifiedSync();
+ testLastAccessedSync();
createTempDirectory(() {
testLength();
@@ -1524,7 +1649,15 @@ class FileTest {
testRename(targetExists: true);
testRenameSync(targetExists: true);
testLastModified();
+ testLastAccessed();
testLastModifiedSyncDirectory();
+ testLastAccessedSyncDirectory();
+ testSetLastModified();
+ testSetLastModifiedSync();
+ testSetLastModifiedSyncDirectory();
+ testSetLastAccessed();
+ testSetLastAccessedSync();
+ testSetLastAccessedSyncDirectory();
testDoubleAsyncOperation();
asyncEnd();
});
« no previous file with comments | « sdk/lib/io/link.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698