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

Side by Side Diff: content/browser/fileapi/blob_url_request_job_unittest.cc

Issue 1337153002: [Blob] BlobReader class & tests, and removal of all redundant reading. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: windows fix Created 5 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/bind.h" 6 #include "base/bind.h"
7 #include "base/files/file_path.h" 7 #include "base/files/file_path.h"
8 #include "base/files/file_util.h" 8 #include "base/files/file_util.h"
9 #include "base/files/scoped_temp_dir.h" 9 #include "base/files/scoped_temp_dir.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 class MockProtocolHandler : 108 class MockProtocolHandler :
109 public net::URLRequestJobFactory::ProtocolHandler { 109 public net::URLRequestJobFactory::ProtocolHandler {
110 public: 110 public:
111 MockProtocolHandler(BlobURLRequestJobTest* test) : test_(test) {} 111 MockProtocolHandler(BlobURLRequestJobTest* test) : test_(test) {}
112 112
113 // net::URLRequestJobFactory::ProtocolHandler override. 113 // net::URLRequestJobFactory::ProtocolHandler override.
114 net::URLRequestJob* MaybeCreateJob( 114 net::URLRequestJob* MaybeCreateJob(
115 net::URLRequest* request, 115 net::URLRequest* request,
116 net::NetworkDelegate* network_delegate) const override { 116 net::NetworkDelegate* network_delegate) const override {
117 return new BlobURLRequestJob(request, network_delegate, 117 return new BlobURLRequestJob(request, network_delegate,
118 test_->GetSnapshotFromBuilder(), 118 test_->GetHandleFromBuilder(),
119 test_->file_system_context_.get(), 119 test_->file_system_context_.get(),
120 base::ThreadTaskRunnerHandle::Get().get()); 120 base::ThreadTaskRunnerHandle::Get().get());
121 } 121 }
122 122
123 private: 123 private:
124 BlobURLRequestJobTest* test_; 124 BlobURLRequestJobTest* test_;
125 }; 125 };
126 126
127 BlobURLRequestJobTest() 127 BlobURLRequestJobTest()
128 : blob_data_(new BlobDataBuilder("uuid")), expected_status_code_(0) {} 128 : blob_data_(new BlobDataBuilder("uuid")), expected_status_code_(0) {}
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 *expected_result += std::string(kTestData2 + 4, 5); 275 *expected_result += std::string(kTestData2 + 4, 5);
276 276
277 blob_data_->AppendFile(temp_file2_, 5, 6, temp_file_modification_time2_); 277 blob_data_->AppendFile(temp_file2_, 5, 6, temp_file_modification_time2_);
278 *expected_result += std::string(kTestFileData2 + 5, 6); 278 *expected_result += std::string(kTestFileData2 + 5, 6);
279 279
280 blob_data_->AppendFileSystemFile(temp_file_system_file2_, 6, 7, 280 blob_data_->AppendFileSystemFile(temp_file_system_file2_, 6, 7,
281 temp_file_system_file_modification_time2_); 281 temp_file_system_file_modification_time2_);
282 *expected_result += std::string(kTestFileSystemFileData2 + 6, 7); 282 *expected_result += std::string(kTestFileSystemFileData2 + 6, 7);
283 } 283 }
284 284
285 scoped_ptr<BlobDataSnapshot> GetSnapshotFromBuilder() { 285 storage::BlobDataHandle* GetHandleFromBuilder() {
286 if (!blob_handle_) { 286 if (!blob_handle_) {
287 blob_handle_ = blob_context_.AddFinishedBlob(blob_data_.get()).Pass(); 287 blob_handle_ = blob_context_.AddFinishedBlob(blob_data_.get()).Pass();
288 } 288 }
289 return blob_handle_->CreateSnapshot().Pass(); 289 return blob_handle_.get();
290 } 290 }
291 291
292 // This only works if all the Blob items have a definite pre-computed length. 292 // This only works if all the Blob items have a definite pre-computed length.
293 // Otherwise, this will fail a CHECK. 293 // Otherwise, this will fail a CHECK.
294 int64 GetTotalBlobLength() { 294 int64 GetTotalBlobLength() {
295 int64 total = 0; 295 int64 total = 0;
296 scoped_ptr<BlobDataSnapshot> data = GetSnapshotFromBuilder(); 296 scoped_ptr<BlobDataSnapshot> data =
297 GetHandleFromBuilder()->CreateSnapshot();
297 const auto& items = data->items(); 298 const auto& items = data->items();
298 for (const auto& item : items) { 299 for (const auto& item : items) {
299 int64 length = base::checked_cast<int64>(item->length()); 300 int64 length = base::checked_cast<int64>(item->length());
300 CHECK(length <= kint64max - total); 301 CHECK(length <= kint64max - total);
301 total += length; 302 total += length;
302 } 303 }
303 return total; 304 return total;
304 } 305 }
305 306
306 protected: 307 protected:
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 EXPECT_TRUE(request_->response_headers()->GetMimeType(&content_type)); 504 EXPECT_TRUE(request_->response_headers()->GetMimeType(&content_type));
504 EXPECT_EQ(kTestContentType, content_type); 505 EXPECT_EQ(kTestContentType, content_type);
505 void* iter = NULL; 506 void* iter = NULL;
506 std::string content_disposition; 507 std::string content_disposition;
507 EXPECT_TRUE(request_->response_headers()->EnumerateHeader( 508 EXPECT_TRUE(request_->response_headers()->EnumerateHeader(
508 &iter, "Content-Disposition", &content_disposition)); 509 &iter, "Content-Disposition", &content_disposition));
509 EXPECT_EQ(kTestContentDisposition, content_disposition); 510 EXPECT_EQ(kTestContentDisposition, content_disposition);
510 } 511 }
511 512
512 } // namespace content 513 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698