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

Unified Diff: webkit/browser/fileapi/file_writer_delegate_unittest.cc

Issue 16311010: Make FileSystemOperation::Write take closure-friendly parameters (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 6 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
Index: webkit/browser/fileapi/file_writer_delegate_unittest.cc
diff --git a/webkit/browser/fileapi/file_writer_delegate_unittest.cc b/webkit/browser/fileapi/file_writer_delegate_unittest.cc
index 36eb72be8b5faac571cbf477cc35cdf23fb7a7b6..14f646726f9f49ad13213619243a16b0e41adbdb 100644
--- a/webkit/browser/fileapi/file_writer_delegate_unittest.cc
+++ b/webkit/browser/fileapi/file_writer_delegate_unittest.cc
@@ -33,6 +33,9 @@ namespace {
const GURL kOrigin("http://example.com");
const FileSystemType kFileSystemType = kFileSystemTypeTest;
+const char kData[] = "The quick brown fox jumps over the lazy dog.\n";
+const int kDataSize = ARRAYSIZE_UNSAFE(kData) - 1;
+
class Result {
public:
Result()
@@ -67,9 +70,6 @@ class Result {
FileWriterDelegate::WriteProgressStatus write_status_;
};
-const char kData[] = "The quick brown fox jumps over the lazy dog.\n";
-const int kDataSize = ARRAYSIZE_UNSAFE(kData) - 1;
-
} // namespace (anonymous)
class FileWriterDelegateTest : public PlatformTest {
@@ -123,17 +123,18 @@ class FileWriterDelegateTest : public PlatformTest {
FileWriterDelegate* CreateWriterDelegate(
const char* test_file_path,
int64 offset,
- int64 allowed_growth,
- Result* result) {
+ int64 allowed_growth) {
SandboxFileStreamWriter* writer = new SandboxFileStreamWriter(
file_system_context_.get(),
GetFileSystemURL(test_file_path),
offset,
*file_system_context_->GetUpdateObservers(kFileSystemType));
writer->set_default_quota(allowed_growth);
- return new FileWriterDelegate(
- base::Bind(&Result::DidWrite, base::Unretained(result)),
- scoped_ptr<FileStreamWriter>(writer));
+ return new FileWriterDelegate(scoped_ptr<FileStreamWriter>(writer));
+ }
+
+ FileWriterDelegate::DelegateWriteCallback GetWriteCallback(Result* result) {
+ return base::Bind(&Result::DidWrite, base::Unretained(result));
}
// Creates and sets up a FileWriterDelegate for writing the given |blob_url|,
@@ -142,10 +143,8 @@ class FileWriterDelegateTest : public PlatformTest {
const GURL& blob_url,
int64 offset,
int64 allowed_growth) {
- result_.reset(new Result());
file_writer_delegate_.reset(
- CreateWriterDelegate(test_file_path, offset, allowed_growth,
- result_.get()));
+ CreateWriterDelegate(test_file_path, offset, allowed_growth));
request_.reset(empty_context_.CreateRequest(
blob_url, file_writer_delegate_.get()));
}
@@ -160,7 +159,6 @@ class FileWriterDelegateTest : public PlatformTest {
net::URLRequestContext empty_context_;
scoped_ptr<FileWriterDelegate> file_writer_delegate_;
scoped_ptr<net::URLRequest> request_;
- scoped_ptr<Result> result_;
base::ScopedTempDir dir_;
@@ -259,17 +257,18 @@ TEST_F(FileWriterDelegateTest, WriteSuccessWithoutQuotaLimit) {
PrepareForWrite("test", kBlobURL, 0, kint64max);
+ Result result;
ASSERT_EQ(0, usage());
- file_writer_delegate_->Start(request_.Pass());
+ file_writer_delegate_->Start(request_.Pass(), GetWriteCallback(&result));
base::MessageLoop::current()->Run();
- ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result_->write_status());
+ ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status());
file_writer_delegate_.reset();
ASSERT_EQ(kDataSize, usage());
EXPECT_EQ(GetFileSizeOnDisk("test"), usage());
- EXPECT_EQ(kDataSize, result_->bytes_written());
- EXPECT_EQ(base::PLATFORM_FILE_OK, result_->status());
+ EXPECT_EQ(kDataSize, result.bytes_written());
+ EXPECT_EQ(base::PLATFORM_FILE_OK, result.status());
}
TEST_F(FileWriterDelegateTest, WriteSuccessWithJustQuota) {
@@ -278,17 +277,18 @@ TEST_F(FileWriterDelegateTest, WriteSuccessWithJustQuota) {
const int64 kAllowedGrowth = kDataSize;
PrepareForWrite("test", kBlobURL, 0, kAllowedGrowth);
+ Result result;
ASSERT_EQ(0, usage());
- file_writer_delegate_->Start(request_.Pass());
+ file_writer_delegate_->Start(request_.Pass(), GetWriteCallback(&result));
base::MessageLoop::current()->Run();
- ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result_->write_status());
+ ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status());
file_writer_delegate_.reset();
ASSERT_EQ(kAllowedGrowth, usage());
EXPECT_EQ(GetFileSizeOnDisk("test"), usage());
- EXPECT_EQ(kAllowedGrowth, result_->bytes_written());
- EXPECT_EQ(base::PLATFORM_FILE_OK, result_->status());
+ EXPECT_EQ(kAllowedGrowth, result.bytes_written());
+ EXPECT_EQ(base::PLATFORM_FILE_OK, result.status());
}
TEST_F(FileWriterDelegateTest, DISABLED_WriteFailureByQuota) {
@@ -297,18 +297,19 @@ TEST_F(FileWriterDelegateTest, DISABLED_WriteFailureByQuota) {
const int64 kAllowedGrowth = kDataSize - 1;
PrepareForWrite("test", kBlobURL, 0, kAllowedGrowth);
+ Result result;
ASSERT_EQ(0, usage());
- file_writer_delegate_->Start(request_.Pass());
+ file_writer_delegate_->Start(request_.Pass(), GetWriteCallback(&result));
base::MessageLoop::current()->Run();
- ASSERT_EQ(FileWriterDelegate::ERROR_WRITE_STARTED, result_->write_status());
+ ASSERT_EQ(FileWriterDelegate::ERROR_WRITE_STARTED, result.write_status());
file_writer_delegate_.reset();
ASSERT_EQ(kAllowedGrowth, usage());
EXPECT_EQ(GetFileSizeOnDisk("test"), usage());
- EXPECT_EQ(kAllowedGrowth, result_->bytes_written());
- EXPECT_EQ(base::PLATFORM_FILE_ERROR_NO_SPACE, result_->status());
- ASSERT_EQ(FileWriterDelegate::ERROR_WRITE_STARTED, result_->write_status());
+ EXPECT_EQ(kAllowedGrowth, result.bytes_written());
+ EXPECT_EQ(base::PLATFORM_FILE_ERROR_NO_SPACE, result.status());
+ ASSERT_EQ(FileWriterDelegate::ERROR_WRITE_STARTED, result.write_status());
}
TEST_F(FileWriterDelegateTest, WriteZeroBytesSuccessfullyWithZeroQuota) {
@@ -317,24 +318,24 @@ TEST_F(FileWriterDelegateTest, WriteZeroBytesSuccessfullyWithZeroQuota) {
int64 kAllowedGrowth = 0;
PrepareForWrite("test", kBlobURL, 0, kAllowedGrowth);
+ Result result;
ASSERT_EQ(0, usage());
- file_writer_delegate_->Start(request_.Pass());
+ file_writer_delegate_->Start(request_.Pass(), GetWriteCallback(&result));
base::MessageLoop::current()->Run();
- ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result_->write_status());
+ ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status());
file_writer_delegate_.reset();
ASSERT_EQ(kAllowedGrowth, usage());
EXPECT_EQ(GetFileSizeOnDisk("test"), usage());
- EXPECT_EQ(kAllowedGrowth, result_->bytes_written());
- EXPECT_EQ(base::PLATFORM_FILE_OK, result_->status());
- ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result_->write_status());
+ EXPECT_EQ(kAllowedGrowth, result.bytes_written());
+ EXPECT_EQ(base::PLATFORM_FILE_OK, result.status());
+ ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status());
}
TEST_F(FileWriterDelegateTest, WriteSuccessWithoutQuotaLimitConcurrent) {
scoped_ptr<FileWriterDelegate> file_writer_delegate2;
scoped_ptr<net::URLRequest> request2;
- scoped_ptr<Result> result2;
bool created = false;
file_util()->EnsureFileExists(NewOperationContext().get(),
@@ -349,32 +350,31 @@ TEST_F(FileWriterDelegateTest, WriteSuccessWithoutQuotaLimitConcurrent) {
PrepareForWrite("test", kBlobURL, 0, kint64max);
// Credate another FileWriterDelegate for concurrent write.
- result2.reset(new Result());
- file_writer_delegate2.reset(CreateWriterDelegate(
- "test2", 0, kint64max, result2.get()));
+ file_writer_delegate2.reset(CreateWriterDelegate("test2", 0, kint64max));
request2.reset(empty_context_.CreateRequest(
kBlobURL2, file_writer_delegate2.get()));
+ Result result, result2;
ASSERT_EQ(0, usage());
- file_writer_delegate_->Start(request_.Pass());
- file_writer_delegate2->Start(request2.Pass());
+ file_writer_delegate_->Start(request_.Pass(), GetWriteCallback(&result));
+ file_writer_delegate2->Start(request2.Pass(), GetWriteCallback(&result2));
base::MessageLoop::current()->Run();
- if (result_->write_status() == FileWriterDelegate::SUCCESS_IO_PENDING ||
- result2->write_status() == FileWriterDelegate::SUCCESS_IO_PENDING)
+ if (result.write_status() == FileWriterDelegate::SUCCESS_IO_PENDING ||
+ result2.write_status() == FileWriterDelegate::SUCCESS_IO_PENDING)
base::MessageLoop::current()->Run();
- ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result_->write_status());
- ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result2->write_status());
+ ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status());
+ ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result2.write_status());
file_writer_delegate_.reset();
file_writer_delegate2.reset();
ASSERT_EQ(kDataSize * 2, usage());
EXPECT_EQ(GetFileSizeOnDisk("test") + GetFileSizeOnDisk("test2"), usage());
- EXPECT_EQ(kDataSize, result_->bytes_written());
- EXPECT_EQ(base::PLATFORM_FILE_OK, result_->status());
- EXPECT_EQ(kDataSize, result2->bytes_written());
- EXPECT_EQ(base::PLATFORM_FILE_OK, result2->status());
+ EXPECT_EQ(kDataSize, result.bytes_written());
+ EXPECT_EQ(base::PLATFORM_FILE_OK, result.status());
+ EXPECT_EQ(kDataSize, result2.bytes_written());
+ EXPECT_EQ(base::PLATFORM_FILE_OK, result2.status());
}
TEST_F(FileWriterDelegateTest, WritesWithQuotaAndOffset) {
@@ -387,29 +387,35 @@ TEST_F(FileWriterDelegateTest, WritesWithQuotaAndOffset) {
ASSERT_LT(kDataSize, allowed_growth);
PrepareForWrite("test", kBlobURL, offset, allowed_growth);
- ASSERT_EQ(0, usage());
- file_writer_delegate_->Start(request_.Pass());
- base::MessageLoop::current()->Run();
- ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result_->write_status());
- file_writer_delegate_.reset();
+ {
+ Result result;
+ ASSERT_EQ(0, usage());
+ file_writer_delegate_->Start(request_.Pass(), GetWriteCallback(&result));
+ base::MessageLoop::current()->Run();
+ ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status());
+ file_writer_delegate_.reset();
- ASSERT_EQ(kDataSize, usage());
- EXPECT_EQ(GetFileSizeOnDisk("test"), usage());
- EXPECT_EQ(kDataSize, result_->bytes_written());
- EXPECT_EQ(base::PLATFORM_FILE_OK, result_->status());
+ ASSERT_EQ(kDataSize, usage());
+ EXPECT_EQ(GetFileSizeOnDisk("test"), usage());
+ EXPECT_EQ(kDataSize, result.bytes_written());
+ EXPECT_EQ(base::PLATFORM_FILE_OK, result.status());
+ }
// Trying to overwrite kDataSize bytes data while allowed_growth is 20.
offset = 0;
allowed_growth = 20;
PrepareForWrite("test", kBlobURL, offset, allowed_growth);
- file_writer_delegate_->Start(request_.Pass());
- base::MessageLoop::current()->Run();
- EXPECT_EQ(kDataSize, usage());
- EXPECT_EQ(GetFileSizeOnDisk("test"), usage());
- EXPECT_EQ(kDataSize, result_->bytes_written());
- EXPECT_EQ(base::PLATFORM_FILE_OK, result_->status());
- ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result_->write_status());
+ {
+ Result result;
+ file_writer_delegate_->Start(request_.Pass(), GetWriteCallback(&result));
+ base::MessageLoop::current()->Run();
+ EXPECT_EQ(kDataSize, usage());
+ EXPECT_EQ(GetFileSizeOnDisk("test"), usage());
+ EXPECT_EQ(kDataSize, result.bytes_written());
+ EXPECT_EQ(base::PLATFORM_FILE_OK, result.status());
+ ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status());
+ }
// Trying to write kDataSize bytes data from offset 25 while
// allowed_growth is 55.
@@ -417,31 +423,37 @@ TEST_F(FileWriterDelegateTest, WritesWithQuotaAndOffset) {
allowed_growth = 55;
PrepareForWrite("test", kBlobURL, offset, allowed_growth);
- file_writer_delegate_->Start(request_.Pass());
- base::MessageLoop::current()->Run();
- ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result_->write_status());
- file_writer_delegate_.reset();
+ {
+ Result result;
+ file_writer_delegate_->Start(request_.Pass(), GetWriteCallback(&result));
+ base::MessageLoop::current()->Run();
+ ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status());
+ file_writer_delegate_.reset();
- EXPECT_EQ(offset + kDataSize, usage());
- EXPECT_EQ(GetFileSizeOnDisk("test"), usage());
- EXPECT_EQ(kDataSize, result_->bytes_written());
- EXPECT_EQ(base::PLATFORM_FILE_OK, result_->status());
+ EXPECT_EQ(offset + kDataSize, usage());
+ EXPECT_EQ(GetFileSizeOnDisk("test"), usage());
+ EXPECT_EQ(kDataSize, result.bytes_written());
+ EXPECT_EQ(base::PLATFORM_FILE_OK, result.status());
+ }
// Trying to overwrite 45 bytes data while allowed_growth is -20.
offset = 0;
allowed_growth = -20;
PrepareForWrite("test", kBlobURL, offset, allowed_growth);
-
int64 pre_write_usage = GetFileSizeOnDisk("test");
- file_writer_delegate_->Start(request_.Pass());
- base::MessageLoop::current()->Run();
- ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result_->write_status());
- file_writer_delegate_.reset();
- EXPECT_EQ(pre_write_usage, usage());
- EXPECT_EQ(GetFileSizeOnDisk("test"), usage());
- EXPECT_EQ(kDataSize, result_->bytes_written());
- EXPECT_EQ(base::PLATFORM_FILE_OK, result_->status());
+ {
+ Result result;
+ file_writer_delegate_->Start(request_.Pass(), GetWriteCallback(&result));
+ base::MessageLoop::current()->Run();
+ ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status());
+ file_writer_delegate_.reset();
+
+ EXPECT_EQ(pre_write_usage, usage());
+ EXPECT_EQ(GetFileSizeOnDisk("test"), usage());
+ EXPECT_EQ(kDataSize, result.bytes_written());
+ EXPECT_EQ(base::PLATFORM_FILE_OK, result.status());
+ }
// Trying to overwrite 45 bytes data with offset pre_write_usage - 20,
// while allowed_growth is 10.
@@ -450,16 +462,18 @@ TEST_F(FileWriterDelegateTest, WritesWithQuotaAndOffset) {
allowed_growth = 10;
PrepareForWrite("test", kBlobURL, offset, allowed_growth);
- file_writer_delegate_->Start(request_.Pass());
- base::MessageLoop::current()->Run();
- ASSERT_EQ(FileWriterDelegate::ERROR_WRITE_STARTED, result_->write_status());
- file_writer_delegate_.reset();
+ {
+ Result result;
+ file_writer_delegate_->Start(request_.Pass(), GetWriteCallback(&result));
+ base::MessageLoop::current()->Run();
+ ASSERT_EQ(FileWriterDelegate::ERROR_WRITE_STARTED, result.write_status());
+ file_writer_delegate_.reset();
- EXPECT_EQ(pre_write_usage + allowed_growth,
- usage());
- EXPECT_EQ(GetFileSizeOnDisk("test"), usage());
- EXPECT_EQ(kOverlap + allowed_growth, result_->bytes_written());
- EXPECT_EQ(base::PLATFORM_FILE_ERROR_NO_SPACE, result_->status());
+ EXPECT_EQ(pre_write_usage + allowed_growth, usage());
+ EXPECT_EQ(GetFileSizeOnDisk("test"), usage());
+ EXPECT_EQ(kOverlap + allowed_growth, result.bytes_written());
+ EXPECT_EQ(base::PLATFORM_FILE_ERROR_NO_SPACE, result.status());
+ }
}
} // namespace fileapi

Powered by Google App Engine
This is Rietveld 408576698