| 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
|
|
|