Index: content/browser/fileapi/blob_url_request_job_unittest.cc |
diff --git a/content/browser/fileapi/blob_url_request_job_unittest.cc b/content/browser/fileapi/blob_url_request_job_unittest.cc |
index e7ce119671e57135aee902747f7e74abb299e99a..152f624cf43b47bd2e38d4ed157f5d185ac0ed46 100644 |
--- a/content/browser/fileapi/blob_url_request_job_unittest.cc |
+++ b/content/browser/fileapi/blob_url_request_job_unittest.cc |
@@ -23,7 +23,9 @@ |
#include "net/url_request/url_request_context.h" |
#include "net/url_request/url_request_job_factory_impl.h" |
#include "storage/browser/blob/blob_data_builder.h" |
+#include "storage/browser/blob/blob_data_handle.h" |
#include "storage/browser/blob/blob_data_snapshot.h" |
+#include "storage/browser/blob/blob_storage_context.h" |
#include "storage/browser/blob/blob_url_request_job.h" |
#include "storage/browser/fileapi/file_system_context.h" |
#include "storage/browser/fileapi/file_system_operation_context.h" |
@@ -67,7 +69,7 @@ class BlobURLRequestJobTest : public testing::Test { |
net::URLRequest* request, |
net::NetworkDelegate* network_delegate) const override { |
return new BlobURLRequestJob(request, network_delegate, |
- test_->blob_data_->BuildSnapshot().Pass(), |
+ test_->GetSnapshotFromBuilder(), |
test_->file_system_context_.get(), |
base::MessageLoopProxy::current().get()); |
} |
@@ -103,7 +105,12 @@ class BlobURLRequestJobTest : public testing::Test { |
url_request_context_.set_job_factory(&url_request_job_factory_); |
} |
- void TearDown() override {} |
+ void TearDown() override { |
+ blob_handle_.reset(); |
+ // Clean up for ASAN |
+ base::RunLoop run_loop; |
+ run_loop.RunUntilIdle(); |
+ } |
void SetUpFileSystem() { |
// Prepare file system. |
@@ -215,11 +222,18 @@ class BlobURLRequestJobTest : public testing::Test { |
*expected_result += std::string(kTestFileSystemFileData2 + 6, 7); |
} |
+ scoped_ptr<BlobDataSnapshot> GetSnapshotFromBuilder() { |
+ if (!blob_handle_) { |
+ blob_handle_ = blob_context_.AddFinishedBlob(blob_data_.get()).Pass(); |
+ } |
+ return blob_handle_->CreateSnapshot().Pass(); |
+ } |
+ |
// This only works if all the Blob items have a definite pre-computed length. |
// Otherwise, this will fail a CHECK. |
- int64 GetTotalBlobLength() const { |
+ int64 GetTotalBlobLength() { |
int64 total = 0; |
- scoped_ptr<BlobDataSnapshot> data = blob_data_->BuildSnapshot(); |
+ scoped_ptr<BlobDataSnapshot> data = GetSnapshotFromBuilder(); |
const auto& items = data->items(); |
for (const auto& item : items) { |
int64 length = base::checked_cast<int64>(item->length()); |
@@ -243,6 +257,9 @@ class BlobURLRequestJobTest : public testing::Test { |
base::MessageLoopForIO message_loop_; |
scoped_refptr<storage::FileSystemContext> file_system_context_; |
+ |
+ storage::BlobStorageContext blob_context_; |
+ scoped_ptr<storage::BlobDataHandle> blob_handle_; |
scoped_ptr<BlobDataBuilder> blob_data_; |
scoped_ptr<BlobDataSnapshot> blob_data_snapshot_; |
net::URLRequestJobFactoryImpl url_request_job_factory_; |