summaryrefslogtreecommitdiffstats
path: root/webkit/fileapi/file_system_operation_unittest.cc
diff options
context:
space:
mode:
authorericu@chromium.org <ericu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-25 05:12:41 +0000
committerericu@chromium.org <ericu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-25 05:12:41 +0000
commit2517cfa5066e63e6ed2642779ea57616ae49eb42 (patch)
treed8e7ff16e4676c38d9789d5329c732fb363ce051 /webkit/fileapi/file_system_operation_unittest.cc
parent3fe4381580b1cf5ed2637aeb6bea25e86e1db9b4 (diff)
downloadchromium_src-2517cfa5066e63e6ed2642779ea57616ae49eb42.zip
chromium_src-2517cfa5066e63e6ed2642779ea57616ae49eb42.tar.gz
chromium_src-2517cfa5066e63e6ed2642779ea57616ae49eb42.tar.bz2
Fix OFSFU's Touch to match the other FSFU subclasses.
Fix its test to enforce that, and add a test for FileSystemOperation::TouchFile. BUG=none TEST=test_shell_tests Review URL: http://codereview.chromium.org/7685039 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98187 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/fileapi/file_system_operation_unittest.cc')
-rw-r--r--webkit/fileapi/file_system_operation_unittest.cc31
1 files changed, 31 insertions, 0 deletions
diff --git a/webkit/fileapi/file_system_operation_unittest.cc b/webkit/fileapi/file_system_operation_unittest.cc
index f56dfe5..50e5ea8 100644
--- a/webkit/fileapi/file_system_operation_unittest.cc
+++ b/webkit/fileapi/file_system_operation_unittest.cc
@@ -956,4 +956,35 @@ TEST_F(FileSystemOperationTest, TestTruncateFailureByQuota) {
EXPECT_EQ(10, info.size);
}
+TEST_F(FileSystemOperationTest, TestTouchFile) {
+ FilePath file_path(CreateVirtualTemporaryFileInDir(FilePath()));
+ FilePath platform_path = PlatformPath(file_path);
+
+ base::PlatformFileInfo info;
+
+ EXPECT_TRUE(file_util::GetFileInfo(platform_path, &info));
+ EXPECT_FALSE(info.is_directory);
+ EXPECT_EQ(0, info.size);
+ const base::Time last_modified = info.last_modified;
+ const base::Time last_accessed = info.last_accessed;
+
+ const base::Time new_modified_time = base::Time::UnixEpoch();
+ const base::Time new_accessed_time = new_modified_time +
+ base::TimeDelta::FromHours(77);;
+ ASSERT_NE(last_modified, new_modified_time);
+ ASSERT_NE(last_accessed, new_accessed_time);
+
+ operation()->TouchFile(URLForPath(file_path), new_accessed_time,
+ new_modified_time);
+ MessageLoop::current()->RunAllPending();
+ EXPECT_EQ(base::PLATFORM_FILE_OK, status());
+
+ EXPECT_TRUE(file_util::GetFileInfo(platform_path, &info));
+ // We compare as time_t here to lower our resolution, to avoid false
+ // negatives caused by conversion to the local filesystem's native
+ // representation and back.
+ EXPECT_EQ(new_modified_time.ToTimeT(), info.last_modified.ToTimeT());
+ EXPECT_EQ(new_accessed_time.ToTimeT(), info.last_accessed.ToTimeT());
+}
+
} // namespace fileapi