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

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

Issue 810403004: [Storage] Blob Storage Refactoring pt 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: memory leak fixed Created 5 years, 11 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 79824772be6a7851251d7217305ac6077947ffaf..42887d320047da8d1aa9e4a34e6e854664420b79 100644
--- a/content/browser/fileapi/blob_url_request_job_unittest.cc
+++ b/content/browser/fileapi/blob_url_request_job_unittest.cc
@@ -29,7 +29,8 @@
#include "storage/common/blob/blob_data.h"
#include "testing/gtest/include/gtest/gtest.h"
-using storage::BlobData;
+using storage::BlobDataSnapshot;
+using storage::BlobDataBuilder;
using storage::BlobURLRequestJob;
namespace content {
@@ -64,9 +65,8 @@ class BlobURLRequestJobTest : public testing::Test {
net::URLRequestJob* MaybeCreateJob(
net::URLRequest* request,
net::NetworkDelegate* network_delegate) const override {
- return new BlobURLRequestJob(request,
- network_delegate,
- test_->blob_data_.get(),
+ return new BlobURLRequestJob(request, network_delegate,
+ test_->blob_data_snapshot_.get(),
test_->file_system_context_.get(),
base::MessageLoopProxy::current().get());
}
@@ -76,8 +76,7 @@ class BlobURLRequestJobTest : public testing::Test {
};
BlobURLRequestJobTest()
- : blob_data_(new BlobData()),
- expected_status_code_(0) {}
+ : blob_data_(new BlobDataBuilder("uuid")), expected_status_code_(0) {}
void SetUp() override {
ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
@@ -219,16 +218,21 @@ class BlobURLRequestJobTest : public testing::Test {
// Otherwise, this will fail a CHECK.
int64 GetTotalBlobLength() const {
int64 total = 0;
- const std::vector<BlobData::Item>& items = blob_data_->items();
- for (std::vector<BlobData::Item>::const_iterator it = items.begin();
- it != items.end(); ++it) {
- int64 length = base::checked_cast<int64>(it->length());
+ scoped_ptr<BlobDataSnapshot> data = blob_data_->Build();
+ const auto& items = data->items();
+ for (const auto& item : items) {
+ int64 length = base::checked_cast<int64>(item->length());
CHECK(length <= kint64max - total);
total += length;
}
return total;
}
+ // Must be called before testing the request.
+ void CreateSnapshotFromBlobData() {
+ blob_data_snapshot_ = blob_data_->Build().Pass();
+ }
+
protected:
base::ScopedTempDir temp_dir_;
base::FilePath temp_file1_;
@@ -243,7 +247,8 @@ class BlobURLRequestJobTest : public testing::Test {
base::MessageLoopForIO message_loop_;
scoped_refptr<storage::FileSystemContext> file_system_context_;
- scoped_refptr<BlobData> blob_data_;
+ scoped_ptr<BlobDataBuilder> blob_data_;
+ scoped_ptr<BlobDataSnapshot> blob_data_snapshot_;
net::URLRequestJobFactoryImpl url_request_job_factory_;
net::URLRequestContext url_request_context_;
MockURLRequestDelegate url_request_delegate_;
@@ -255,11 +260,13 @@ class BlobURLRequestJobTest : public testing::Test {
TEST_F(BlobURLRequestJobTest, TestGetSimpleDataRequest) {
blob_data_->AppendData(kTestData1);
+ CreateSnapshotFromBlobData();
TestSuccessNonrangeRequest(kTestData1, arraysize(kTestData1) - 1);
}
TEST_F(BlobURLRequestJobTest, TestGetSimpleFileRequest) {
blob_data_->AppendFile(temp_file1_, 0, kuint64max, base::Time());
+ CreateSnapshotFromBlobData();
TestSuccessNonrangeRequest(kTestFileData1, arraysize(kTestFileData1) - 1);
}
@@ -274,6 +281,7 @@ TEST_F(BlobURLRequestJobTest, TestGetLargeFileRequest) {
base::WriteFile(large_temp_file, large_data.data(),
large_data.size()));
blob_data_->AppendFile(large_temp_file, 0, kuint64max, base::Time());
+ CreateSnapshotFromBlobData();
TestSuccessNonrangeRequest(large_data, large_data.size());
}
@@ -281,6 +289,7 @@ TEST_F(BlobURLRequestJobTest, TestGetNonExistentFileRequest) {
base::FilePath non_existent_file =
temp_file1_.InsertBeforeExtension(FILE_PATH_LITERAL("-na"));
blob_data_->AppendFile(non_existent_file, 0, kuint64max, base::Time());
+ CreateSnapshotFromBlobData();
TestErrorRequest(404);
}
@@ -288,11 +297,13 @@ TEST_F(BlobURLRequestJobTest, TestGetChangedFileRequest) {
base::Time old_time =
temp_file_modification_time1_ - base::TimeDelta::FromSeconds(10);
blob_data_->AppendFile(temp_file1_, 0, 3, old_time);
+ CreateSnapshotFromBlobData();
TestErrorRequest(404);
}
TEST_F(BlobURLRequestJobTest, TestGetSlicedFileRequest) {
blob_data_->AppendFile(temp_file1_, 2, 4, temp_file_modification_time1_);
+ CreateSnapshotFromBlobData();
std::string result(kTestFileData1 + 2, 4);
TestSuccessNonrangeRequest(result, 4);
}
@@ -301,6 +312,7 @@ TEST_F(BlobURLRequestJobTest, TestGetSimpleFileSystemFileRequest) {
SetUpFileSystem();
blob_data_->AppendFileSystemFile(temp_file_system_file1_, 0, kuint64max,
base::Time());
+ CreateSnapshotFromBlobData();
TestSuccessNonrangeRequest(kTestFileSystemFileData1,
arraysize(kTestFileSystemFileData1) - 1);
}
@@ -317,6 +329,7 @@ TEST_F(BlobURLRequestJobTest, TestGetLargeFileSystemFileRequest) {
blob_data_->AppendFileSystemFile(GetFileSystemURL(kFilename), 0, kuint64max,
base::Time());
+ CreateSnapshotFromBlobData();
TestSuccessNonrangeRequest(large_data, large_data.size());
}
@@ -325,6 +338,7 @@ TEST_F(BlobURLRequestJobTest, TestGetNonExistentFileSystemFileRequest) {
GURL non_existent_file = GetFileSystemURL("non-existent.dat");
blob_data_->AppendFileSystemFile(non_existent_file, 0, kuint64max,
base::Time());
+ CreateSnapshotFromBlobData();
TestErrorRequest(404);
}
@@ -334,6 +348,7 @@ TEST_F(BlobURLRequestJobTest, TestGetChangedFileSystemFileRequest) {
temp_file_system_file_modification_time1_ -
base::TimeDelta::FromSeconds(10);
blob_data_->AppendFileSystemFile(temp_file_system_file1_, 0, 3, old_time);
+ CreateSnapshotFromBlobData();
TestErrorRequest(404);
}
@@ -341,6 +356,7 @@ TEST_F(BlobURLRequestJobTest, TestGetSlicedFileSystemFileRequest) {
SetUpFileSystem();
blob_data_->AppendFileSystemFile(temp_file_system_file1_, 2, 4,
temp_file_system_file_modification_time1_);
+ CreateSnapshotFromBlobData();
std::string result(kTestFileSystemFileData1 + 2, 4);
TestSuccessNonrangeRequest(result, 4);
}
@@ -349,6 +365,7 @@ TEST_F(BlobURLRequestJobTest, TestGetComplicatedDataAndFileRequest) {
SetUpFileSystem();
std::string result;
BuildComplicatedData(&result);
+ CreateSnapshotFromBlobData();
TestSuccessNonrangeRequest(result, GetTotalBlobLength());
}
@@ -356,6 +373,7 @@ TEST_F(BlobURLRequestJobTest, TestGetRangeRequest1) {
SetUpFileSystem();
std::string result;
BuildComplicatedData(&result);
+ CreateSnapshotFromBlobData();
net::HttpRequestHeaders extra_headers;
extra_headers.SetHeader(net::HttpRequestHeaders::kRange,
net::HttpByteRange::Bounded(5, 10).GetHeaderValue());
@@ -377,6 +395,7 @@ TEST_F(BlobURLRequestJobTest, TestGetRangeRequest2) {
SetUpFileSystem();
std::string result;
BuildComplicatedData(&result);
+ CreateSnapshotFromBlobData();
net::HttpRequestHeaders extra_headers;
extra_headers.SetHeader(net::HttpRequestHeaders::kRange,
net::HttpByteRange::Suffix(10).GetHeaderValue());
@@ -399,6 +418,7 @@ TEST_F(BlobURLRequestJobTest, TestExtraHeaders) {
blob_data_->set_content_type(kTestContentType);
blob_data_->set_content_disposition(kTestContentDisposition);
blob_data_->AppendData(kTestData1);
+ CreateSnapshotFromBlobData();
expected_status_code_ = 200;
expected_response_ = kTestData1;
TestRequest("GET", net::HttpRequestHeaders());

Powered by Google App Engine
This is Rietveld 408576698