diff options
Diffstat (limited to 'webkit')
3 files changed, 34 insertions, 23 deletions
diff --git a/webkit/browser/fileapi/async_file_test_helper.cc b/webkit/browser/fileapi/async_file_test_helper.cc index 8a01fd2..ff38d1f8 100644 --- a/webkit/browser/fileapi/async_file_test_helper.cc +++ b/webkit/browser/fileapi/async_file_test_helper.cc @@ -3,6 +3,8 @@ // found in the LICENSE file. #include "base/bind.h" +#include "base/file_util.h" +#include "base/files/scoped_temp_dir.h" #include "base/run_loop.h" #include "testing/gtest/include/gtest/gtest.h" #include "webkit/browser/fileapi/async_file_test_helper.h" @@ -164,6 +166,25 @@ base::PlatformFileError AsyncFileTestHelper::CreateFile( return result; } +base::PlatformFileError AsyncFileTestHelper::CreateFileWithData( + FileSystemContext* context, + const FileSystemURL& url, + const char* buf, + int buf_size) { + base::ScopedTempDir dir; + if (!dir.CreateUniqueTempDir()) + return base::PLATFORM_FILE_ERROR_FAILED; + base::FilePath local_path = dir.path().AppendASCII("tmp"); + if (buf_size != file_util::WriteFile(local_path, buf, buf_size)) + return base::PLATFORM_FILE_ERROR_FAILED; + base::PlatformFileError result = base::PLATFORM_FILE_ERROR_FAILED; + base::RunLoop run_loop; + context->operation_runner()->CopyInForeignFile( + local_path, url, AssignAndQuitCallback(&run_loop, &result)); + run_loop.Run(); + return result; +} + base::PlatformFileError AsyncFileTestHelper::TruncateFile( FileSystemContext* context, const FileSystemURL& url, diff --git a/webkit/browser/fileapi/async_file_test_helper.h b/webkit/browser/fileapi/async_file_test_helper.h index cfa7981..da27bf2 100644 --- a/webkit/browser/fileapi/async_file_test_helper.h +++ b/webkit/browser/fileapi/async_file_test_helper.h @@ -54,6 +54,13 @@ class AsyncFileTestHelper { static base::PlatformFileError CreateFile(FileSystemContext* context, const FileSystemURL& url); + // Creates a file at |url| and fills with |buf|. + static base::PlatformFileError CreateFileWithData( + FileSystemContext* context, + const FileSystemURL& url, + const char* buf, + int buf_size); + // Truncates the file |url| to |size|. static base::PlatformFileError TruncateFile(FileSystemContext* context, const FileSystemURL& url, diff --git a/webkit/browser/fileapi/upload_file_system_file_element_reader_unittest.cc b/webkit/browser/fileapi/upload_file_system_file_element_reader_unittest.cc index e6e0d4c..f79fd735 100644 --- a/webkit/browser/fileapi/upload_file_system_file_element_reader_unittest.cc +++ b/webkit/browser/fileapi/upload_file_system_file_element_reader_unittest.cc @@ -9,9 +9,9 @@ #include "net/base/io_buffer.h" #include "net/base/test_completion_callback.h" #include "testing/gtest/include/gtest/gtest.h" +#include "webkit/browser/fileapi/async_file_test_helper.h" #include "webkit/browser/fileapi/file_system_backend.h" #include "webkit/browser/fileapi/file_system_context.h" -#include "webkit/browser/fileapi/file_system_file_util.h" #include "webkit/browser/fileapi/file_system_operation_context.h" #include "webkit/browser/fileapi/file_system_url.h" #include "webkit/browser/fileapi/mock_file_system_context.h" @@ -89,31 +89,14 @@ class UploadFileSystemFileElementReaderTest : public testing::Test { kFileSystemType, base::FilePath().AppendASCII(filename)); - fileapi::FileSystemFileUtil* file_util = - file_system_context_->GetFileUtil(kFileSystemType); - - fileapi::FileSystemOperationContext context(file_system_context_.get()); - context.set_allowed_bytes_growth(1024); - - base::PlatformFile handle = base::kInvalidPlatformFileValue; - bool created = false; - ASSERT_EQ(base::PLATFORM_FILE_OK, file_util->CreateOrOpen( - &context, - url, - base::PLATFORM_FILE_CREATE | base::PLATFORM_FILE_WRITE, - &handle, - &created)); - EXPECT_TRUE(created); - ASSERT_NE(base::kInvalidPlatformFileValue, handle); - ASSERT_EQ(buf_size, - base::WritePlatformFile(handle, 0 /* offset */, buf, buf_size)); - base::ClosePlatformFile(handle); + ASSERT_EQ(base::PLATFORM_FILE_OK, + AsyncFileTestHelper::CreateFileWithData( + file_system_context_, url, buf, buf_size)); base::PlatformFileInfo file_info; - base::FilePath platform_path; ASSERT_EQ(base::PLATFORM_FILE_OK, - file_util->GetFileInfo(&context, url, &file_info, - &platform_path)); + AsyncFileTestHelper::GetMetadata( + file_system_context_, url, &file_info)); *modification_time = file_info.last_modified; } |