OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "ios/web/net/request_tracker_impl.h" | 5 #include "ios/web/net/request_tracker_impl.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/mac/scoped_nsobject.h" | 10 #include "base/mac/scoped_nsobject.h" |
11 #include "base/macros.h" | 11 #include "base/macros.h" |
| 12 #include "base/memory/ptr_util.h" |
12 #include "base/memory/scoped_vector.h" | 13 #include "base/memory/scoped_vector.h" |
13 #include "base/message_loop/message_loop.h" | 14 #include "base/message_loop/message_loop.h" |
14 #include "base/strings/sys_string_conversions.h" | 15 #include "base/strings/sys_string_conversions.h" |
15 #include "ios/web/public/cert_policy.h" | 16 #include "ios/web/public/cert_policy.h" |
16 #include "ios/web/public/certificate_policy_cache.h" | 17 #include "ios/web/public/certificate_policy_cache.h" |
17 #include "ios/web/public/ssl_status.h" | 18 #include "ios/web/public/ssl_status.h" |
18 #include "ios/web/public/test/test_browser_state.h" | 19 #include "ios/web/public/test/test_browser_state.h" |
19 #include "ios/web/public/test/test_web_thread.h" | 20 #include "ios/web/public/test/test_web_thread.h" |
20 #include "net/cert/x509_certificate.h" | 21 #include "net/cert/x509_certificate.h" |
21 #include "net/http/http_response_headers.h" | 22 #include "net/http/http_response_headers.h" |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
229 DCHECK_CURRENTLY_ON(web::WebThread::UI); | 230 DCHECK_CURRENTLY_ON(web::WebThread::UI); |
230 tracker_->FinishPageLoad(url, false); | 231 tracker_->FinishPageLoad(url, false); |
231 receiver_.get()->value_ = 0.0f; | 232 receiver_.get()->value_ = 0.0f; |
232 receiver_.get()->max_ = 0.0f; | 233 receiver_.get()->max_ = 0.0f; |
233 loop_.RunUntilIdle(); | 234 loop_.RunUntilIdle(); |
234 } | 235 } |
235 | 236 |
236 net::TestJobInterceptor* AddInterceptorToRequest(size_t i) { | 237 net::TestJobInterceptor* AddInterceptorToRequest(size_t i) { |
237 // |interceptor| will be deleted from |job_factory_|'s destructor. | 238 // |interceptor| will be deleted from |job_factory_|'s destructor. |
238 net::TestJobInterceptor* protocol_handler = new net::TestJobInterceptor(); | 239 net::TestJobInterceptor* protocol_handler = new net::TestJobInterceptor(); |
239 job_factory_.SetProtocolHandler("http", make_scoped_ptr(protocol_handler)); | 240 job_factory_.SetProtocolHandler("http", base::WrapUnique(protocol_handler)); |
240 contexts_[i]->set_job_factory(&job_factory_); | 241 contexts_[i]->set_job_factory(&job_factory_); |
241 return protocol_handler; | 242 return protocol_handler; |
242 } | 243 } |
243 | 244 |
244 private: | 245 private: |
245 net::URLRequest* GetInternalRequest(size_t i, bool secure) { | 246 net::URLRequest* GetInternalRequest(size_t i, bool secure) { |
246 GURL url; | 247 GURL url; |
247 if (secure) | 248 if (secure) |
248 url = GetSecureURL(requests_.size()); | 249 url = GetSecureURL(requests_.size()); |
249 else | 250 else |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
433 "content-disposition: attachment; filename=\"name.pdf\"\n" | 434 "content-disposition: attachment; filename=\"name.pdf\"\n" |
434 "X-Auto-Login: Hello World\n\n"; | 435 "X-Auto-Login: Hello World\n\n"; |
435 for (size_t i = 0; i < headers.length(); i++) { | 436 for (size_t i = 0; i < headers.length(); i++) { |
436 if (headers.data()[i] == '\n') | 437 if (headers.data()[i] == '\n') |
437 const_cast<char*>(headers.data())[i] = '\0'; | 438 const_cast<char*>(headers.data())[i] = '\0'; |
438 } | 439 } |
439 net::URLRequest* request = GetRequest(0); | 440 net::URLRequest* request = GetRequest(0); |
440 // TODO(mmenke): This is really bizarre. Do something more reasonable. | 441 // TODO(mmenke): This is really bizarre. Do something more reasonable. |
441 const_cast<net::HttpResponseInfo&>(request->response_info()).headers = | 442 const_cast<net::HttpResponseInfo&>(request->response_info()).headers = |
442 new net::HttpResponseHeaders(headers); | 443 new net::HttpResponseHeaders(headers); |
443 scoped_ptr<net::URLRequestTestJob> job(new net::URLRequestTestJob( | 444 std::unique_ptr<net::URLRequestTestJob> job(new net::URLRequestTestJob( |
444 request, request->context()->network_delegate(), headers, "", false)); | 445 request, request->context()->network_delegate(), headers, "", false)); |
445 AddInterceptorToRequest(0)->set_main_intercept_job(std::move(job)); | 446 AddInterceptorToRequest(0)->set_main_intercept_job(std::move(job)); |
446 request->Start(); | 447 request->Start(); |
447 | 448 |
448 tracker_->StartRequest(request); | 449 tracker_->StartRequest(request); |
449 tracker_->CaptureHeaders(request); | 450 tracker_->CaptureHeaders(request); |
450 tracker_->StopRequest(request); | 451 tracker_->StopRequest(request); |
451 loop_.RunUntilIdle(); | 452 loop_.RunUntilIdle(); |
452 EXPECT_TRUE([receiver_ headers]->HasHeaderValue("X-Auto-Login", | 453 EXPECT_TRUE([receiver_ headers]->HasHeaderValue("X-Auto-Login", |
453 "Hello World")); | 454 "Hello World")); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
504 base::Bind(&TwoStartsSSLCallback, | 505 base::Bind(&TwoStartsSSLCallback, |
505 &request_0_called)); | 506 &request_0_called)); |
506 tracker_->OnSSLCertificateError(GetSecureRequest(1), ssl_info, true, | 507 tracker_->OnSSLCertificateError(GetSecureRequest(1), ssl_info, true, |
507 base::Bind(&TwoStartsSSLCallback, | 508 base::Bind(&TwoStartsSSLCallback, |
508 &request_1_called)); | 509 &request_1_called)); |
509 EXPECT_TRUE(request_0_called); | 510 EXPECT_TRUE(request_0_called); |
510 EXPECT_TRUE(request_1_called); | 511 EXPECT_TRUE(request_1_called); |
511 } | 512 } |
512 | 513 |
513 } // namespace | 514 } // namespace |
OLD | NEW |