Index: net/quic/quic_network_transaction_unittest.cc |
diff --git a/net/quic/quic_network_transaction_unittest.cc b/net/quic/quic_network_transaction_unittest.cc |
index 5219d1e6ccb3cd4190666290039627b5e6316756..3c85ca4b44002f45a8a71212defb8c278ddbb283 100644 |
--- a/net/quic/quic_network_transaction_unittest.cc |
+++ b/net/quic/quic_network_transaction_unittest.cc |
@@ -102,6 +102,21 @@ class MockQuicData { |
scoped_ptr<SocketDataProvider> socket_data_; |
}; |
+class ProxyHeadersHandler { |
+ public: |
+ ProxyHeadersHandler() : was_called_(false) {} |
+ |
+ bool was_called() { return was_called_; } |
+ |
+ void OnBeforeProxyHeadersSent(const ProxyInfo& proxy_info, |
+ HttpRequestHeaders* request_headers) { |
+ was_called_ = true; |
+ } |
+ |
+ private: |
+ bool was_called_; |
+}; |
+ |
class QuicNetworkTransactionTest |
: public PlatformTest, |
public ::testing::WithParamInterface<QuicVersion> { |
@@ -269,11 +284,11 @@ class QuicNetworkTransactionTest |
} |
void SendRequestAndExpectQuicResponse(const std::string& expected) { |
- scoped_ptr<HttpNetworkTransaction> trans( |
- new HttpNetworkTransaction(DEFAULT_PRIORITY, session_.get())); |
- RunTransaction(trans.get()); |
- CheckWasQuicResponse(trans); |
- CheckResponseData(trans.get(), expected); |
+ SendRequestAndExpectQuicResponseMaybeFromProxy(expected, false); |
+ } |
+ |
+ void SendRequestAndExpectQuicResponseFromProxy(const std::string& expected) { |
+ SendRequestAndExpectQuicResponseMaybeFromProxy(expected, true); |
} |
void AddQuicAlternateProtocolMapping( |
@@ -284,17 +299,14 @@ class QuicNetworkTransactionTest |
} |
void ExpectBrokenAlternateProtocolMapping() { |
- ASSERT_TRUE(session_->http_server_properties()->HasAlternateProtocol( |
- HostPortPair::FromURL(request_.url))); |
const AlternateProtocolInfo alternate = |
session_->http_server_properties()->GetAlternateProtocol( |
HostPortPair::FromURL(request_.url)); |
+ EXPECT_NE(UNINITIALIZED_ALTERNATE_PROTOCOL, alternate.protocol); |
EXPECT_TRUE(alternate.is_broken); |
} |
void ExpectQuicAlternateProtocolMapping() { |
- ASSERT_TRUE(session_->http_server_properties()->HasAlternateProtocol( |
- HostPortPair::FromURL(request_.url))); |
const AlternateProtocolInfo alternate = |
session_->http_server_properties()->GetAlternateProtocol( |
HostPortPair::FromURL(request_.url)); |
@@ -324,6 +336,22 @@ class QuicNetworkTransactionTest |
HttpRequestInfo request_; |
CapturingBoundNetLog net_log_; |
StaticSocketDataProvider hanging_data_; |
+ |
+ private: |
+ void SendRequestAndExpectQuicResponseMaybeFromProxy( |
+ const std::string& expected, |
+ bool used_proxy) { |
+ scoped_ptr<HttpNetworkTransaction> trans( |
+ new HttpNetworkTransaction(DEFAULT_PRIORITY, session_.get())); |
+ ProxyHeadersHandler proxy_headers_handler; |
+ trans->SetBeforeProxyHeadersSentCallback( |
+ base::Bind(&ProxyHeadersHandler::OnBeforeProxyHeadersSent, |
+ base::Unretained(&proxy_headers_handler))); |
+ RunTransaction(trans.get()); |
+ CheckWasQuicResponse(trans); |
+ CheckResponseData(trans.get(), expected); |
+ EXPECT_EQ(used_proxy, proxy_headers_handler.was_called()); |
+ } |
}; |
INSTANTIATE_TEST_CASE_P(Version, QuicNetworkTransactionTest, |
@@ -414,7 +442,7 @@ TEST_P(QuicNetworkTransactionTest, QuicProxy) { |
CreateSession(); |
- SendRequestAndExpectQuicResponse("hello!"); |
+ SendRequestAndExpectQuicResponseFromProxy("hello!"); |
} |
TEST_P(QuicNetworkTransactionTest, ForceQuicWithErrorConnecting) { |