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

Side by Side Diff: content/test/net/url_request_failed_job.cc

Issue 9704023: Replace URLRequestFailedDnsJob with URLRequestFailedJob (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Fix includes Created 8 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/test/net/url_request_failed_dns_job.h" 5 #include "content/test/net/url_request_failed_job.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/compiler_specific.h" 8 #include "base/logging.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "googleurl/src/gurl.h" 10 #include "base/string_number_conversions.h"
11 #include "net/base/net_errors.h" 11 #include "net/base/net_errors.h"
12 #include "net/url_request/url_request.h" 12 #include "net/url_request/url_request.h"
13 #include "net/url_request/url_request_filter.h" 13 #include "net/url_request/url_request_filter.h"
14 14
15 const char URLRequestFailedDnsJob::kTestUrl[] = 15 namespace {
16 "http://url.handled.by.fake.dns/";
17 16
18 URLRequestFailedDnsJob::URLRequestFailedDnsJob(net::URLRequest* request) 17 const char kMockHostname[] = "mock.failed.request";
18
19 // Gets the numeric net error code from URL of the form:
20 // scheme://kMockHostname/error_code. The error code must be a valid
21 // net error code, and not net::OK or net::ERR_IO_PENDING.
22 int GetErrorCode(net::URLRequest* request) {
23 int net_error;
24 std::string path = request->url().path();
25 if (path[0] == '/' && base::StringToInt(path.c_str() + 1, &net_error)) {
26 CHECK_LT(net_error, 0);
27 CHECK_NE(net_error, net::ERR_IO_PENDING);
28 return net_error;
29 }
30 NOTREACHED();
31 return net::ERR_UNEXPECTED;
32 }
33
34 GURL GetMockUrl(const std::string& scheme, int net_error) {
35 CHECK_LT(net_error, 0);
36 CHECK_NE(net_error, net::ERR_IO_PENDING);
37 return GURL(scheme + "://" + kMockHostname + "/" +
38 base::IntToString(net_error));
39 }
40
41 } // namespace
42
43 URLRequestFailedJob::URLRequestFailedJob(net::URLRequest* request,
44 int net_error)
19 : net::URLRequestJob(request), 45 : net::URLRequestJob(request),
20 ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {} 46 net_error_(net_error) {}
21 47
22 URLRequestFailedDnsJob::~URLRequestFailedDnsJob() {} 48 URLRequestFailedJob::~URLRequestFailedJob() {}
23 49
24 void URLRequestFailedDnsJob::Start() { 50 void URLRequestFailedJob::Start() {
25 MessageLoop::current()->PostTask( 51 MessageLoop::current()->PostTask(
26 FROM_HERE, 52 FROM_HERE,
27 base::Bind(&URLRequestFailedDnsJob::StartAsync, 53 base::Bind(&URLRequestFailedJob::StartAsync, AsWeakPtr()));
28 weak_factory_.GetWeakPtr()));
29 } 54 }
30 55
31 // static 56 // static
32 void URLRequestFailedDnsJob::AddUrlHandler() { 57 void URLRequestFailedJob::AddUrlHandler() {
58 // Add kMockHostname to net::URLRequestFilter for HTTP and HTTPS.
33 net::URLRequestFilter* filter = net::URLRequestFilter::GetInstance(); 59 net::URLRequestFilter* filter = net::URLRequestFilter::GetInstance();
34 filter->AddUrlHandler(GURL(kTestUrl), 60 filter->AddHostnameHandler("http", kMockHostname,
35 &URLRequestFailedDnsJob::Factory); 61 URLRequestFailedJob::Factory);
62 filter->AddHostnameHandler("https", kMockHostname,
63 URLRequestFailedJob::Factory);
36 } 64 }
37 65
38 /*static */ 66 // static
39 net::URLRequestJob* URLRequestFailedDnsJob::Factory(net::URLRequest* request, 67 GURL URLRequestFailedJob::GetMockHttpUrl(int net_error) {
40 const std::string& scheme) { 68 return GetMockUrl("http", net_error);
41 return new URLRequestFailedDnsJob(request);
42 } 69 }
43 70
44 void URLRequestFailedDnsJob::StartAsync() { 71 // static
72 GURL URLRequestFailedJob::GetMockHttpsUrl(int net_error) {
73 return GetMockUrl("https", net_error);
74 }
75
76 // static
77 net::URLRequestJob* URLRequestFailedJob::Factory(net::URLRequest* request,
78 const std::string& scheme) {
79 return new URLRequestFailedJob(request, GetErrorCode(request));
80 }
81
82 void URLRequestFailedJob::StartAsync() {
45 NotifyStartError(net::URLRequestStatus(net::URLRequestStatus::FAILED, 83 NotifyStartError(net::URLRequestStatus(net::URLRequestStatus::FAILED,
46 net::ERR_NAME_NOT_RESOLVED)); 84 net_error_));
47 } 85 }
OLDNEW
« content/test/net/url_request_failed_job.h ('K') | « content/test/net/url_request_failed_job.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698