diff options
author | dmikurube@google.com <dmikurube@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-26 12:21:51 +0000 |
---|---|---|
committer | dmikurube@google.com <dmikurube@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-26 12:21:51 +0000 |
commit | 3a7f439361a10ba1e8a001b6ecbe36c81836cf55 (patch) | |
tree | 9b335dd6f82df60a4c5081ccc6e1da866e2b826b /webkit/fileapi/file_system_operation_write_unittest.cc | |
parent | d04ebe5ddba584e5302507ebd7caee9669188009 (diff) | |
download | chromium_src-3a7f439361a10ba1e8a001b6ecbe36c81836cf55.zip chromium_src-3a7f439361a10ba1e8a001b6ecbe36c81836cf55.tar.gz chromium_src-3a7f439361a10ba1e8a001b6ecbe36c81836cf55.tar.bz2 |
Update .usage in QuotaFileUtil and FileWriterDelegate.
BUG=74841
TEST=QuotaFileUtilTest.*,FileWriterDelegateTest.*,FileSystemOperationWriteTest.*
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83006 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/fileapi/file_system_operation_write_unittest.cc')
-rw-r--r-- | webkit/fileapi/file_system_operation_write_unittest.cc | 67 |
1 files changed, 53 insertions, 14 deletions
diff --git a/webkit/fileapi/file_system_operation_write_unittest.cc b/webkit/fileapi/file_system_operation_write_unittest.cc index b6389a4..2f996ab 100644 --- a/webkit/fileapi/file_system_operation_write_unittest.cc +++ b/webkit/fileapi/file_system_operation_write_unittest.cc @@ -21,8 +21,12 @@ #include "webkit/blob/blob_storage_controller.h" #include "webkit/blob/blob_url_request_job.h" #include "webkit/fileapi/file_system_callback_dispatcher.h" +#include "webkit/fileapi/file_system_context.h" #include "webkit/fileapi/file_system_file_util.h" #include "webkit/fileapi/file_system_operation.h" +#include "webkit/fileapi/file_system_path_manager.h" +#include "webkit/fileapi/file_system_util.h" +#include "webkit/fileapi/local_file_system_file_util.h" namespace fileapi { @@ -56,20 +60,18 @@ class FileSystemOperationWriteTest : public testing::Test { virtual void TearDown(); protected: - GURL URLForRelativePath(const std::string& path) const { - // Only the path will actually get used. - return GURL("file://").Resolve(file_.value()).Resolve(path); - } - GURL URLForPath(const FilePath& path) const { // Only the path will actually get used. - return GURL("file://").Resolve(path.value()); + return GURL(GetFileSystemRootURI(GURL("http://www.example.com/"), + kFileSystemTypeTemporary).spec() + path.MaybeAsASCII()); } MessageLoop loop_; ScopedTempDir dir_; + FilePath filesystem_dir_; FilePath file_; + FilePath virtual_path_; // For post-operation status. base::PlatformFileError status_; @@ -81,6 +83,25 @@ class FileSystemOperationWriteTest : public testing::Test { namespace { +class MockFileSystemPathManager : public FileSystemPathManager { + public: + MockFileSystemPathManager(const FilePath& filesystem_path) + : FileSystemPathManager(base::MessageLoopProxy::CreateForCurrentThread(), + filesystem_path, NULL, false, true), + test_filesystem_path_(filesystem_path) {} + + virtual FilePath ValidateFileSystemRootAndGetPathOnFileThread( + const GURL& origin_url, + FileSystemType type, + const FilePath& virtual_path, + bool create) { + return test_filesystem_path_; + } + + private: + FilePath test_filesystem_path_; +}; + class TestURLRequestContext : public net::URLRequestContext { public: webkit_blob::BlobStorageController* blob_storage_controller() { @@ -149,7 +170,11 @@ class MockDispatcher : public FileSystemCallbackDispatcher { void FileSystemOperationWriteTest::SetUp() { ASSERT_TRUE(dir_.CreateUniqueTempDir()); - file_util::CreateTemporaryFileInDir(dir_.path(), &file_); + filesystem_dir_ = dir_.path().AppendASCII("filesystem"); + file_util::CreateDirectory(filesystem_dir_); + ASSERT_TRUE(file_util::CreateTemporaryFileInDir(filesystem_dir_, &file_)); + virtual_path_ = file_.BaseName(); + net::URLRequest::RegisterProtocolFactory("blob", &BlobURLRequestJobFactory); } @@ -161,8 +186,12 @@ FileSystemOperation* FileSystemOperationWriteTest::operation() { FileSystemOperation* operation = new FileSystemOperation( new MockDispatcher(this), base::MessageLoopProxy::CreateForCurrentThread(), - NULL, - FileSystemFileUtil::GetInstance()); + new FileSystemContext(base::MessageLoopProxy::CreateForCurrentThread(), + base::MessageLoopProxy::CreateForCurrentThread(), + NULL, FilePath(), false /* is_incognito */, + true, true, + new MockFileSystemPathManager(filesystem_dir_)), + LocalFileSystemFileUtil::GetInstance()); operation->file_system_operation_context()->set_src_type( kFileSystemTypeTemporary); operation->file_system_operation_context()->set_dest_type( @@ -180,7 +209,8 @@ TEST_F(FileSystemOperationWriteTest, TestWriteSuccess) { url_request_context->blob_storage_controller()-> RegisterBlobUrl(blob_url, blob_data); - operation()->Write(url_request_context, URLForPath(file_), blob_url, 0); + operation()->Write(url_request_context, URLForPath(virtual_path_), blob_url, + 0); MessageLoop::current()->Run(); url_request_context->blob_storage_controller()->UnregisterBlobUrl(blob_url); @@ -200,7 +230,8 @@ TEST_F(FileSystemOperationWriteTest, TestWriteZero) { url_request_context->blob_storage_controller()-> RegisterBlobUrl(blob_url, blob_data); - operation()->Write(url_request_context, URLForPath(file_), blob_url, 0); + operation()->Write(url_request_context, URLForPath(virtual_path_), + blob_url, 0); MessageLoop::current()->Run(); url_request_context->blob_storage_controller()->UnregisterBlobUrl(blob_url); @@ -214,7 +245,7 @@ TEST_F(FileSystemOperationWriteTest, TestWriteInvalidBlobUrl) { scoped_refptr<TestURLRequestContext> url_request_context( new TestURLRequestContext()); - operation()->Write(url_request_context, URLForPath(file_), + operation()->Write(url_request_context, URLForPath(virtual_path_), GURL("blob:invalid"), 0); MessageLoop::current()->Run(); @@ -234,7 +265,8 @@ TEST_F(FileSystemOperationWriteTest, TestWriteInvalidFile) { RegisterBlobUrl(blob_url, blob_data); operation()->Write(url_request_context, - URLForRelativePath("nonexist"), blob_url, 0); + URLForPath(FilePath(FILE_PATH_LITERAL("nonexist"))), + blob_url, 0); MessageLoop::current()->Run(); url_request_context->blob_storage_controller()->UnregisterBlobUrl(blob_url); @@ -245,6 +277,12 @@ TEST_F(FileSystemOperationWriteTest, TestWriteInvalidFile) { } TEST_F(FileSystemOperationWriteTest, TestWriteDir) { + FilePath subdir; + ASSERT_TRUE(file_util::CreateTemporaryDirInDir(filesystem_dir_, + FILE_PATH_LITERAL("d"), + &subdir)); + FilePath virtual_subdir_path = subdir.BaseName(); + GURL blob_url("blob:writedir"); scoped_refptr<webkit_blob::BlobData> blob_data(new webkit_blob::BlobData()); blob_data->AppendData("It\'ll not be written, too."); @@ -254,7 +292,8 @@ TEST_F(FileSystemOperationWriteTest, TestWriteDir) { url_request_context->blob_storage_controller()-> RegisterBlobUrl(blob_url, blob_data); - operation()->Write(url_request_context, URLForPath(dir_.path()), blob_url, 0); + operation()->Write(url_request_context, URLForPath(virtual_subdir_path), + blob_url, 0); MessageLoop::current()->Run(); url_request_context->blob_storage_controller()->UnregisterBlobUrl(blob_url); |