Index: net/quic/quic_stream_factory_test.cc |
diff --git a/net/quic/quic_stream_factory_test.cc b/net/quic/quic_stream_factory_test.cc |
index abe601201bf52ec7a82494ffa59f019e17c4977b..895b45ce167a6034671b0e08e41c547cc7a7bc07 100644 |
--- a/net/quic/quic_stream_factory_test.cc |
+++ b/net/quic/quic_stream_factory_test.cc |
@@ -23,6 +23,7 @@ |
#include "net/quic/crypto/quic_decrypter.h" |
#include "net/quic/crypto/quic_encrypter.h" |
#include "net/quic/crypto/quic_server_info.h" |
+#include "net/quic/quic_client_promised_info.h" |
#include "net/quic/quic_http_stream.h" |
#include "net/quic/quic_http_utils.h" |
#include "net/quic/quic_server_id.h" |
@@ -56,6 +57,10 @@ const char kServer2HostName[] = "mail.example.org"; |
const char kServer3HostName[] = "docs.example.org"; |
const char kServer4HostName[] = "images.example.org"; |
const int kDefaultServerPort = 443; |
+const char kDefaultUrl[] = "https://www.example.org/"; |
+const char kServer2Url[] = "https://mail.example.org/"; |
+const char kServer3Url[] = "https://docs.example.org/"; |
+const char kServer4Url[] = "https://images.example.org/"; |
// Run all tests with all the combinations of versions and |
// enable_connection_racing. |
@@ -201,6 +206,10 @@ class QuicStreamFactoryTest : public ::testing::TestWithParam<TestParams> { |
scoped_mock_network_change_notifier_(nullptr), |
factory_(nullptr), |
host_port_pair_(kDefaultServerHostName, kDefaultServerPort), |
+ url_(kDefaultUrl), |
+ url2_(kServer2Url), |
+ url3_(kServer3Url), |
+ url4_(kServer4Url), |
privacy_mode_(PRIVACY_MODE_DISABLED), |
enable_port_selection_(true), |
always_require_handshake_confirmation_(false), |
@@ -295,10 +304,11 @@ class QuicStreamFactoryTest : public ::testing::TestWithParam<TestParams> { |
socket_factory_.AddSocketDataProvider(&socket_data); |
QuicStreamRequest request(factory_.get()); |
+ GURL url("https://" + destination.host() + "/"); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(destination, privacy_mode_, |
- /*cert_verify_flags=*/0, destination.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
@@ -397,6 +407,11 @@ class QuicStreamFactoryTest : public ::testing::TestWithParam<TestParams> { |
scoped_mock_network_change_notifier_; |
scoped_ptr<QuicStreamFactory> factory_; |
HostPortPair host_port_pair_; |
+ GURL url_; |
+ GURL url2_; |
+ GURL url3_; |
+ GURL url4_; |
+ |
PrivacyMode privacy_mode_; |
BoundNetLog net_log_; |
TestCompletionCallback callback_; |
@@ -440,8 +455,8 @@ TEST_P(QuicStreamFactoryTest, Create) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
@@ -454,10 +469,9 @@ TEST_P(QuicStreamFactoryTest, Create) { |
// TODO(rtenneti): We should probably have a tests that HTTP and HTTPS result |
// in streams on different sessions. |
QuicStreamRequest request2(factory_.get()); |
- EXPECT_EQ(OK, |
- request2.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ EXPECT_EQ(OK, request2.Request(host_port_pair_, privacy_mode_, |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
stream = request2.ReleaseStream(); // Will reset stream 5. |
stream.reset(); // Will reset stream 7. |
@@ -482,8 +496,8 @@ TEST_P(QuicStreamFactoryTest, CreateZeroRtt) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
EXPECT_TRUE(stream.get()); |
@@ -510,8 +524,8 @@ TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { |
// Posts require handshake confirmation, so this will return asynchronously. |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "POST", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "POST", net_log_, |
+ callback_.callback())); |
// Confirm the handshake and verify that the stream is created. |
crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( |
@@ -540,9 +554,9 @@ TEST_P(QuicStreamFactoryTest, NoZeroRttForDifferentHost) { |
"192.168.0.1", ""); |
QuicStreamRequest request(factory_.get()); |
- int rv = |
- request.Request(host_port_pair_, privacy_mode_, /*cert_verify_flags=*/0, |
- kServer2HostName, "GET", net_log_, callback_.callback()); |
+ int rv = request.Request(host_port_pair_, privacy_mode_, |
+ /*cert_verify_flags=*/0, url2_, "GET", net_log_, |
+ callback_.callback()); |
// If server and origin have different hostnames, then handshake confirmation |
// should be required, so Request will return asynchronously. |
EXPECT_EQ(ERR_IO_PENDING, rv); |
@@ -569,8 +583,8 @@ TEST_P(QuicStreamFactoryTest, GoAway) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
@@ -605,15 +619,15 @@ TEST_P(QuicStreamFactoryTest, Pooling) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
EXPECT_TRUE(stream.get()); |
TestCompletionCallback callback; |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
- /*cert_verify_flags=*/0, server2.host(), "GET", |
+ /*cert_verify_flags=*/0, url2_, "GET", |
net_log_, callback.callback())); |
scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
EXPECT_TRUE(stream2.get()); |
@@ -647,15 +661,15 @@ TEST_P(QuicStreamFactoryTest, NoPoolingIfDisabled) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
EXPECT_TRUE(stream.get()); |
TestCompletionCallback callback; |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
- /*cert_verify_flags=*/0, server2.host(), "GET", |
+ /*cert_verify_flags=*/0, url2_, "GET", |
net_log_, callback.callback())); |
scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
EXPECT_TRUE(stream2.get()); |
@@ -690,15 +704,15 @@ TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
EXPECT_TRUE(stream.get()); |
TestCompletionCallback callback; |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
- /*cert_verify_flags=*/0, server2.host(), "GET", |
+ /*cert_verify_flags=*/0, url2_, "GET", |
net_log_, callback.callback())); |
scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
EXPECT_TRUE(stream2.get()); |
@@ -713,7 +727,7 @@ TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) { |
TestCompletionCallback callback3; |
QuicStreamRequest request3(factory_.get()); |
EXPECT_EQ(OK, request3.Request(server2, privacy_mode_, |
- /*cert_verify_flags=*/0, server2.host(), "GET", |
+ /*cert_verify_flags=*/0, url2_, "GET", |
net_log_, callback3.callback())); |
scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream(); |
EXPECT_TRUE(stream3.get()); |
@@ -745,15 +759,15 @@ TEST_P(QuicStreamFactoryTest, HttpsPooling) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(OK, request.Request(server1, privacy_mode_, |
- /*cert_verify_flags=*/0, server1.host(), "GET", |
- net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
EXPECT_TRUE(stream.get()); |
TestCompletionCallback callback; |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
- /*cert_verify_flags=*/0, server2.host(), "GET", |
+ /*cert_verify_flags=*/0, url2_, "GET", |
net_log_, callback_.callback())); |
scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
EXPECT_TRUE(stream2.get()); |
@@ -788,15 +802,15 @@ TEST_P(QuicStreamFactoryTest, NoHttpsPoolingIfDisabled) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(OK, request.Request(server1, privacy_mode_, |
- /*cert_verify_flags=*/0, server1.host(), "GET", |
- net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
EXPECT_TRUE(stream.get()); |
TestCompletionCallback callback; |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
- /*cert_verify_flags=*/0, server2.host(), "GET", |
+ /*cert_verify_flags=*/0, url2_, "GET", |
net_log_, callback_.callback())); |
scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
EXPECT_TRUE(stream2.get()); |
@@ -821,14 +835,14 @@ class QuicAlternativeServiceCertificateValidationPooling |
HostPortPair server1(kDefaultServerHostName, 443); |
HostPortPair server2(kServer2HostName, 443); |
- std::string origin_host(valid ? kServer2HostName : "invalid.example.com"); |
+ GURL url(valid ? url2_ : GURL("http://invalid.example.com/")); |
HostPortPair alternative(kDefaultServerHostName, 443); |
ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
bool common_name_fallback_used; |
EXPECT_EQ(valid, |
verify_details.cert_verify_result.verified_cert->VerifyNameMatch( |
- origin_host, &common_name_fallback_used)); |
+ url.host(), &common_name_fallback_used)); |
EXPECT_TRUE( |
verify_details.cert_verify_result.verified_cert->VerifyNameMatch( |
alternative.host(), &common_name_fallback_used)); |
@@ -841,15 +855,15 @@ class QuicAlternativeServiceCertificateValidationPooling |
// Open first stream to alternative. |
QuicStreamRequest request1(factory_.get()); |
EXPECT_EQ(OK, request1.Request(alternative, privacy_mode_, |
- /*cert_verify_flags=*/0, alternative.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", |
+ net_log_, callback_.callback())); |
scoped_ptr<QuicHttpStream> stream1 = request1.ReleaseStream(); |
EXPECT_TRUE(stream1.get()); |
QuicStreamRequest request2(factory_.get()); |
int rv = request2.Request(alternative, privacy_mode_, |
- /*cert_verify_flags=*/0, origin_host, "GET", |
- net_log_, callback_.callback()); |
+ /*cert_verify_flags=*/0, url, "GET", net_log_, |
+ callback_.callback()); |
if (valid) { |
// Alternative service of origin to |alternative| should pool to session |
// of |stream1| even if origin is different. Since only one |
@@ -905,15 +919,15 @@ TEST_P(QuicStreamFactoryTest, HttpsPoolingWithMatchingPins) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(OK, request.Request(server1, privacy_mode_, |
- /*cert_verify_flags=*/0, server1.host(), "GET", |
- net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
EXPECT_TRUE(stream.get()); |
TestCompletionCallback callback; |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
- /*cert_verify_flags=*/0, server2.host(), "GET", |
+ /*cert_verify_flags=*/0, url2_, "GET", |
net_log_, callback_.callback())); |
scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
EXPECT_TRUE(stream2.get()); |
@@ -954,15 +968,15 @@ TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithMatchingPinsIfDisabled) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(OK, request.Request(server1, privacy_mode_, |
- /*cert_verify_flags=*/0, server1.host(), "GET", |
- net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
EXPECT_TRUE(stream.get()); |
TestCompletionCallback callback; |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
- /*cert_verify_flags=*/0, server2.host(), "GET", |
+ /*cert_verify_flags=*/0, url2_, "GET", |
net_log_, callback_.callback())); |
scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
EXPECT_TRUE(stream2.get()); |
@@ -1008,15 +1022,15 @@ TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(OK, request.Request(server1, privacy_mode_, |
- /*cert_verify_flags=*/0, server1.host(), "GET", |
- net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
EXPECT_TRUE(stream.get()); |
TestCompletionCallback callback; |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
- /*cert_verify_flags=*/0, server2.host(), "GET", |
+ /*cert_verify_flags=*/0, url2_, "GET", |
net_log_, callback_.callback())); |
scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
EXPECT_TRUE(stream2.get()); |
@@ -1045,8 +1059,8 @@ TEST_P(QuicStreamFactoryTest, Goaway) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
@@ -1068,8 +1082,8 @@ TEST_P(QuicStreamFactoryTest, Goaway) { |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request2.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
EXPECT_TRUE(stream2.get()); |
@@ -1117,8 +1131,8 @@ TEST_P(QuicStreamFactoryTest, MaxOpenStream) { |
for (size_t i = 0; i < kDefaultMaxStreamsPerConnection / 2; i++) { |
QuicStreamRequest request(factory_.get()); |
int rv = request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback()); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback()); |
if (i == 0) { |
EXPECT_EQ(ERR_IO_PENDING, rv); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
@@ -1134,8 +1148,8 @@ TEST_P(QuicStreamFactoryTest, MaxOpenStream) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, CompletionCallback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ CompletionCallback())); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
EXPECT_TRUE(stream); |
EXPECT_EQ(ERR_IO_PENDING, |
@@ -1172,8 +1186,8 @@ TEST_P(QuicStreamFactoryTest, ResolutionErrorInCreate) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(ERR_NAME_NOT_RESOLVED, callback_.WaitForResult()); |
@@ -1191,8 +1205,8 @@ TEST_P(QuicStreamFactoryTest, ConnectErrorInCreate) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(ERR_ADDRESS_IN_USE, callback_.WaitForResult()); |
@@ -1209,8 +1223,8 @@ TEST_P(QuicStreamFactoryTest, CancelCreate) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
} |
base::RunLoop().RunUntilIdle(); |
@@ -1280,8 +1294,8 @@ TEST_P(QuicStreamFactoryTest, CloseAllSessions) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
@@ -1300,8 +1314,8 @@ TEST_P(QuicStreamFactoryTest, CloseAllSessions) { |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request2.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
stream = request2.ReleaseStream(); |
@@ -1336,8 +1350,8 @@ TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
@@ -1357,8 +1371,8 @@ TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) { |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request2.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
stream = request2.ReleaseStream(); |
@@ -1390,8 +1404,8 @@ TEST_P(QuicStreamFactoryTest, OnNetworkChangeSoonToDisconnect) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
EXPECT_TRUE(stream.get()); |
@@ -1455,8 +1469,8 @@ TEST_P(QuicStreamFactoryTest, OnNetworkChangeSoonToDisconnect) { |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request2.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
EXPECT_TRUE(stream2.get()); |
@@ -1505,8 +1519,8 @@ TEST_P(QuicStreamFactoryTest, OnNetworkChangeDisconnected) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
EXPECT_TRUE(stream.get()); |
@@ -1566,8 +1580,8 @@ TEST_P(QuicStreamFactoryTest, OnNetworkChangeDisconnected) { |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request2.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
EXPECT_TRUE(stream2.get()); |
@@ -1607,8 +1621,8 @@ TEST_P(QuicStreamFactoryTest, OnNetworkChangeSoonToDisconnectNoNetworks) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
EXPECT_TRUE(stream.get()); |
@@ -1661,8 +1675,8 @@ TEST_P(QuicStreamFactoryTest, OnNetworkChangeDisconnectedNoNetworks) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
EXPECT_TRUE(stream.get()); |
@@ -1710,8 +1724,8 @@ TEST_P(QuicStreamFactoryTest, OnNetworkChangeSoonToDisconnectNoNewNetwork) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
EXPECT_TRUE(stream.get()); |
@@ -1762,8 +1776,8 @@ TEST_P(QuicStreamFactoryTest, OnNetworkChangeDisconnectedNoNewNetwork) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
EXPECT_TRUE(stream.get()); |
@@ -1806,8 +1820,8 @@ TEST_P(QuicStreamFactoryTest, OnNetworkChangeSoonToDisconnectNoOpenStreams) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
EXPECT_TRUE(stream.get()); |
@@ -1844,8 +1858,8 @@ TEST_P(QuicStreamFactoryTest, OnNetworkChangeDisconnectedNoOpenStreams) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
EXPECT_TRUE(stream.get()); |
@@ -1888,8 +1902,8 @@ TEST_P(QuicStreamFactoryTest, MigrateSessionEarly) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
EXPECT_TRUE(stream.get()); |
@@ -1956,8 +1970,8 @@ TEST_P(QuicStreamFactoryTest, MigrateSessionEarly) { |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request2.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
EXPECT_TRUE(stream2.get()); |
@@ -2011,8 +2025,8 @@ TEST_P(QuicStreamFactoryTest, MigrateSessionEarlyNoNewNetwork) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
EXPECT_TRUE(stream.get()); |
@@ -2069,8 +2083,8 @@ TEST_P(QuicStreamFactoryTest, OnSSLConfigChanged) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
@@ -2089,8 +2103,8 @@ TEST_P(QuicStreamFactoryTest, OnSSLConfigChanged) { |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request2.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
stream = request2.ReleaseStream(); |
@@ -2124,8 +2138,8 @@ TEST_P(QuicStreamFactoryTest, OnCertAdded) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
@@ -2145,8 +2159,8 @@ TEST_P(QuicStreamFactoryTest, OnCertAdded) { |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request2.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
stream = request2.ReleaseStream(); |
@@ -2180,8 +2194,8 @@ TEST_P(QuicStreamFactoryTest, OnCACertChanged) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
@@ -2201,8 +2215,8 @@ TEST_P(QuicStreamFactoryTest, OnCACertChanged) { |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request2.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(OK, callback_.WaitForResult()); |
stream = request2.ReleaseStream(); |
@@ -2325,8 +2339,8 @@ TEST_P(QuicStreamFactoryTest, RacingConnections) { |
QuicServerId server_id(host_port_pair_, privacy_mode_); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
EXPECT_EQ(2u, QuicStreamFactoryPeer::GetNumberOfActiveJobs(factory_.get(), |
server_id)); |
@@ -2360,8 +2374,8 @@ TEST_P(QuicStreamFactoryTest, EnableNotLoadFromDiskCache) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
// If we are waiting for disk cache, we would have posted a task. Verify that |
// the CancelWaitForDataReady task hasn't been posted. |
@@ -2418,8 +2432,8 @@ TEST_P(QuicStreamFactoryTest, BadPacketLoss) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
QuicChromiumClientSession* session = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
@@ -2456,8 +2470,8 @@ TEST_P(QuicStreamFactoryTest, BadPacketLoss) { |
TestCompletionCallback callback2; |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
- /*cert_verify_flags=*/0, server2.host(), "GET", |
- net_log_, callback2.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback2.callback())); |
QuicChromiumClientSession* session2 = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2); |
@@ -2488,7 +2502,7 @@ TEST_P(QuicStreamFactoryTest, BadPacketLoss) { |
TestCompletionCallback callback3; |
QuicStreamRequest request3(factory_.get()); |
EXPECT_EQ(OK, request3.Request(server3, privacy_mode_, |
- /*cert_verify_flags=*/0, server3.host(), "GET", |
+ /*cert_verify_flags=*/0, url3_, "GET", |
net_log_, callback3.callback())); |
QuicChromiumClientSession* session3 = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server3); |
@@ -2497,7 +2511,7 @@ TEST_P(QuicStreamFactoryTest, BadPacketLoss) { |
TestCompletionCallback callback4; |
QuicStreamRequest request4(factory_.get()); |
EXPECT_EQ(OK, request4.Request(server4, privacy_mode_, |
- /*cert_verify_flags=*/0, server4.host(), "GET", |
+ /*cert_verify_flags=*/0, url4_, "GET", |
net_log_, callback4.callback())); |
QuicChromiumClientSession* session4 = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server4); |
@@ -2578,8 +2592,8 @@ TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfTwo) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
QuicChromiumClientSession* session = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
@@ -2602,7 +2616,7 @@ TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfTwo) { |
TestCompletionCallback callback2; |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
- /*cert_verify_flags=*/0, server2.host(), "GET", |
+ /*cert_verify_flags=*/0, url2_, "GET", |
net_log_, callback2.callback())); |
QuicChromiumClientSession* session2 = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2); |
@@ -2663,8 +2677,8 @@ TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfTwo) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
QuicChromiumClientSession* session = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
@@ -2694,7 +2708,7 @@ TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfTwo) { |
TestCompletionCallback callback2; |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
- /*cert_verify_flags=*/0, server2.host(), "GET", |
+ /*cert_verify_flags=*/0, url2_, "GET", |
net_log_, callback2.callback())); |
QuicChromiumClientSession* session2 = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2); |
@@ -2761,8 +2775,8 @@ TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfThree) { |
// Test first and third out of three public reset post handshakes. |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
QuicChromiumClientSession* session = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
@@ -2784,7 +2798,7 @@ TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfThree) { |
TestCompletionCallback callback2; |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
- /*cert_verify_flags=*/0, server2.host(), "GET", |
+ /*cert_verify_flags=*/0, url2_, "GET", |
net_log_, callback2.callback())); |
QuicChromiumClientSession* session2 = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2); |
@@ -2805,7 +2819,7 @@ TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfThree) { |
TestCompletionCallback callback3; |
QuicStreamRequest request3(factory_.get()); |
EXPECT_EQ(OK, request3.Request(server3, privacy_mode_, |
- /*cert_verify_flags=*/0, server3.host(), "GET", |
+ /*cert_verify_flags=*/0, url2_, "GET", |
net_log_, callback3.callback())); |
QuicChromiumClientSession* session3 = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server3); |
@@ -2879,8 +2893,8 @@ TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfThree) { |
// Test first and third out of three timeouts with open streams. |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
QuicChromiumClientSession* session = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
@@ -2910,7 +2924,7 @@ TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfThree) { |
TestCompletionCallback callback2; |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
- /*cert_verify_flags=*/0, server2.host(), "GET", |
+ /*cert_verify_flags=*/0, url2_, "GET", |
net_log_, callback2.callback())); |
QuicChromiumClientSession* session2 = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2); |
@@ -2932,7 +2946,7 @@ TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfThree) { |
TestCompletionCallback callback3; |
QuicStreamRequest request3(factory_.get()); |
EXPECT_EQ(OK, request3.Request(server3, privacy_mode_, |
- /*cert_verify_flags=*/0, server3.host(), "GET", |
+ /*cert_verify_flags=*/0, url3_, "GET", |
net_log_, callback3.callback())); |
QuicChromiumClientSession* session3 = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server3); |
@@ -2990,8 +3004,8 @@ TEST_P(QuicStreamFactoryTest, DisableQuicWhenTimeoutsWithOpenStreams) { |
// Test first timeouts with open streams will disable QUIC. |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
QuicChromiumClientSession* session = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
@@ -3069,8 +3083,8 @@ TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfFour) { |
// Test first and fourth out of four public reset post handshakes. |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
QuicChromiumClientSession* session = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
@@ -3092,7 +3106,7 @@ TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfFour) { |
TestCompletionCallback callback2; |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
- /*cert_verify_flags=*/0, server2.host(), "GET", |
+ /*cert_verify_flags=*/0, url2_, "GET", |
net_log_, callback2.callback())); |
QuicChromiumClientSession* session2 = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2); |
@@ -3111,7 +3125,7 @@ TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfFour) { |
TestCompletionCallback callback3; |
QuicStreamRequest request3(factory_.get()); |
EXPECT_EQ(OK, request3.Request(server3, privacy_mode_, |
- /*cert_verify_flags=*/0, server3.host(), "GET", |
+ /*cert_verify_flags=*/0, url3_, "GET", |
net_log_, callback3.callback())); |
QuicChromiumClientSession* session3 = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server3); |
@@ -3132,7 +3146,7 @@ TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfFour) { |
TestCompletionCallback callback4; |
QuicStreamRequest request4(factory_.get()); |
EXPECT_EQ(OK, request4.Request(server4, privacy_mode_, |
- /*cert_verify_flags=*/0, server4.host(), "GET", |
+ /*cert_verify_flags=*/0, url4_, "GET", |
net_log_, callback4.callback())); |
QuicChromiumClientSession* session4 = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server4); |
@@ -3213,8 +3227,8 @@ TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfFour) { |
// Test first and fourth out of three timeouts with open streams. |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
QuicChromiumClientSession* session = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
@@ -3243,7 +3257,7 @@ TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfFour) { |
TestCompletionCallback callback2; |
QuicStreamRequest request2(factory_.get()); |
EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
- /*cert_verify_flags=*/0, server2.host(), "GET", |
+ /*cert_verify_flags=*/0, url2_, "GET", |
net_log_, callback2.callback())); |
QuicChromiumClientSession* session2 = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2); |
@@ -3262,7 +3276,7 @@ TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfFour) { |
TestCompletionCallback callback3; |
QuicStreamRequest request3(factory_.get()); |
EXPECT_EQ(OK, request3.Request(server3, privacy_mode_, |
- /*cert_verify_flags=*/0, server3.host(), "GET", |
+ /*cert_verify_flags=*/0, url3_, "GET", |
net_log_, callback3.callback())); |
QuicChromiumClientSession* session3 = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server3); |
@@ -3284,7 +3298,7 @@ TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfFour) { |
TestCompletionCallback callback4; |
QuicStreamRequest request4(factory_.get()); |
EXPECT_EQ(OK, request4.Request(server4, privacy_mode_, |
- /*cert_verify_flags=*/0, server4.host(), "GET", |
+ /*cert_verify_flags=*/0, url4_, "GET", |
net_log_, callback4.callback())); |
QuicChromiumClientSession* session4 = |
QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server4); |
@@ -3341,8 +3355,8 @@ TEST_P(QuicStreamFactoryTest, EnableDelayTcpRace) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(ERR_IO_PENDING, |
request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "POST", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "POST", net_log_, |
+ callback_.callback())); |
// If we don't delay TCP connection, then time delay should be 0. |
EXPECT_FALSE(factory_->delay_tcp_race()); |
@@ -3493,8 +3507,8 @@ TEST_P(QuicStreamFactoryTest, YieldAfterPackets) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
// Call run_loop so that QuicChromiumPacketReader::OnReadComplete() gets |
// called. |
@@ -3542,8 +3556,8 @@ TEST_P(QuicStreamFactoryTest, YieldAfterDuration) { |
QuicStreamRequest request(factory_.get()); |
EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
- /*cert_verify_flags=*/0, host_port_pair_.host(), |
- "GET", net_log_, callback_.callback())); |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
// Call run_loop so that QuicChromiumPacketReader::OnReadComplete() gets |
// called. |
@@ -3561,5 +3575,109 @@ TEST_P(QuicStreamFactoryTest, YieldAfterDuration) { |
EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
} |
+TEST_P(QuicStreamFactoryTest, ServerPushSessionAffinity) { |
+ Initialize(); |
+ ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
+ crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
+ |
+ MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
+ SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
+ socket_factory_.AddSocketDataProvider(&socket_data); |
+ |
+ QuicStreamRequest request(factory_.get()); |
+ EXPECT_EQ(ERR_IO_PENDING, |
+ request.Request(host_port_pair_, privacy_mode_, |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
+ |
+ EXPECT_EQ(OK, callback_.WaitForResult()); |
+ scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
+ EXPECT_TRUE(stream.get()); |
+ |
+ EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); |
+ |
+ std::string url = "https://www.example.org/"; |
+ |
+ QuicChromiumClientSession* session = |
+ QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
+ |
+ QuicClientPromisedInfo promised(session, kServerDataStreamId1, url); |
+ (*QuicStreamFactoryPeer::GetPushPromiseIndex(factory_.get()) |
+ ->promised_by_url())[url] = &promised; |
+ |
+ QuicStreamRequest request2(factory_.get()); |
+ EXPECT_EQ(OK, request2.Request(host_port_pair_, privacy_mode_, |
+ /*cert_verify_flags=*/0, GURL(url), "GET", |
+ net_log_, callback_.callback())); |
+ |
+ EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); |
+} |
+ |
+TEST_P(QuicStreamFactoryTest, ServerPushPrivacyModeMismatch) { |
+ Initialize(); |
+ ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
+ crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
+ crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
+ |
+ MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
+ |
+ scoped_ptr<QuicEncryptedPacket> client_rst(maker_.MakeRstPacket( |
+ 1, true, kServerDataStreamId1, QUIC_STREAM_CANCELLED)); |
+ MockWrite writes[] = { |
+ MockWrite(SYNCHRONOUS, client_rst->data(), client_rst->length(), 1), |
+ }; |
+ |
+ SequencedSocketData socket_data1(reads, arraysize(reads), writes, |
+ arraysize(writes)); |
+ SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
+ |
+ socket_factory_.AddSocketDataProvider(&socket_data1); |
+ socket_factory_.AddSocketDataProvider(&socket_data2); |
+ |
+ QuicStreamRequest request(factory_.get()); |
+ EXPECT_EQ(ERR_IO_PENDING, |
+ request.Request(host_port_pair_, privacy_mode_, |
+ /*cert_verify_flags=*/0, url_, "GET", net_log_, |
+ callback_.callback())); |
+ |
+ EXPECT_EQ(OK, callback_.WaitForResult()); |
+ scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
+ EXPECT_TRUE(stream.get()); |
+ |
+ EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); |
+ |
+ std::string url = "https://www.example.org/"; |
+ QuicChromiumClientSession* session = |
+ QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
+ |
+ QuicClientPromisedInfo promised(session, kServerDataStreamId1, url); |
+ |
+ QuicClientPushPromiseIndex* index = |
+ QuicStreamFactoryPeer::GetPushPromiseIndex(factory_.get()); |
+ |
+ (*index->promised_by_url())[url] = &promised; |
+ EXPECT_EQ(index->GetPromised(url), &promised); |
+ |
+ // Doing the request should not use the push stream, but rather |
+ // cancel it because the privacy modes do not match. |
+ QuicStreamRequest request2(factory_.get()); |
+ EXPECT_EQ(ERR_IO_PENDING, |
+ request2.Request(host_port_pair_, PRIVACY_MODE_ENABLED, |
+ /*cert_verify_flags=*/0, GURL(url), "GET", |
+ net_log_, callback_.callback())); |
+ |
+ EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); |
+ EXPECT_EQ(index->GetPromised(url), nullptr); |
+ |
+ EXPECT_EQ(OK, callback_.WaitForResult()); |
+ scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
+ EXPECT_TRUE(stream2.get()); |
+ |
+ EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
+ EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
+ EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
+ EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
+} |
+ |
} // namespace test |
} // namespace net |