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

Side by Side Diff: net/test/url_request/url_request_mock_http_job.cc

Issue 845973005: [New Tab Page] Change the mechanism to intercept online NTP errors (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: test comment fix 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 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 "net/test/url_request/url_request_mock_http_job.h" 5 #include "net/test/url_request/url_request_mock_http_job.h"
6 6
7 #include "base/files/file_util.h" 7 #include "base/files/file_util.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 if (!base::PathExists(header_file)) { 89 if (!base::PathExists(header_file)) {
90 // If there is no mock-http-headers file, fake a 200 OK. 90 // If there is no mock-http-headers file, fake a 200 OK.
91 return "HTTP/1.0 200 OK\n"; 91 return "HTTP/1.0 200 OK\n";
92 } 92 }
93 93
94 std::string raw_headers; 94 std::string raw_headers;
95 base::ReadFileToString(header_file, &raw_headers); 95 base::ReadFileToString(header_file, &raw_headers);
96 return raw_headers; 96 return raw_headers;
97 } 97 }
98 98
99 // For a given file |path| and |scheme|, return the URL served by the
100 // URlRequestMockHTTPJob.
101 GURL GetMockUrlForScheme(const base::FilePath& path,
102 const std::string& scheme) {
103 std::string url = scheme + "://";
104 url.append(kMockHostname);
105 url.append("/");
mmenke 2015/01/22 20:53:51 optional: May just want to merge these into one l
Mathieu 2015/01/22 21:44:22 Done.
106 std::string path_str = path.MaybeAsASCII();
107 DCHECK(!path_str.empty()); // We only expect ASCII paths in tests.
108 url.append(path_str);
109 return GURL(url);
110 }
111
99 } // namespace 112 } // namespace
100 113
101 // static 114 // static
102 void URLRequestMockHTTPJob::AddUrlHandler( 115 void URLRequestMockHTTPJob::AddUrlHandlers(
103 const base::FilePath& base_path, 116 const base::FilePath& base_path,
104 const scoped_refptr<base::SequencedWorkerPool>& worker_pool) { 117 const scoped_refptr<base::SequencedWorkerPool>& worker_pool) {
105 // Add kMockHostname to net::URLRequestFilter. 118 // Add kMockHostname to net::URLRequestFilter, for both HTTP and HTTPS.
106 net::URLRequestFilter* filter = net::URLRequestFilter::GetInstance(); 119 net::URLRequestFilter* filter = net::URLRequestFilter::GetInstance();
107 filter->AddHostnameInterceptor( 120 filter->AddHostnameInterceptor(
108 "http", kMockHostname, CreateInterceptor(base_path, worker_pool)); 121 "http", kMockHostname, CreateInterceptor(base_path, worker_pool));
122 filter->AddHostnameInterceptor("https", kMockHostname,
123 CreateInterceptor(base_path, worker_pool));
109 } 124 }
110 125
111 // static 126 // static
112 void URLRequestMockHTTPJob::AddHostnameToFileHandler( 127 void URLRequestMockHTTPJob::AddHostnameToFileHandler(
113 const std::string& hostname, 128 const std::string& hostname,
114 const base::FilePath& file, 129 const base::FilePath& file,
115 const scoped_refptr<base::SequencedWorkerPool>& worker_pool) { 130 const scoped_refptr<base::SequencedWorkerPool>& worker_pool) {
116 net::URLRequestFilter* filter = net::URLRequestFilter::GetInstance(); 131 net::URLRequestFilter* filter = net::URLRequestFilter::GetInstance();
117 filter->AddHostnameInterceptor( 132 filter->AddHostnameInterceptor(
118 "http", hostname, CreateInterceptorForSingleFile(file, worker_pool)); 133 "http", hostname, CreateInterceptorForSingleFile(file, worker_pool));
119 } 134 }
120 135
121 // static 136 // static
122 GURL URLRequestMockHTTPJob::GetMockUrl(const base::FilePath& path) { 137 GURL URLRequestMockHTTPJob::GetMockUrl(const base::FilePath& path) {
123 std::string url = "http://"; 138 return GetMockUrlForScheme(path, "http");
124 url.append(kMockHostname);
125 url.append("/");
126 std::string path_str = path.MaybeAsASCII();
127 DCHECK(!path_str.empty()); // We only expect ASCII paths in tests.
128 url.append(path_str);
129 return GURL(url);
130 } 139 }
131 140
132 // static 141 // static
142 GURL URLRequestMockHTTPJob::GetMockHttpsUrl(const base::FilePath& path) {
143 return GetMockUrlForScheme(path, "https");
144 }
145
146 // static
133 GURL URLRequestMockHTTPJob::GetMockUrlWithFailure(const base::FilePath& path, 147 GURL URLRequestMockHTTPJob::GetMockUrlWithFailure(const base::FilePath& path,
134 FailurePhase phase, 148 FailurePhase phase,
135 int net_error) { 149 int net_error) {
136 static_assert(arraysize(kFailurePhase) == MAX_FAILURE_PHASE, 150 static_assert(arraysize(kFailurePhase) == MAX_FAILURE_PHASE,
137 "kFailurePhase must match FailurePhase enum"); 151 "kFailurePhase must match FailurePhase enum");
138 DCHECK_GE(phase, START); 152 DCHECK_GE(phase, START);
139 DCHECK_LE(phase, READ_SYNC); 153 DCHECK_LE(phase, READ_SYNC);
140 std::string url(GetMockUrl(path).spec()); 154 std::string url(GetMockUrl(path).spec());
141 url.append("?"); 155 url.append("?");
142 url.append(kFailurePhase[phase]); 156 url.append(kFailurePhase[phase]);
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 return net::URLRequestJob::GetResponseCode(); 291 return net::URLRequestJob::GetResponseCode();
278 } 292 }
279 293
280 bool URLRequestMockHTTPJob::GetCharset(std::string* charset) { 294 bool URLRequestMockHTTPJob::GetCharset(std::string* charset) {
281 net::HttpResponseInfo info; 295 net::HttpResponseInfo info;
282 GetResponseInfo(&info); 296 GetResponseInfo(&info);
283 return info.headers.get() && info.headers->GetCharset(charset); 297 return info.headers.get() && info.headers->GetCharset(charset);
284 } 298 }
285 299
286 } // namespace net 300 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698