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

Unified Diff: content/browser/appcache/appcache_request_handler_unittest.cc

Issue 302573003: Remove ProtocolFactory use from appcache_request_handler_unittest (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Ordering 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/appcache/appcache_request_handler_unittest.cc
diff --git a/content/browser/appcache/appcache_request_handler_unittest.cc b/content/browser/appcache/appcache_request_handler_unittest.cc
index 17175cba51c2ef6a059d72470a56b8bb6ceb2037..2d2b8ab3861283c3917bab76d8efb39e27eb19d8 100644
--- a/content/browser/appcache/appcache_request_handler_unittest.cc
+++ b/content/browser/appcache/appcache_request_handler_unittest.cc
@@ -20,6 +20,7 @@
#include "net/url_request/url_request.h"
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_error_job.h"
+#include "net/url_request/url_request_job_factory.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "webkit/browser/appcache/appcache.h"
#include "webkit/browser/appcache/appcache_backend_impl.h"
@@ -128,48 +129,60 @@ class AppCacheRequestHandlerTest : public testing::Test {
net::HttpResponseInfo response_info_;
};
- class MockURLRequest : public net::URLRequest {
+ class MockURLRequestJobFactory : public net::URLRequestJobFactory {
public:
- MockURLRequest(const GURL& url, net::URLRequestContext* context)
- : net::URLRequest(url, net::DEFAULT_PRIORITY, NULL, context) {}
+ MockURLRequestJobFactory() : job_(NULL) {
+ }
- void SimulateResponseCode(int http_response_code) {
- mock_factory_job_ = new MockURLRequestJob(
- this, context()->network_delegate(), http_response_code);
- Start();
- DCHECK(!mock_factory_job_);
- // All our simulation needs to satisfy are the following two DCHECKs
- DCHECK(status().is_success());
- DCHECK_EQ(http_response_code, GetResponseCode());
+ virtual ~MockURLRequestJobFactory() {
+ DCHECK(!job_);
}
- void SimulateResponseInfo(const net::HttpResponseInfo& info) {
- mock_factory_job_ =
- new MockURLRequestJob(this, context()->network_delegate(), info);
- set_delegate(&delegate_); // needed to get the info back out
- Start();
- DCHECK(!mock_factory_job_);
+ void SetJob(net::URLRequestJob* job) {
+ job_ = job;
}
- MockURLRequestDelegate delegate_;
- };
+ virtual net::URLRequestJob* MaybeCreateJobWithProtocolHandler(
+ const std::string& scheme,
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const OVERRIDE {
+ if (job_) {
+ net::URLRequestJob* temp = job_;
+ job_ = NULL;
+ return temp;
+ } else {
+ // Some of these tests trigger UpdateJobs which start URLRequests.
+ // We short circuit those be returning error jobs.
+ return new net::URLRequestErrorJob(request,
+ network_delegate,
+ net::ERR_INTERNET_DISCONNECTED);
+ }
+ }
- static net::URLRequestJob* MockHttpJobFactory(
- net::URLRequest* request,
- net::NetworkDelegate* network_delegate,
- const std::string& scheme) {
- if (mock_factory_job_) {
- net::URLRequestJob* temp = mock_factory_job_;
- mock_factory_job_ = NULL;
- return temp;
- } else {
- // Some of these tests trigger UpdateJobs which start URLRequests.
- // We short circuit those be returning error jobs.
- return new net::URLRequestErrorJob(request,
- network_delegate,
- net::ERR_INTERNET_DISCONNECTED);
+ virtual bool IsHandledProtocol(const std::string& scheme) const OVERRIDE {
+ return scheme == "http";
+ };
+
+ virtual bool IsHandledURL(const GURL& url) const OVERRIDE {
+ return url.SchemeIs("http");
}
- }
+
+ virtual bool IsSafeRedirectTarget(const GURL& location) const OVERRIDE {
+ return false;
+ }
+
+ private:
+ mutable net::URLRequestJob* job_;
+ };
+
+ class MockURLRequest : public net::URLRequest {
+ public:
+ MockURLRequest(const GURL& url, net::URLRequestContext* context)
+ : net::URLRequest(url, net::DEFAULT_PRIORITY, NULL, context) {}
+
+
+ MockURLRequestDelegate delegate_;
+ };
static void SetUpTestCase() {
io_thread_.reset(new base::Thread("AppCacheRequestHandlerTest Thread"));
@@ -183,7 +196,7 @@ class AppCacheRequestHandlerTest : public testing::Test {
// Test harness --------------------------------------------------
- AppCacheRequestHandlerTest() : host_(NULL), orig_http_factory_(NULL) {}
+ AppCacheRequestHandlerTest() : host_(NULL) {}
template <class Method>
void RunTestOnIOThread(Method method) {
@@ -197,8 +210,6 @@ class AppCacheRequestHandlerTest : public testing::Test {
void SetUpTest() {
DCHECK(base::MessageLoop::current() == io_thread_->message_loop());
- orig_http_factory_ = net::URLRequest::Deprecated::RegisterProtocolFactory(
- "http", MockHttpJobFactory);
mock_service_.reset(new MockAppCacheService);
mock_service_->set_request_context(&empty_context_);
mock_policy_.reset(new MockAppCachePolicy);
@@ -210,14 +221,12 @@ class AppCacheRequestHandlerTest : public testing::Test {
const int kHostId = 1;
backend_impl_->RegisterHost(kHostId);
host_ = backend_impl_->GetHost(kHostId);
+ job_factory_.reset(new MockURLRequestJobFactory());
+ empty_context_.set_job_factory(job_factory_.get());
}
void TearDownTest() {
DCHECK(base::MessageLoop::current() == io_thread_->message_loop());
- DCHECK(!mock_factory_job_);
- net::URLRequest::Deprecated::RegisterProtocolFactory(
- "http", orig_http_factory_);
- orig_http_factory_ = NULL;
job_ = NULL;
handler_.reset();
request_.reset();
@@ -225,6 +234,7 @@ class AppCacheRequestHandlerTest : public testing::Test {
mock_frontend_.reset();
mock_service_.reset();
mock_policy_.reset();
+ job_factory_.reset();
host_ = NULL;
}
@@ -379,6 +389,27 @@ class AppCacheRequestHandlerTest : public testing::Test {
ScheduleNextTask();
}
+ void SimulateResponseCode(int response_code) {
+ job_factory_->SetJob(
+ new MockURLRequestJob(
+ request_.get(),
+ request_->context()->network_delegate(),
+ response_code));
+ request_->Start();
+ // All our simulation needs to satisfy are the following two DCHECKs
+ DCHECK(request_->status().is_success());
+ DCHECK_EQ(response_code, request_->GetResponseCode());
+ }
+
+ void SimulateResponseInfo(const net::HttpResponseInfo& info) {
+ job_factory_->SetJob(
+ new MockURLRequestJob(
+ request_.get(),
+ request_->context()->network_delegate(), info));
+ request_->set_delegate(&request_->delegate_);
+ request_->Start();
+ }
+
void Verify_MainResource_Fallback() {
EXPECT_FALSE(job_->is_waiting());
EXPECT_TRUE(job_->is_delivering_network_response());
@@ -391,7 +422,7 @@ class AppCacheRequestHandlerTest : public testing::Test {
EXPECT_FALSE(job_.get());
// Simulate an http error of the real network job.
- request_->SimulateResponseCode(500);
+ SimulateResponseCode(500);
job_ = handler_->MaybeLoadFallbackForResponse(
request_.get(), request_->context()->network_delegate());
@@ -460,7 +491,7 @@ class AppCacheRequestHandlerTest : public testing::Test {
net::HttpResponseInfo info;
info.headers = new net::HttpResponseHeaders(
std::string(kOverrideHeaders, arraysize(kOverrideHeaders)));
- request_->SimulateResponseInfo(info);
+ SimulateResponseInfo(info);
job_ = handler_->MaybeLoadFallbackForResponse(
request_.get(), request_->context()->network_delegate());
@@ -635,7 +666,7 @@ class AppCacheRequestHandlerTest : public testing::Test {
GURL("http://blah/redirect"));
EXPECT_FALSE(fallback_job);
- request_->SimulateResponseCode(200);
+ SimulateResponseCode(200);
fallback_job = handler_->MaybeLoadFallbackForResponse(
request_.get(), request_->context()->network_delegate());
EXPECT_FALSE(fallback_job);
@@ -772,7 +803,7 @@ class AppCacheRequestHandlerTest : public testing::Test {
EXPECT_TRUE(job_->is_waiting());
EXPECT_FALSE(job_->has_been_started());
- mock_factory_job_ = job_.get();
+ job_factory_->SetJob(job_);
request_->Start();
EXPECT_TRUE(job_->has_been_started());
@@ -895,18 +926,16 @@ class AppCacheRequestHandlerTest : public testing::Test {
scoped_ptr<MockAppCachePolicy> mock_policy_;
AppCacheHost* host_;
net::URLRequestContext empty_context_;
+ scoped_ptr<MockURLRequestJobFactory> job_factory_;
scoped_ptr<MockURLRequest> request_;
scoped_ptr<AppCacheRequestHandler> handler_;
scoped_refptr<AppCacheURLRequestJob> job_;
- net::URLRequest::ProtocolFactory* orig_http_factory_;
static scoped_ptr<base::Thread> io_thread_;
- static net::URLRequestJob* mock_factory_job_;
};
// static
scoped_ptr<base::Thread> AppCacheRequestHandlerTest::io_thread_;
-net::URLRequestJob* AppCacheRequestHandlerTest::mock_factory_job_ = NULL;
TEST_F(AppCacheRequestHandlerTest, MainResource_Miss) {
RunTestOnIOThread(&AppCacheRequestHandlerTest::MainResource_Miss);
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698