diff options
author | kinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-28 02:01:38 +0000 |
---|---|---|
committer | kinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-28 02:01:38 +0000 |
commit | 09dd320b7078a141e312c0bcf7297c431ed6469f (patch) | |
tree | 5df0ddb87521e16942aac4bcaa1195fbfc9b3273 /webkit/fileapi/file_system_operation_unittest.cc | |
parent | 877752c5bf03086faa38aa4e4d0ecaeed802403f (diff) | |
download | chromium_src-09dd320b7078a141e312c0bcf7297c431ed6469f.zip chromium_src-09dd320b7078a141e312c0bcf7297c431ed6469f.tar.gz chromium_src-09dd320b7078a141e312c0bcf7297c431ed6469f.tar.bz2 |
Adding CreateSnapshotFile interface to FileSystemOperationInterface
To allow each filesystem implementation to prepare a local snapshot file
for File object.
BUG=115603
TEST=none
Review URL: https://chromiumcodereview.appspot.com/9462005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123864 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/fileapi/file_system_operation_unittest.cc')
-rw-r--r-- | webkit/fileapi/file_system_operation_unittest.cc | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/webkit/fileapi/file_system_operation_unittest.cc b/webkit/fileapi/file_system_operation_unittest.cc index 15f0d2b..dcd0238 100644 --- a/webkit/fileapi/file_system_operation_unittest.cc +++ b/webkit/fileapi/file_system_operation_unittest.cc @@ -13,6 +13,7 @@ #include "base/scoped_temp_dir.h" #include "googleurl/src/gurl.h" #include "testing/gtest/include/gtest/gtest.h" +#include "webkit/blob/deletable_file_reference.h" #include "webkit/fileapi/file_system_context.h" #include "webkit/fileapi/file_system_file_util.h" #include "webkit/fileapi/file_system_mount_point_provider.h" @@ -28,6 +29,7 @@ using quota::QuotaClient; using quota::QuotaManager; using quota::QuotaManagerProxy; using quota::StorageType; +using webkit_blob::DeletableFileReference; namespace fileapi { @@ -168,6 +170,9 @@ class FileSystemOperationTest const std::vector<base::FileUtilProxy::Entry>& entries() const { return entries_; } + const DeletableFileReference* deletable_file_ref() const { + return deletable_file_ref_; + } virtual void SetUp(); virtual void TearDown(); @@ -251,6 +256,12 @@ class FileSystemOperationTest return base::Bind(&FileSystemOperationTest::DidGetMetadata, AsWeakPtr()); } + FileSystemOperationInterface::SnapshotFileCallback + RecordSnapshotFileCallback() { + return base::Bind(&FileSystemOperationTest::DidCreateSnapshotFile, + AsWeakPtr()); + } + void DidFinish(base::PlatformFileError status) { status_ = status; } @@ -271,11 +282,23 @@ class FileSystemOperationTest status_ = status; } + void DidCreateSnapshotFile( + base::PlatformFileError status, + const base::PlatformFileInfo& info, + const FilePath& platform_path, + const scoped_refptr<DeletableFileReference>& deletable_file_ref) { + info_ = info; + path_ = platform_path; + status_ = status; + deletable_file_ref_ = deletable_file_ref; + } + // For post-operation status. int status_; base::PlatformFileInfo info_; FilePath path_; std::vector<base::FileUtilProxy::Entry> entries_; + scoped_refptr<DeletableFileReference> deletable_file_ref_; private: scoped_ptr<LocalFileUtil> local_file_util_; @@ -1014,4 +1037,31 @@ TEST_F(FileSystemOperationTest, TestTouchFile) { EXPECT_EQ(new_accessed_time.ToTimeT(), info.last_accessed.ToTimeT()); } +TEST_F(FileSystemOperationTest, TestCreateSnapshotFile) { + FilePath dir_path(CreateVirtualTemporaryDir()); + + // Create a file for the testing. + operation()->DirectoryExists(URLForPath(dir_path), + RecordStatusCallback()); + FilePath file_path(CreateVirtualTemporaryFileInDir(dir_path)); + operation()->FileExists(URLForPath(file_path), RecordStatusCallback()); + MessageLoop::current()->RunAllPending(); + EXPECT_EQ(base::PLATFORM_FILE_OK, status()); + + // See if we can get a 'snapshot' file info for the file. + // Since FileSystemOperation assumes the file exists in the local directory + // it should just returns the same metadata and platform_path as + // the file itself. + operation()->CreateSnapshotFile(URLForPath(file_path), + RecordSnapshotFileCallback()); + MessageLoop::current()->RunAllPending(); + EXPECT_EQ(base::PLATFORM_FILE_OK, status()); + EXPECT_FALSE(info().is_directory); + EXPECT_EQ(PlatformPath(file_path), path()); + + // The FileSystemOpration implementation does not set the deletable + // file reference. + EXPECT_EQ(NULL, deletable_file_ref()); +} + } // namespace fileapi |