| 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 #include <vector> | 5 #include <vector> |
| 6 | 6 |
| 7 #include "base/basictypes.h" | |
| 8 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
| 8 #include "base/macros.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
| 11 #include "base/stl_util.h" | 11 #include "base/stl_util.h" |
| 12 #include "base/strings/stringprintf.h" | 12 #include "base/strings/stringprintf.h" |
| 13 #include "net/base/network_quality_estimator.h" | 13 #include "net/base/network_quality_estimator.h" |
| 14 #include "net/base/socket_performance_watcher.h" | 14 #include "net/base/socket_performance_watcher.h" |
| 15 #include "net/base/test_completion_callback.h" | 15 #include "net/base/test_completion_callback.h" |
| 16 #include "net/base/test_data_directory.h" | 16 #include "net/base/test_data_directory.h" |
| 17 #include "net/cert/mock_cert_verifier.h" | 17 #include "net/cert/mock_cert_verifier.h" |
| 18 #include "net/cert/multi_log_ct_verifier.h" | 18 #include "net/cert/multi_log_ct_verifier.h" |
| (...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 344 ASSERT_TRUE(response != nullptr); | 344 ASSERT_TRUE(response != nullptr); |
| 345 ASSERT_TRUE(response->headers.get() != nullptr); | 345 ASSERT_TRUE(response->headers.get() != nullptr); |
| 346 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 346 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
| 347 EXPECT_TRUE(response->was_fetched_via_spdy); | 347 EXPECT_TRUE(response->was_fetched_via_spdy); |
| 348 EXPECT_TRUE(response->was_npn_negotiated); | 348 EXPECT_TRUE(response->was_npn_negotiated); |
| 349 EXPECT_EQ(HttpResponseInfo::CONNECTION_INFO_QUIC1_SPDY3, | 349 EXPECT_EQ(HttpResponseInfo::CONNECTION_INFO_QUIC1_SPDY3, |
| 350 response->connection_info); | 350 response->connection_info); |
| 351 } | 351 } |
| 352 | 352 |
| 353 void CheckResponsePort(const scoped_ptr<HttpNetworkTransaction>& trans, | 353 void CheckResponsePort(const scoped_ptr<HttpNetworkTransaction>& trans, |
| 354 uint16 port) { | 354 uint16_t port) { |
| 355 const HttpResponseInfo* response = trans->GetResponseInfo(); | 355 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 356 ASSERT_TRUE(response != nullptr); | 356 ASSERT_TRUE(response != nullptr); |
| 357 EXPECT_EQ(port, response->socket_address.port()); | 357 EXPECT_EQ(port, response->socket_address.port()); |
| 358 } | 358 } |
| 359 | 359 |
| 360 void CheckWasHttpResponse(const scoped_ptr<HttpNetworkTransaction>& trans) { | 360 void CheckWasHttpResponse(const scoped_ptr<HttpNetworkTransaction>& trans) { |
| 361 const HttpResponseInfo* response = trans->GetResponseInfo(); | 361 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 362 ASSERT_TRUE(response != nullptr); | 362 ASSERT_TRUE(response != nullptr); |
| 363 ASSERT_TRUE(response->headers.get() != nullptr); | 363 ASSERT_TRUE(response->headers.get() != nullptr); |
| 364 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 364 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 388 RunTransaction(trans); | 388 RunTransaction(trans); |
| 389 CheckWasHttpResponse(trans); | 389 CheckWasHttpResponse(trans); |
| 390 CheckResponseData(trans, expected); | 390 CheckResponseData(trans, expected); |
| 391 } | 391 } |
| 392 | 392 |
| 393 void SendRequestAndExpectQuicResponse(const std::string& expected) { | 393 void SendRequestAndExpectQuicResponse(const std::string& expected) { |
| 394 SendRequestAndExpectQuicResponseMaybeFromProxy(expected, false, 443); | 394 SendRequestAndExpectQuicResponseMaybeFromProxy(expected, false, 443); |
| 395 } | 395 } |
| 396 | 396 |
| 397 void SendRequestAndExpectQuicResponseOnPort(const std::string& expected, | 397 void SendRequestAndExpectQuicResponseOnPort(const std::string& expected, |
| 398 uint16 port) { | 398 uint16_t port) { |
| 399 SendRequestAndExpectQuicResponseMaybeFromProxy(expected, false, port); | 399 SendRequestAndExpectQuicResponseMaybeFromProxy(expected, false, port); |
| 400 } | 400 } |
| 401 | 401 |
| 402 void SendRequestAndExpectQuicResponseFromProxyOnPort( | 402 void SendRequestAndExpectQuicResponseFromProxyOnPort( |
| 403 const std::string& expected, | 403 const std::string& expected, |
| 404 uint16 port) { | 404 uint16_t port) { |
| 405 SendRequestAndExpectQuicResponseMaybeFromProxy(expected, true, port); | 405 SendRequestAndExpectQuicResponseMaybeFromProxy(expected, true, port); |
| 406 } | 406 } |
| 407 | 407 |
| 408 void AddQuicAlternateProtocolMapping( | 408 void AddQuicAlternateProtocolMapping( |
| 409 MockCryptoClientStream::HandshakeMode handshake_mode) { | 409 MockCryptoClientStream::HandshakeMode handshake_mode) { |
| 410 crypto_client_stream_factory_.set_handshake_mode(handshake_mode); | 410 crypto_client_stream_factory_.set_handshake_mode(handshake_mode); |
| 411 HostPortPair host_port_pair = HostPortPair::FromURL(request_.url); | 411 HostPortPair host_port_pair = HostPortPair::FromURL(request_.url); |
| 412 AlternativeService alternative_service(QUIC, host_port_pair.host(), 443); | 412 AlternativeService alternative_service(QUIC, host_port_pair.host(), 443); |
| 413 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 413 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
| 414 http_server_properties_.SetAlternativeService( | 414 http_server_properties_.SetAlternativeService( |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 459 HttpNetworkSession::Params params_; | 459 HttpNetworkSession::Params params_; |
| 460 HttpRequestInfo request_; | 460 HttpRequestInfo request_; |
| 461 BoundTestNetLog net_log_; | 461 BoundTestNetLog net_log_; |
| 462 StaticSocketDataProvider hanging_data_; | 462 StaticSocketDataProvider hanging_data_; |
| 463 SSLSocketDataProvider ssl_data_; | 463 SSLSocketDataProvider ssl_data_; |
| 464 | 464 |
| 465 private: | 465 private: |
| 466 void SendRequestAndExpectQuicResponseMaybeFromProxy( | 466 void SendRequestAndExpectQuicResponseMaybeFromProxy( |
| 467 const std::string& expected, | 467 const std::string& expected, |
| 468 bool used_proxy, | 468 bool used_proxy, |
| 469 uint16 port) { | 469 uint16_t port) { |
| 470 scoped_ptr<HttpNetworkTransaction> trans( | 470 scoped_ptr<HttpNetworkTransaction> trans( |
| 471 new HttpNetworkTransaction(DEFAULT_PRIORITY, session_.get())); | 471 new HttpNetworkTransaction(DEFAULT_PRIORITY, session_.get())); |
| 472 ProxyHeadersHandler proxy_headers_handler; | 472 ProxyHeadersHandler proxy_headers_handler; |
| 473 trans->SetBeforeProxyHeadersSentCallback( | 473 trans->SetBeforeProxyHeadersSentCallback( |
| 474 base::Bind(&ProxyHeadersHandler::OnBeforeProxyHeadersSent, | 474 base::Bind(&ProxyHeadersHandler::OnBeforeProxyHeadersSent, |
| 475 base::Unretained(&proxy_headers_handler))); | 475 base::Unretained(&proxy_headers_handler))); |
| 476 RunTransaction(trans); | 476 RunTransaction(trans); |
| 477 CheckWasQuicResponse(trans); | 477 CheckWasQuicResponse(trans); |
| 478 CheckResponsePort(trans, port); | 478 CheckResponsePort(trans, port); |
| 479 CheckResponseData(trans, expected); | 479 CheckResponseData(trans, expected); |
| (...skipping 1359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1839 request_.url = GURL("https://www.example.org:443"); | 1839 request_.url = GURL("https://www.example.org:443"); |
| 1840 AddHangingNonAlternateProtocolSocketData(); | 1840 AddHangingNonAlternateProtocolSocketData(); |
| 1841 CreateSessionWithNextProtos(); | 1841 CreateSessionWithNextProtos(); |
| 1842 AddQuicAlternateProtocolMapping(MockCryptoClientStream::CONFIRM_HANDSHAKE); | 1842 AddQuicAlternateProtocolMapping(MockCryptoClientStream::CONFIRM_HANDSHAKE); |
| 1843 SendRequestAndExpectQuicResponse("hello!"); | 1843 SendRequestAndExpectQuicResponse("hello!"); |
| 1844 EXPECT_TRUE(rtt_observer_.rtt_notification_received()); | 1844 EXPECT_TRUE(rtt_observer_.rtt_notification_received()); |
| 1845 } | 1845 } |
| 1846 | 1846 |
| 1847 } // namespace test | 1847 } // namespace test |
| 1848 } // namespace net | 1848 } // namespace net |
| OLD | NEW |