OLD | NEW |
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 #ifndef NET_URL_REQUEST_URL_REQUEST_TEST_UTIL_H_ | 5 #ifndef NET_URL_REQUEST_URL_REQUEST_TEST_UTIL_H_ |
6 #define NET_URL_REQUEST_URL_REQUEST_TEST_UTIL_H_ | 6 #define NET_URL_REQUEST_URL_REQUEST_TEST_UTIL_H_ |
7 | 7 |
8 #include <stdlib.h> | 8 #include <stdlib.h> |
9 | 9 |
10 #include <map> | 10 #include <map> |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
51 //----------------------------------------------------------------------------- | 51 //----------------------------------------------------------------------------- |
52 | 52 |
53 class TestURLRequestContext : public URLRequestContext { | 53 class TestURLRequestContext : public URLRequestContext { |
54 public: | 54 public: |
55 TestURLRequestContext(); | 55 TestURLRequestContext(); |
56 // Default constructor like TestURLRequestContext() but does not call | 56 // Default constructor like TestURLRequestContext() but does not call |
57 // Init() in case |delay_initialization| is true. This allows modifying the | 57 // Init() in case |delay_initialization| is true. This allows modifying the |
58 // URLRequestContext before it is constructed completely. If | 58 // URLRequestContext before it is constructed completely. If |
59 // |delay_initialization| is true, Init() needs be be called manually. | 59 // |delay_initialization| is true, Init() needs be be called manually. |
60 explicit TestURLRequestContext(bool delay_initialization); | 60 explicit TestURLRequestContext(bool delay_initialization); |
61 virtual ~TestURLRequestContext(); | 61 ~TestURLRequestContext() override; |
62 | 62 |
63 void Init(); | 63 void Init(); |
64 | 64 |
65 ClientSocketFactory* client_socket_factory() { | 65 ClientSocketFactory* client_socket_factory() { |
66 return client_socket_factory_; | 66 return client_socket_factory_; |
67 } | 67 } |
68 void set_client_socket_factory(ClientSocketFactory* factory) { | 68 void set_client_socket_factory(ClientSocketFactory* factory) { |
69 client_socket_factory_ = factory; | 69 client_socket_factory_ = factory; |
70 } | 70 } |
71 | 71 |
(...skipping 29 matching lines...) Expand all Loading... |
101 // |network_task_runner| must not be NULL. | 101 // |network_task_runner| must not be NULL. |
102 explicit TestURLRequestContextGetter( | 102 explicit TestURLRequestContextGetter( |
103 const scoped_refptr<base::SingleThreadTaskRunner>& network_task_runner); | 103 const scoped_refptr<base::SingleThreadTaskRunner>& network_task_runner); |
104 | 104 |
105 // Use to pass a pre-initialized |context|. | 105 // Use to pass a pre-initialized |context|. |
106 TestURLRequestContextGetter( | 106 TestURLRequestContextGetter( |
107 const scoped_refptr<base::SingleThreadTaskRunner>& network_task_runner, | 107 const scoped_refptr<base::SingleThreadTaskRunner>& network_task_runner, |
108 scoped_ptr<TestURLRequestContext> context); | 108 scoped_ptr<TestURLRequestContext> context); |
109 | 109 |
110 // URLRequestContextGetter implementation. | 110 // URLRequestContextGetter implementation. |
111 virtual TestURLRequestContext* GetURLRequestContext() override; | 111 TestURLRequestContext* GetURLRequestContext() override; |
112 virtual scoped_refptr<base::SingleThreadTaskRunner> | 112 scoped_refptr<base::SingleThreadTaskRunner> GetNetworkTaskRunner() |
113 GetNetworkTaskRunner() const override; | 113 const override; |
114 | 114 |
115 protected: | 115 protected: |
116 virtual ~TestURLRequestContextGetter(); | 116 ~TestURLRequestContextGetter() override; |
117 | 117 |
118 private: | 118 private: |
119 const scoped_refptr<base::SingleThreadTaskRunner> network_task_runner_; | 119 const scoped_refptr<base::SingleThreadTaskRunner> network_task_runner_; |
120 scoped_ptr<TestURLRequestContext> context_; | 120 scoped_ptr<TestURLRequestContext> context_; |
121 }; | 121 }; |
122 | 122 |
123 //----------------------------------------------------------------------------- | 123 //----------------------------------------------------------------------------- |
124 | 124 |
125 class TestDelegate : public URLRequest::Delegate { | 125 class TestDelegate : public URLRequest::Delegate { |
126 public: | 126 public: |
127 TestDelegate(); | 127 TestDelegate(); |
128 virtual ~TestDelegate(); | 128 ~TestDelegate() override; |
129 | 129 |
130 void set_cancel_in_received_redirect(bool val) { cancel_in_rr_ = val; } | 130 void set_cancel_in_received_redirect(bool val) { cancel_in_rr_ = val; } |
131 void set_cancel_in_response_started(bool val) { cancel_in_rs_ = val; } | 131 void set_cancel_in_response_started(bool val) { cancel_in_rs_ = val; } |
132 void set_cancel_in_received_data(bool val) { cancel_in_rd_ = val; } | 132 void set_cancel_in_received_data(bool val) { cancel_in_rd_ = val; } |
133 void set_cancel_in_received_data_pending(bool val) { | 133 void set_cancel_in_received_data_pending(bool val) { |
134 cancel_in_rd_pending_ = val; | 134 cancel_in_rd_pending_ = val; |
135 } | 135 } |
136 void set_quit_on_complete(bool val) { quit_on_complete_ = val; } | 136 void set_quit_on_complete(bool val) { quit_on_complete_ = val; } |
137 void set_quit_on_redirect(bool val) { quit_on_redirect_ = val; } | 137 void set_quit_on_redirect(bool val) { quit_on_redirect_ = val; } |
138 void set_quit_on_network_start(bool val) { | 138 void set_quit_on_network_start(bool val) { |
(...skipping 23 matching lines...) Expand all Loading... |
162 return certificate_errors_are_fatal_; | 162 return certificate_errors_are_fatal_; |
163 } | 163 } |
164 bool auth_required_called() const { return auth_required_; } | 164 bool auth_required_called() const { return auth_required_; } |
165 bool have_full_request_headers() const { return have_full_request_headers_; } | 165 bool have_full_request_headers() const { return have_full_request_headers_; } |
166 const HttpRequestHeaders& full_request_headers() const { | 166 const HttpRequestHeaders& full_request_headers() const { |
167 return full_request_headers_; | 167 return full_request_headers_; |
168 } | 168 } |
169 void ClearFullRequestHeaders(); | 169 void ClearFullRequestHeaders(); |
170 | 170 |
171 // URLRequest::Delegate: | 171 // URLRequest::Delegate: |
172 virtual void OnReceivedRedirect(URLRequest* request, | 172 void OnReceivedRedirect(URLRequest* request, |
173 const RedirectInfo& redirect_info, | 173 const RedirectInfo& redirect_info, |
174 bool* defer_redirect) override; | 174 bool* defer_redirect) override; |
175 virtual void OnBeforeNetworkStart(URLRequest* request, bool* defer) override; | 175 void OnBeforeNetworkStart(URLRequest* request, bool* defer) override; |
176 virtual void OnAuthRequired(URLRequest* request, | 176 void OnAuthRequired(URLRequest* request, |
177 AuthChallengeInfo* auth_info) override; | 177 AuthChallengeInfo* auth_info) override; |
178 // NOTE: |fatal| causes |certificate_errors_are_fatal_| to be set to true. | 178 // NOTE: |fatal| causes |certificate_errors_are_fatal_| to be set to true. |
179 // (Unit tests use this as a post-condition.) But for policy, this method | 179 // (Unit tests use this as a post-condition.) But for policy, this method |
180 // consults |allow_certificate_errors_|. | 180 // consults |allow_certificate_errors_|. |
181 virtual void OnSSLCertificateError(URLRequest* request, | 181 void OnSSLCertificateError(URLRequest* request, |
182 const SSLInfo& ssl_info, | 182 const SSLInfo& ssl_info, |
183 bool fatal) override; | 183 bool fatal) override; |
184 virtual void OnResponseStarted(URLRequest* request) override; | 184 void OnResponseStarted(URLRequest* request) override; |
185 virtual void OnReadCompleted(URLRequest* request, | 185 void OnReadCompleted(URLRequest* request, int bytes_read) override; |
186 int bytes_read) override; | |
187 | 186 |
188 private: | 187 private: |
189 static const int kBufferSize = 4096; | 188 static const int kBufferSize = 4096; |
190 | 189 |
191 virtual void OnResponseCompleted(URLRequest* request); | 190 virtual void OnResponseCompleted(URLRequest* request); |
192 | 191 |
193 // options for controlling behavior | 192 // options for controlling behavior |
194 bool cancel_in_rr_; | 193 bool cancel_in_rr_; |
195 bool cancel_in_rs_; | 194 bool cancel_in_rs_; |
196 bool cancel_in_rd_; | 195 bool cancel_in_rd_; |
(...skipping 25 matching lines...) Expand all Loading... |
222 //----------------------------------------------------------------------------- | 221 //----------------------------------------------------------------------------- |
223 | 222 |
224 class TestNetworkDelegate : public NetworkDelegate { | 223 class TestNetworkDelegate : public NetworkDelegate { |
225 public: | 224 public: |
226 enum Options { | 225 enum Options { |
227 NO_GET_COOKIES = 1 << 0, | 226 NO_GET_COOKIES = 1 << 0, |
228 NO_SET_COOKIE = 1 << 1, | 227 NO_SET_COOKIE = 1 << 1, |
229 }; | 228 }; |
230 | 229 |
231 TestNetworkDelegate(); | 230 TestNetworkDelegate(); |
232 virtual ~TestNetworkDelegate(); | 231 ~TestNetworkDelegate() override; |
233 | 232 |
234 // Writes the LoadTimingInfo during the most recent call to OnBeforeRedirect. | 233 // Writes the LoadTimingInfo during the most recent call to OnBeforeRedirect. |
235 bool GetLoadTimingInfoBeforeRedirect( | 234 bool GetLoadTimingInfoBeforeRedirect( |
236 LoadTimingInfo* load_timing_info_before_redirect) const; | 235 LoadTimingInfo* load_timing_info_before_redirect) const; |
237 | 236 |
238 // Same as GetLoadTimingInfoBeforeRedirect, except for calls to | 237 // Same as GetLoadTimingInfoBeforeRedirect, except for calls to |
239 // AuthRequiredResponse. | 238 // AuthRequiredResponse. |
240 bool GetLoadTimingInfoBeforeAuth( | 239 bool GetLoadTimingInfoBeforeAuth( |
241 LoadTimingInfo* load_timing_info_before_auth) const; | 240 LoadTimingInfo* load_timing_info_before_auth) const; |
242 | 241 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
277 return observed_before_proxy_headers_sent_callbacks_; | 276 return observed_before_proxy_headers_sent_callbacks_; |
278 } | 277 } |
279 | 278 |
280 // Last observed proxy in proxy header sent callback. | 279 // Last observed proxy in proxy header sent callback. |
281 HostPortPair last_observed_proxy() { | 280 HostPortPair last_observed_proxy() { |
282 return last_observed_proxy_; | 281 return last_observed_proxy_; |
283 } | 282 } |
284 | 283 |
285 protected: | 284 protected: |
286 // NetworkDelegate: | 285 // NetworkDelegate: |
287 virtual int OnBeforeURLRequest(URLRequest* request, | 286 int OnBeforeURLRequest(URLRequest* request, |
288 const CompletionCallback& callback, | 287 const CompletionCallback& callback, |
289 GURL* new_url) override; | 288 GURL* new_url) override; |
290 virtual int OnBeforeSendHeaders(URLRequest* request, | 289 int OnBeforeSendHeaders(URLRequest* request, |
291 const CompletionCallback& callback, | 290 const CompletionCallback& callback, |
292 HttpRequestHeaders* headers) override; | 291 HttpRequestHeaders* headers) override; |
293 virtual void OnBeforeSendProxyHeaders( | 292 void OnBeforeSendProxyHeaders(net::URLRequest* request, |
294 net::URLRequest* request, | 293 const net::ProxyInfo& proxy_info, |
295 const net::ProxyInfo& proxy_info, | 294 net::HttpRequestHeaders* headers) override; |
296 net::HttpRequestHeaders* headers) override; | 295 void OnSendHeaders(URLRequest* request, |
297 virtual void OnSendHeaders(URLRequest* request, | 296 const HttpRequestHeaders& headers) override; |
298 const HttpRequestHeaders& headers) override; | 297 int OnHeadersReceived( |
299 virtual int OnHeadersReceived( | |
300 URLRequest* request, | 298 URLRequest* request, |
301 const CompletionCallback& callback, | 299 const CompletionCallback& callback, |
302 const HttpResponseHeaders* original_response_headers, | 300 const HttpResponseHeaders* original_response_headers, |
303 scoped_refptr<HttpResponseHeaders>* override_response_headers, | 301 scoped_refptr<HttpResponseHeaders>* override_response_headers, |
304 GURL* allowed_unsafe_redirect_url) override; | 302 GURL* allowed_unsafe_redirect_url) override; |
305 virtual void OnBeforeRedirect(URLRequest* request, | 303 void OnBeforeRedirect(URLRequest* request, const GURL& new_location) override; |
306 const GURL& new_location) override; | 304 void OnResponseStarted(URLRequest* request) override; |
307 virtual void OnResponseStarted(URLRequest* request) override; | 305 void OnRawBytesRead(const URLRequest& request, int bytes_read) override; |
308 virtual void OnRawBytesRead(const URLRequest& request, | 306 void OnCompleted(URLRequest* request, bool started) override; |
309 int bytes_read) override; | 307 void OnURLRequestDestroyed(URLRequest* request) override; |
310 virtual void OnCompleted(URLRequest* request, bool started) override; | 308 void OnPACScriptError(int line_number, const base::string16& error) override; |
311 virtual void OnURLRequestDestroyed(URLRequest* request) override; | 309 NetworkDelegate::AuthRequiredResponse OnAuthRequired( |
312 virtual void OnPACScriptError(int line_number, | |
313 const base::string16& error) override; | |
314 virtual NetworkDelegate::AuthRequiredResponse OnAuthRequired( | |
315 URLRequest* request, | 310 URLRequest* request, |
316 const AuthChallengeInfo& auth_info, | 311 const AuthChallengeInfo& auth_info, |
317 const AuthCallback& callback, | 312 const AuthCallback& callback, |
318 AuthCredentials* credentials) override; | 313 AuthCredentials* credentials) override; |
319 virtual bool OnCanGetCookies(const URLRequest& request, | 314 bool OnCanGetCookies(const URLRequest& request, |
320 const CookieList& cookie_list) override; | 315 const CookieList& cookie_list) override; |
321 virtual bool OnCanSetCookie(const URLRequest& request, | 316 bool OnCanSetCookie(const URLRequest& request, |
322 const std::string& cookie_line, | 317 const std::string& cookie_line, |
323 CookieOptions* options) override; | 318 CookieOptions* options) override; |
324 virtual bool OnCanAccessFile(const URLRequest& request, | 319 bool OnCanAccessFile(const URLRequest& request, |
325 const base::FilePath& path) const override; | 320 const base::FilePath& path) const override; |
326 virtual bool OnCanThrottleRequest( | 321 bool OnCanThrottleRequest(const URLRequest& request) const override; |
327 const URLRequest& request) const override; | 322 int OnBeforeSocketStreamConnect(SocketStream* stream, |
328 virtual int OnBeforeSocketStreamConnect( | 323 const CompletionCallback& callback) override; |
329 SocketStream* stream, | 324 bool OnCancelURLRequestWithPolicyViolatingReferrerHeader( |
330 const CompletionCallback& callback) override; | |
331 virtual bool OnCancelURLRequestWithPolicyViolatingReferrerHeader( | |
332 const URLRequest& request, | 325 const URLRequest& request, |
333 const GURL& target_url, | 326 const GURL& target_url, |
334 const GURL& referrer_url) const override; | 327 const GURL& referrer_url) const override; |
335 | 328 |
336 void InitRequestStatesIfNew(int request_id); | 329 void InitRequestStatesIfNew(int request_id); |
337 | 330 |
338 GURL redirect_on_headers_received_url_; | 331 GURL redirect_on_headers_received_url_; |
339 // URL marked as safe for redirection at the onHeadersReceived stage. | 332 // URL marked as safe for redirection at the onHeadersReceived stage. |
340 GURL allowed_unsafe_redirect_url_; | 333 GURL allowed_unsafe_redirect_url_; |
341 | 334 |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
399 DISALLOW_COPY_AND_ASSIGN(ScopedCustomUrlRequestTestHttpHost); | 392 DISALLOW_COPY_AND_ASSIGN(ScopedCustomUrlRequestTestHttpHost); |
400 }; | 393 }; |
401 | 394 |
402 //----------------------------------------------------------------------------- | 395 //----------------------------------------------------------------------------- |
403 | 396 |
404 // A simple ProtocolHandler that returns a pre-built URLRequestJob only once. | 397 // A simple ProtocolHandler that returns a pre-built URLRequestJob only once. |
405 class TestJobInterceptor : public URLRequestJobFactory::ProtocolHandler { | 398 class TestJobInterceptor : public URLRequestJobFactory::ProtocolHandler { |
406 public: | 399 public: |
407 TestJobInterceptor(); | 400 TestJobInterceptor(); |
408 | 401 |
409 virtual URLRequestJob* MaybeCreateJob( | 402 URLRequestJob* MaybeCreateJob( |
410 URLRequest* request, | 403 URLRequest* request, |
411 NetworkDelegate* network_delegate) const override; | 404 NetworkDelegate* network_delegate) const override; |
412 void set_main_intercept_job(URLRequestJob* job); | 405 void set_main_intercept_job(URLRequestJob* job); |
413 | 406 |
414 private: | 407 private: |
415 mutable URLRequestJob* main_intercept_job_; | 408 mutable URLRequestJob* main_intercept_job_; |
416 }; | 409 }; |
417 | 410 |
418 } // namespace net | 411 } // namespace net |
419 | 412 |
420 #endif // NET_URL_REQUEST_URL_REQUEST_TEST_UTIL_H_ | 413 #endif // NET_URL_REQUEST_URL_REQUEST_TEST_UTIL_H_ |
OLD | NEW |