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

Unified Diff: content/browser/fileapi/blob_url_request_job_unittest.cc

Issue 895933007: [Storage] Blob items are now shared between blobs. Ready for disk swap. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Cleanup and added one more histogram Created 5 years, 10 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: 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_;
« no previous file with comments | « content/browser/fileapi/blob_storage_context_unittest.cc ('k') | content/browser/fileapi/chrome_blob_storage_context.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698