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

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

Issue 293083002: Add a blob field to ServiceWorkerFetchResponse and read the blob (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: dont crash in loader Created 6 years, 7 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 dd1ad1a6ac60b3d2dfbb907d9f3566e0bf2021a2..f40fbd34cae7f827c3c4422fe49cd03e93273bed 100644
--- a/content/browser/fileapi/blob_url_request_job_unittest.cc
+++ b/content/browser/fileapi/blob_url_request_job_unittest.cc
@@ -12,6 +12,7 @@
#include "base/numerics/safe_conversions.h"
#include "base/run_loop.h"
#include "base/time/time.h"
+#include "content/browser/fileapi/blob_url_request_job_unittest.h"
#include "content/public/test/async_file_test_helper.h"
#include "content/public/test/test_file_system_context.h"
#include "net/base/io_buffer.h"
@@ -52,93 +53,80 @@ const fileapi::FileSystemType kFileSystemType =
} // namespace
-class BlobURLRequestJobTest : public testing::Test {
- public:
-
- // Test Harness -------------------------------------------------------------
- // TODO(jianli): share this test harness with AppCacheURLRequestJobTest
-
- class MockURLRequestDelegate : public net::URLRequest::Delegate {
- public:
- MockURLRequestDelegate()
- : received_data_(new net::IOBuffer(kBufferSize)) {}
-
- virtual void OnResponseStarted(net::URLRequest* request) OVERRIDE {
- if (request->status().is_success()) {
- EXPECT_TRUE(request->response_headers());
- ReadSome(request);
- } else {
- RequestComplete();
- }
- }
+MockURLRequestDelegate::MockURLRequestDelegate()
+ : received_data_(new net::IOBuffer(kBufferSize)) {
+}
- virtual void OnReadCompleted(net::URLRequest* request,
- int bytes_read) OVERRIDE {
- if (bytes_read > 0)
- ReceiveData(request, bytes_read);
- else
- RequestComplete();
- }
+MockURLRequestDelegate::~MockURLRequestDelegate() {
+}
- const std::string& response_data() const { return response_data_; }
+void MockURLRequestDelegate::OnResponseStarted(net::URLRequest* request) {
+ if (request->status().is_success()) {
+ EXPECT_TRUE(request->response_headers());
+ ReadSome(request);
+ } else {
+ RequestComplete();
+ }
+}
- private:
- void ReadSome(net::URLRequest* request) {
- if (!request->is_pending()) {
- RequestComplete();
- return;
- }
+void MockURLRequestDelegate::OnReadCompleted(net::URLRequest* request,
+ int bytes_read) {
+ if (bytes_read > 0)
+ ReceiveData(request, bytes_read);
+ else
+ RequestComplete();
+}
- int bytes_read = 0;
- if (!request->Read(received_data_.get(), kBufferSize, &bytes_read)) {
- if (!request->status().is_io_pending()) {
- RequestComplete();
- }
- return;
- }
+void MockURLRequestDelegate::ReadSome(net::URLRequest* request) {
+ if (!request->is_pending()) {
+ RequestComplete();
+ return;
+ }
- ReceiveData(request, bytes_read);
+ int bytes_read = 0;
+ if (!request->Read(received_data_.get(), kBufferSize, &bytes_read)) {
+ if (!request->status().is_io_pending()) {
+ RequestComplete();
}
+ return;
+ }
- void ReceiveData(net::URLRequest* request, int bytes_read) {
- if (bytes_read) {
- response_data_.append(received_data_->data(),
- static_cast<size_t>(bytes_read));
- ReadSome(request);
- } else {
- RequestComplete();
- }
- }
+ ReceiveData(request, bytes_read);
+}
- void RequestComplete() {
- base::MessageLoop::current()->Quit();
- }
+void MockURLRequestDelegate::ReceiveData(net::URLRequest* request,
+ int bytes_read) {
+ if (bytes_read) {
+ response_data_.append(received_data_->data(),
+ static_cast<size_t>(bytes_read));
+ ReadSome(request);
+ } else {
+ RequestComplete();
+ }
+}
- scoped_refptr<net::IOBuffer> received_data_;
- std::string response_data_;
- };
-
- // A simple ProtocolHandler implementation to create BlobURLRequestJob.
- class MockProtocolHandler :
- public net::URLRequestJobFactory::ProtocolHandler {
- public:
- MockProtocolHandler(BlobURLRequestJobTest* test) : test_(test) {}
-
- // net::URLRequestJobFactory::ProtocolHandler override.
- virtual net::URLRequestJob* MaybeCreateJob(
- net::URLRequest* request,
- net::NetworkDelegate* network_delegate) const OVERRIDE {
- return new BlobURLRequestJob(request,
- network_delegate,
- test_->blob_data_.get(),
- test_->file_system_context_.get(),
- base::MessageLoopProxy::current().get());
- }
+void MockURLRequestDelegate::RequestComplete() {
+ base::MessageLoop::current()->Quit();
+}
- private:
- BlobURLRequestJobTest* test_;
- };
+MockBlobProtocolHandler::MockBlobProtocolHandler(
+ webkit_blob::BlobData* blob_data,
+ fileapi::FileSystemContext* file_system_context)
+ : blob_data_(blob_data), file_system_context_(file_system_context) {
+}
+
+net::URLRequestJob* MockBlobProtocolHandler::MaybeCreateJob(
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const {
+ return new BlobURLRequestJob(request,
+ network_delegate,
+ blob_data_,
+ file_system_context_,
+ base::MessageLoopProxy::current().get());
+}
+class BlobURLRequestJobTest : public testing::Test {
+ public:
BlobURLRequestJobTest()
: blob_data_(new BlobData()),
expected_status_code_(0) {}
@@ -162,8 +150,12 @@ class BlobURLRequestJobTest : public testing::Test {
base::GetFileInfo(temp_file2_, &file_info2);
temp_file_modification_time2_ = file_info2.last_modified;
- url_request_job_factory_.SetProtocolHandler("blob",
- new MockProtocolHandler(this));
+ file_system_context_ =
+ CreateFileSystemContextForTesting(NULL, temp_dir_.path());
+ url_request_job_factory_.SetProtocolHandler(
+ "blob",
+ new MockBlobProtocolHandler(blob_data_.get(),
+ file_system_context_.get()));
url_request_context_.set_job_factory(&url_request_job_factory_);
}
@@ -172,9 +164,6 @@ class BlobURLRequestJobTest : public testing::Test {
void SetUpFileSystem() {
// Prepare file system.
- file_system_context_ = CreateFileSystemContextForTesting(
- NULL, temp_dir_.path());
-
file_system_context_->OpenFileSystem(
GURL(kFileSystemURLOrigin),
kFileSystemType,

Powered by Google App Engine
This is Rietveld 408576698