Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/quic/quic_stream_factory.h" | 5 #include "net/quic/quic_stream_factory.h" |
| 6 | 6 |
| 7 #include "base/run_loop.h" | 7 #include "base/run_loop.h" |
| 8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
| 9 #include "base/thread_task_runner_handle.h" | 9 #include "base/thread_task_runner_handle.h" |
| 10 #include "net/base/test_data_directory.h" | 10 #include "net/base/test_data_directory.h" |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 192 | 192 |
| 193 int GetSourcePortForNewSessionAndGoAway( | 193 int GetSourcePortForNewSessionAndGoAway( |
| 194 const HostPortPair& destination) { | 194 const HostPortPair& destination) { |
| 195 return GetSourcePortForNewSessionInner(destination, true); | 195 return GetSourcePortForNewSessionInner(destination, true); |
| 196 } | 196 } |
| 197 | 197 |
| 198 int GetSourcePortForNewSessionInner(const HostPortPair& destination, | 198 int GetSourcePortForNewSessionInner(const HostPortPair& destination, |
| 199 bool goaway_received) { | 199 bool goaway_received) { |
| 200 // Should only be called if there is no active session for this destination. | 200 // Should only be called if there is no active session for this destination. |
| 201 EXPECT_FALSE(HasActiveSession(destination)); | 201 EXPECT_FALSE(HasActiveSession(destination)); |
| 202 size_t socket_count = socket_factory_.udp_client_sockets().size(); | 202 size_t socket_count = socket_factory_.udp_client_socket_ports().size(); |
| 203 | 203 |
| 204 MockRead reads[] = { | 204 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
|
mmenke
2015/12/18 17:37:53
This operation was never completed, since the Dete
| |
| 205 MockRead(ASYNC, OK, 0) // EOF | 205 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 206 }; | |
| 207 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 208 socket_data.StopAfter(1); | |
| 209 socket_factory_.AddSocketDataProvider(&socket_data); | 206 socket_factory_.AddSocketDataProvider(&socket_data); |
| 210 | 207 |
| 211 QuicStreamRequest request(factory_.get()); | 208 QuicStreamRequest request(factory_.get()); |
| 212 EXPECT_EQ(ERR_IO_PENDING, | 209 EXPECT_EQ(ERR_IO_PENDING, |
| 213 request.Request(destination, privacy_mode_, | 210 request.Request(destination, privacy_mode_, |
| 214 /*cert_verify_flags=*/0, destination.host(), | 211 /*cert_verify_flags=*/0, destination.host(), |
| 215 "GET", net_log_, callback_.callback())); | 212 "GET", net_log_, callback_.callback())); |
| 216 | 213 |
| 217 EXPECT_EQ(OK, callback_.WaitForResult()); | 214 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 218 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 215 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 219 EXPECT_TRUE(stream.get()); | 216 EXPECT_TRUE(stream.get()); |
| 220 stream.reset(); | 217 stream.reset(); |
| 221 | 218 |
| 222 QuicChromiumClientSession* session = | 219 QuicChromiumClientSession* session = |
| 223 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), destination); | 220 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), destination); |
| 224 | 221 |
| 225 if (socket_count + 1 != socket_factory_.udp_client_sockets().size()) { | 222 if (socket_count + 1 != socket_factory_.udp_client_socket_ports().size()) { |
| 226 EXPECT_TRUE(false); | 223 ADD_FAILURE(); |
| 227 return 0; | 224 return 0; |
| 228 } | 225 } |
| 229 | 226 |
| 230 IPEndPoint endpoint; | |
| 231 socket_factory_. | |
| 232 udp_client_sockets()[socket_count]->GetLocalAddress(&endpoint); | |
| 233 int port = endpoint.port(); | |
| 234 if (goaway_received) { | 227 if (goaway_received) { |
| 235 QuicGoAwayFrame goaway(QUIC_NO_ERROR, 1, ""); | 228 QuicGoAwayFrame goaway(QUIC_NO_ERROR, 1, ""); |
| 236 session->connection()->OnGoAwayFrame(goaway); | 229 session->connection()->OnGoAwayFrame(goaway); |
| 237 } | 230 } |
| 238 | 231 |
| 239 factory_->OnSessionClosed(session); | 232 factory_->OnSessionClosed(session); |
| 240 EXPECT_FALSE(HasActiveSession(destination)); | 233 EXPECT_FALSE(HasActiveSession(destination)); |
| 241 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 234 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 242 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 235 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 243 return port; | 236 return socket_factory_.udp_client_socket_ports()[socket_count]; |
| 244 } | 237 } |
| 245 | 238 |
| 246 scoped_ptr<QuicEncryptedPacket> ConstructConnectionClosePacket( | 239 scoped_ptr<QuicEncryptedPacket> ConstructConnectionClosePacket( |
| 247 QuicPacketNumber num) { | 240 QuicPacketNumber num) { |
| 248 return maker_.MakeConnectionClosePacket(num); | 241 return maker_.MakeConnectionClosePacket(num); |
| 249 } | 242 } |
| 250 | 243 |
| 251 scoped_ptr<QuicEncryptedPacket> ConstructRstPacket() { | 244 scoped_ptr<QuicEncryptedPacket> ConstructRstPacket() { |
| 252 QuicStreamId stream_id = kClientDataStreamId1; | 245 QuicStreamId stream_id = kClientDataStreamId1; |
| 253 return maker_.MakeRstPacket( | 246 return maker_.MakeRstPacket( |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 268 } | 261 } |
| 269 | 262 |
| 270 void NotifyIPAddressChanged() { | 263 void NotifyIPAddressChanged() { |
| 271 NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests(); | 264 NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests(); |
| 272 // For thread safety, the NCN queues tasks to do the actual notifications, | 265 // For thread safety, the NCN queues tasks to do the actual notifications, |
| 273 // so we need to spin the message loop so the notification is delivered. | 266 // so we need to spin the message loop so the notification is delivered. |
| 274 base::MessageLoop::current()->RunUntilIdle(); | 267 base::MessageLoop::current()->RunUntilIdle(); |
| 275 } | 268 } |
| 276 | 269 |
| 277 MockHostResolver host_resolver_; | 270 MockHostResolver host_resolver_; |
| 278 DeterministicMockClientSocketFactory socket_factory_; | 271 MockClientSocketFactory socket_factory_; |
| 279 MockCryptoClientStreamFactory crypto_client_stream_factory_; | 272 MockCryptoClientStreamFactory crypto_client_stream_factory_; |
| 280 MockRandom random_generator_; | 273 MockRandom random_generator_; |
| 281 MockClock* clock_; // Owned by factory_. | 274 MockClock* clock_; // Owned by factory_. |
| 282 scoped_refptr<TestTaskRunner> runner_; | 275 scoped_refptr<TestTaskRunner> runner_; |
| 283 QuicTestPacketMaker maker_; | 276 QuicTestPacketMaker maker_; |
| 284 HttpServerPropertiesImpl http_server_properties_; | 277 HttpServerPropertiesImpl http_server_properties_; |
| 285 scoped_ptr<CertVerifier> cert_verifier_; | 278 scoped_ptr<CertVerifier> cert_verifier_; |
| 286 scoped_ptr<ChannelIDService> channel_id_service_; | 279 scoped_ptr<ChannelIDService> channel_id_service_; |
| 287 TransportSecurityState transport_security_state_; | 280 TransportSecurityState transport_security_state_; |
| 288 scoped_ptr<CTVerifier> cert_transparency_verifier_; | 281 scoped_ptr<CTVerifier> cert_transparency_verifier_; |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 313 int idle_connection_timeout_seconds_; | 306 int idle_connection_timeout_seconds_; |
| 314 }; | 307 }; |
| 315 | 308 |
| 316 INSTANTIATE_TEST_CASE_P(Version, | 309 INSTANTIATE_TEST_CASE_P(Version, |
| 317 QuicStreamFactoryTest, | 310 QuicStreamFactoryTest, |
| 318 ::testing::ValuesIn(GetTestParams())); | 311 ::testing::ValuesIn(GetTestParams())); |
| 319 | 312 |
| 320 TEST_P(QuicStreamFactoryTest, Create) { | 313 TEST_P(QuicStreamFactoryTest, Create) { |
| 321 Initialize(); | 314 Initialize(); |
| 322 | 315 |
| 323 MockRead reads[] = { | 316 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 324 MockRead(ASYNC, OK, 0) // EOF | 317 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 325 }; | |
| 326 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 327 socket_factory_.AddSocketDataProvider(&socket_data); | 318 socket_factory_.AddSocketDataProvider(&socket_data); |
| 328 socket_data.StopAfter(1); | |
| 329 | 319 |
| 330 QuicStreamRequest request(factory_.get()); | 320 QuicStreamRequest request(factory_.get()); |
| 331 EXPECT_EQ(ERR_IO_PENDING, | 321 EXPECT_EQ(ERR_IO_PENDING, |
| 332 request.Request(host_port_pair_, privacy_mode_, | 322 request.Request(host_port_pair_, privacy_mode_, |
| 333 /*cert_verify_flags=*/0, host_port_pair_.host(), | 323 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 334 "GET", net_log_, callback_.callback())); | 324 "GET", net_log_, callback_.callback())); |
| 335 | 325 |
| 336 EXPECT_EQ(OK, callback_.WaitForResult()); | 326 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 337 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 327 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 338 EXPECT_TRUE(stream.get()); | 328 EXPECT_TRUE(stream.get()); |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 351 stream = request2.ReleaseStream(); // Will reset stream 5. | 341 stream = request2.ReleaseStream(); // Will reset stream 5. |
| 352 stream.reset(); // Will reset stream 7. | 342 stream.reset(); // Will reset stream 7. |
| 353 | 343 |
| 354 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 344 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 355 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 345 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 356 } | 346 } |
| 357 | 347 |
| 358 TEST_P(QuicStreamFactoryTest, CreateZeroRtt) { | 348 TEST_P(QuicStreamFactoryTest, CreateZeroRtt) { |
| 359 Initialize(); | 349 Initialize(); |
| 360 | 350 |
| 361 MockRead reads[] = { | 351 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 362 MockRead(ASYNC, OK, 0) // EOF | 352 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 363 }; | |
| 364 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 365 socket_factory_.AddSocketDataProvider(&socket_data); | 353 socket_factory_.AddSocketDataProvider(&socket_data); |
| 366 socket_data.StopAfter(1); | |
| 367 | 354 |
| 368 crypto_client_stream_factory_.set_handshake_mode( | 355 crypto_client_stream_factory_.set_handshake_mode( |
| 369 MockCryptoClientStream::ZERO_RTT); | 356 MockCryptoClientStream::ZERO_RTT); |
| 370 host_resolver_.set_synchronous_mode(true); | 357 host_resolver_.set_synchronous_mode(true); |
| 371 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 358 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 372 "192.168.0.1", ""); | 359 "192.168.0.1", ""); |
| 373 | 360 |
| 374 QuicStreamRequest request(factory_.get()); | 361 QuicStreamRequest request(factory_.get()); |
| 375 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 362 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| 376 /*cert_verify_flags=*/0, host_port_pair_.host(), | 363 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 377 "GET", net_log_, callback_.callback())); | 364 "GET", net_log_, callback_.callback())); |
| 378 | 365 |
| 379 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 366 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 380 EXPECT_TRUE(stream.get()); | 367 EXPECT_TRUE(stream.get()); |
| 381 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 368 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 382 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 369 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 383 } | 370 } |
| 384 | 371 |
| 385 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { | 372 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { |
| 386 Initialize(); | 373 Initialize(); |
| 387 | 374 |
| 388 MockRead reads[] = { | 375 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 389 MockRead(ASYNC, OK, 0) // EOF | 376 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 390 }; | |
| 391 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 392 socket_factory_.AddSocketDataProvider(&socket_data); | 377 socket_factory_.AddSocketDataProvider(&socket_data); |
| 393 socket_data.StopAfter(1); | |
| 394 | 378 |
| 395 crypto_client_stream_factory_.set_handshake_mode( | 379 crypto_client_stream_factory_.set_handshake_mode( |
| 396 MockCryptoClientStream::ZERO_RTT); | 380 MockCryptoClientStream::ZERO_RTT); |
| 397 host_resolver_.set_synchronous_mode(true); | 381 host_resolver_.set_synchronous_mode(true); |
| 398 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 382 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 399 "192.168.0.1", ""); | 383 "192.168.0.1", ""); |
| 400 | 384 |
| 401 QuicStreamRequest request(factory_.get()); | 385 QuicStreamRequest request(factory_.get()); |
| 402 // Posts require handshake confirmation, so this will return asynchronously. | 386 // Posts require handshake confirmation, so this will return asynchronously. |
| 403 EXPECT_EQ(ERR_IO_PENDING, | 387 EXPECT_EQ(ERR_IO_PENDING, |
| 404 request.Request(host_port_pair_, privacy_mode_, | 388 request.Request(host_port_pair_, privacy_mode_, |
| 405 /*cert_verify_flags=*/0, host_port_pair_.host(), | 389 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 406 "POST", net_log_, callback_.callback())); | 390 "POST", net_log_, callback_.callback())); |
| 407 | 391 |
| 408 // Confirm the handshake and verify that the stream is created. | 392 // Confirm the handshake and verify that the stream is created. |
| 409 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( | 393 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( |
| 410 QuicSession::HANDSHAKE_CONFIRMED); | 394 QuicSession::HANDSHAKE_CONFIRMED); |
| 411 | 395 |
| 412 EXPECT_EQ(OK, callback_.WaitForResult()); | 396 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 413 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 397 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 414 EXPECT_TRUE(stream.get()); | 398 EXPECT_TRUE(stream.get()); |
| 415 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 399 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 416 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 400 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 417 } | 401 } |
| 418 | 402 |
| 419 TEST_P(QuicStreamFactoryTest, NoZeroRttForDifferentHost) { | 403 TEST_P(QuicStreamFactoryTest, NoZeroRttForDifferentHost) { |
| 420 Initialize(); | 404 Initialize(); |
| 421 | 405 |
| 422 MockRead reads[] = { | 406 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 423 MockRead(ASYNC, OK, 0), | 407 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 424 }; | |
| 425 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 426 socket_factory_.AddSocketDataProvider(&socket_data); | 408 socket_factory_.AddSocketDataProvider(&socket_data); |
| 427 socket_data.StopAfter(1); | |
| 428 | 409 |
| 429 crypto_client_stream_factory_.set_handshake_mode( | 410 crypto_client_stream_factory_.set_handshake_mode( |
| 430 MockCryptoClientStream::ZERO_RTT); | 411 MockCryptoClientStream::ZERO_RTT); |
| 431 host_resolver_.set_synchronous_mode(true); | 412 host_resolver_.set_synchronous_mode(true); |
| 432 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 413 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 433 "192.168.0.1", ""); | 414 "192.168.0.1", ""); |
| 434 | 415 |
| 435 QuicStreamRequest request(factory_.get()); | 416 QuicStreamRequest request(factory_.get()); |
| 436 int rv = request.Request( | 417 int rv = request.Request( |
| 437 host_port_pair_, privacy_mode_, /*cert_verify_flags=*/0, | 418 host_port_pair_, privacy_mode_, /*cert_verify_flags=*/0, |
| 438 "different.host.example.com", "GET", net_log_, callback_.callback()); | 419 "different.host.example.com", "GET", net_log_, callback_.callback()); |
| 439 // If server and origin have different hostnames, then handshake confirmation | 420 // If server and origin have different hostnames, then handshake confirmation |
| 440 // should be required, so Request will return asynchronously. | 421 // should be required, so Request will return asynchronously. |
| 441 EXPECT_EQ(ERR_IO_PENDING, rv); | 422 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 442 // Confirm handshake. | 423 // Confirm handshake. |
| 443 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( | 424 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( |
| 444 QuicSession::HANDSHAKE_CONFIRMED); | 425 QuicSession::HANDSHAKE_CONFIRMED); |
| 445 EXPECT_EQ(OK, callback_.WaitForResult()); | 426 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 446 | 427 |
| 447 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 428 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 448 EXPECT_TRUE(stream.get()); | 429 EXPECT_TRUE(stream.get()); |
| 449 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 430 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 450 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 431 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 451 } | 432 } |
| 452 | 433 |
| 453 TEST_P(QuicStreamFactoryTest, GoAway) { | 434 TEST_P(QuicStreamFactoryTest, GoAway) { |
| 454 Initialize(); | 435 Initialize(); |
| 455 | 436 |
| 456 MockRead reads[] = { | 437 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 457 MockRead(ASYNC, OK, 0) // EOF | 438 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 458 }; | |
| 459 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 460 socket_factory_.AddSocketDataProvider(&socket_data); | 439 socket_factory_.AddSocketDataProvider(&socket_data); |
| 461 socket_data.StopAfter(1); | |
| 462 | 440 |
| 463 QuicStreamRequest request(factory_.get()); | 441 QuicStreamRequest request(factory_.get()); |
| 464 EXPECT_EQ(ERR_IO_PENDING, | 442 EXPECT_EQ(ERR_IO_PENDING, |
| 465 request.Request(host_port_pair_, privacy_mode_, | 443 request.Request(host_port_pair_, privacy_mode_, |
| 466 /*cert_verify_flags=*/0, host_port_pair_.host(), | 444 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 467 "GET", net_log_, callback_.callback())); | 445 "GET", net_log_, callback_.callback())); |
| 468 | 446 |
| 469 EXPECT_EQ(OK, callback_.WaitForResult()); | 447 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 470 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 448 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 471 EXPECT_TRUE(stream.get()); | 449 EXPECT_TRUE(stream.get()); |
| 472 | 450 |
| 473 QuicChromiumClientSession* session = | 451 QuicChromiumClientSession* session = |
| 474 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 452 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
| 475 | 453 |
| 476 session->OnGoAway(QuicGoAwayFrame()); | 454 session->OnGoAway(QuicGoAwayFrame()); |
| 477 | 455 |
| 478 EXPECT_FALSE( | 456 EXPECT_FALSE( |
| 479 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); | 457 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); |
| 480 | 458 |
| 481 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 459 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 482 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 460 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 483 } | 461 } |
| 484 | 462 |
| 485 TEST_P(QuicStreamFactoryTest, Pooling) { | 463 TEST_P(QuicStreamFactoryTest, Pooling) { |
| 486 Initialize(); | 464 Initialize(); |
| 487 | 465 |
| 488 MockRead reads[] = { | 466 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 489 MockRead(ASYNC, OK, 0) // EOF | 467 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 490 }; | |
| 491 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 492 socket_factory_.AddSocketDataProvider(&socket_data); | 468 socket_factory_.AddSocketDataProvider(&socket_data); |
| 493 socket_data.StopAfter(1); | |
| 494 | 469 |
| 495 HostPortPair server2("mail.google.com", kDefaultServerPort); | 470 HostPortPair server2("mail.google.com", kDefaultServerPort); |
| 496 host_resolver_.set_synchronous_mode(true); | 471 host_resolver_.set_synchronous_mode(true); |
| 497 host_resolver_.rules()->AddIPLiteralRule( | 472 host_resolver_.rules()->AddIPLiteralRule( |
| 498 kDefaultServerHostName, "192.168.0.1", ""); | 473 kDefaultServerHostName, "192.168.0.1", ""); |
| 499 host_resolver_.rules()->AddIPLiteralRule( | 474 host_resolver_.rules()->AddIPLiteralRule( |
| 500 "mail.google.com", "192.168.0.1", ""); | 475 "mail.google.com", "192.168.0.1", ""); |
| 501 | 476 |
| 502 QuicStreamRequest request(factory_.get()); | 477 QuicStreamRequest request(factory_.get()); |
| 503 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 478 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 519 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); | 494 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); |
| 520 | 495 |
| 521 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 496 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 522 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 497 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 523 } | 498 } |
| 524 | 499 |
| 525 TEST_P(QuicStreamFactoryTest, NoPoolingIfDisabled) { | 500 TEST_P(QuicStreamFactoryTest, NoPoolingIfDisabled) { |
| 526 disable_connection_pooling_ = true; | 501 disable_connection_pooling_ = true; |
| 527 Initialize(); | 502 Initialize(); |
| 528 | 503 |
| 529 MockRead reads[] = { | 504 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 530 MockRead(ASYNC, OK, 0) // EOF | 505 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
| 531 }; | 506 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 532 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | |
| 533 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | |
| 534 socket_factory_.AddSocketDataProvider(&socket_data1); | 507 socket_factory_.AddSocketDataProvider(&socket_data1); |
| 535 socket_factory_.AddSocketDataProvider(&socket_data2); | 508 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 536 socket_data1.StopAfter(1); | |
| 537 socket_data2.StopAfter(1); | |
| 538 | 509 |
| 539 HostPortPair server2("mail.google.com", kDefaultServerPort); | 510 HostPortPair server2("mail.google.com", kDefaultServerPort); |
| 540 host_resolver_.set_synchronous_mode(true); | 511 host_resolver_.set_synchronous_mode(true); |
| 541 host_resolver_.rules()->AddIPLiteralRule( | 512 host_resolver_.rules()->AddIPLiteralRule( |
| 542 kDefaultServerHostName, "192.168.0.1", ""); | 513 kDefaultServerHostName, "192.168.0.1", ""); |
| 543 host_resolver_.rules()->AddIPLiteralRule( | 514 host_resolver_.rules()->AddIPLiteralRule( |
| 544 "mail.google.com", "192.168.0.1", ""); | 515 "mail.google.com", "192.168.0.1", ""); |
| 545 | 516 |
| 546 QuicStreamRequest request(factory_.get()); | 517 QuicStreamRequest request(factory_.get()); |
| 547 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 518 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 564 | 535 |
| 565 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 536 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
| 566 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 537 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
| 567 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 538 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 568 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 539 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 569 } | 540 } |
| 570 | 541 |
| 571 TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) { | 542 TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) { |
| 572 Initialize(); | 543 Initialize(); |
| 573 | 544 |
| 574 MockRead reads[] = { | 545 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 575 MockRead(ASYNC, OK, 0) // EOF | 546 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
| 576 }; | 547 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 577 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | |
| 578 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | |
| 579 socket_factory_.AddSocketDataProvider(&socket_data1); | 548 socket_factory_.AddSocketDataProvider(&socket_data1); |
| 580 socket_factory_.AddSocketDataProvider(&socket_data2); | 549 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 581 socket_data1.StopAfter(1); | |
| 582 socket_data2.StopAfter(1); | |
| 583 | 550 |
| 584 HostPortPair server2("mail.google.com", kDefaultServerPort); | 551 HostPortPair server2("mail.google.com", kDefaultServerPort); |
| 585 host_resolver_.set_synchronous_mode(true); | 552 host_resolver_.set_synchronous_mode(true); |
| 586 host_resolver_.rules()->AddIPLiteralRule( | 553 host_resolver_.rules()->AddIPLiteralRule( |
| 587 kDefaultServerHostName, "192.168.0.1", ""); | 554 kDefaultServerHostName, "192.168.0.1", ""); |
| 588 host_resolver_.rules()->AddIPLiteralRule( | 555 host_resolver_.rules()->AddIPLiteralRule( |
| 589 "mail.google.com", "192.168.0.1", ""); | 556 "mail.google.com", "192.168.0.1", ""); |
| 590 | 557 |
| 591 QuicStreamRequest request(factory_.get()); | 558 QuicStreamRequest request(factory_.get()); |
| 592 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 559 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| (...skipping 28 matching lines...) Expand all Loading... | |
| 621 EXPECT_TRUE(QuicStreamFactoryPeer::HasActiveSession(factory_.get(), server2)); | 588 EXPECT_TRUE(QuicStreamFactoryPeer::HasActiveSession(factory_.get(), server2)); |
| 622 | 589 |
| 623 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 590 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
| 624 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 591 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
| 625 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 592 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 626 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 593 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 627 } | 594 } |
| 628 | 595 |
| 629 TEST_P(QuicStreamFactoryTest, HttpsPooling) { | 596 TEST_P(QuicStreamFactoryTest, HttpsPooling) { |
| 630 Initialize(); | 597 Initialize(); |
| 631 MockRead reads[] = { | 598 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 632 MockRead(ASYNC, OK, 0) // EOF | 599 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 633 }; | |
| 634 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 635 socket_factory_.AddSocketDataProvider(&socket_data); | 600 socket_factory_.AddSocketDataProvider(&socket_data); |
| 636 socket_data.StopAfter(1); | |
| 637 | 601 |
| 638 HostPortPair server1("www.example.org", 443); | 602 HostPortPair server1("www.example.org", 443); |
| 639 HostPortPair server2("mail.example.org", 443); | 603 HostPortPair server2("mail.example.org", 443); |
| 640 | 604 |
| 641 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 605 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 642 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 606 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 643 | 607 |
| 644 host_resolver_.set_synchronous_mode(true); | 608 host_resolver_.set_synchronous_mode(true); |
| 645 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 609 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
| 646 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 610 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 664 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); | 628 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); |
| 665 | 629 |
| 666 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 630 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 667 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 631 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 668 } | 632 } |
| 669 | 633 |
| 670 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingIfDisabled) { | 634 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingIfDisabled) { |
| 671 disable_connection_pooling_ = true; | 635 disable_connection_pooling_ = true; |
| 672 Initialize(); | 636 Initialize(); |
| 673 | 637 |
| 674 MockRead reads[] = { | 638 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 675 MockRead(ASYNC, OK, 0) // EOF | 639 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
| 676 }; | 640 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 677 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | |
| 678 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | |
| 679 socket_factory_.AddSocketDataProvider(&socket_data1); | 641 socket_factory_.AddSocketDataProvider(&socket_data1); |
| 680 socket_factory_.AddSocketDataProvider(&socket_data2); | 642 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 681 socket_data1.StopAfter(1); | |
| 682 socket_data2.StopAfter(1); | |
| 683 | 643 |
| 684 HostPortPair server1("www.example.org", 443); | 644 HostPortPair server1("www.example.org", 443); |
| 685 HostPortPair server2("mail.example.org", 443); | 645 HostPortPair server2("mail.example.org", 443); |
| 686 | 646 |
| 687 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 647 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 688 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 648 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 689 | 649 |
| 690 host_resolver_.set_synchronous_mode(true); | 650 host_resolver_.set_synchronous_mode(true); |
| 691 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 651 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
| 692 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 652 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 712 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 672 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
| 713 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 673 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
| 714 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 674 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 715 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 675 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 716 } | 676 } |
| 717 | 677 |
| 718 class QuicAlternativeServiceCertificateValidationPooling | 678 class QuicAlternativeServiceCertificateValidationPooling |
| 719 : public QuicStreamFactoryTest { | 679 : public QuicStreamFactoryTest { |
| 720 public: | 680 public: |
| 721 void Run(bool valid) { | 681 void Run(bool valid) { |
| 722 MockRead reads[] = { | 682 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 723 MockRead(ASYNC, OK, 0) // EOF | 683 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
| 724 }; | |
| 725 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | |
| 726 socket_factory_.AddSocketDataProvider(&socket_data1); | 684 socket_factory_.AddSocketDataProvider(&socket_data1); |
| 727 socket_data1.StopAfter(1); | |
| 728 | 685 |
| 729 HostPortPair server1("www.example.org", 443); | 686 HostPortPair server1("www.example.org", 443); |
| 730 HostPortPair server2("mail.example.org", 443); | 687 HostPortPair server2("mail.example.org", 443); |
| 731 | 688 |
| 732 std::string origin_host(valid ? "mail.example.org" : "invalid.example.org"); | 689 std::string origin_host(valid ? "mail.example.org" : "invalid.example.org"); |
| 733 HostPortPair alternative("www.example.org", 443); | 690 HostPortPair alternative("www.example.org", 443); |
| 734 | 691 |
| 735 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 692 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 736 bool common_name_fallback_used; | 693 bool common_name_fallback_used; |
| 737 EXPECT_EQ(valid, | 694 EXPECT_EQ(valid, |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 784 Run(true); | 741 Run(true); |
| 785 } | 742 } |
| 786 | 743 |
| 787 TEST_P(QuicAlternativeServiceCertificateValidationPooling, Invalid) { | 744 TEST_P(QuicAlternativeServiceCertificateValidationPooling, Invalid) { |
| 788 Initialize(); | 745 Initialize(); |
| 789 Run(false); | 746 Run(false); |
| 790 } | 747 } |
| 791 | 748 |
| 792 TEST_P(QuicStreamFactoryTest, HttpsPoolingWithMatchingPins) { | 749 TEST_P(QuicStreamFactoryTest, HttpsPoolingWithMatchingPins) { |
| 793 Initialize(); | 750 Initialize(); |
| 794 MockRead reads[] = { | 751 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 795 MockRead(ASYNC, OK, 0) // EOF | 752 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 796 }; | |
| 797 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 798 socket_factory_.AddSocketDataProvider(&socket_data); | 753 socket_factory_.AddSocketDataProvider(&socket_data); |
| 799 socket_data.StopAfter(1); | |
| 800 | 754 |
| 801 HostPortPair server1("www.example.org", 443); | 755 HostPortPair server1("www.example.org", 443); |
| 802 HostPortPair server2("mail.example.org", 443); | 756 HostPortPair server2("mail.example.org", 443); |
| 803 uint8 primary_pin = 1; | 757 uint8 primary_pin = 1; |
| 804 uint8 backup_pin = 2; | 758 uint8 backup_pin = 2; |
| 805 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, | 759 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, |
| 806 backup_pin); | 760 backup_pin); |
| 807 | 761 |
| 808 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 762 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 809 verify_details.cert_verify_result.public_key_hashes.push_back( | 763 verify_details.cert_verify_result.public_key_hashes.push_back( |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 833 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); | 787 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); |
| 834 | 788 |
| 835 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 789 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 836 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 790 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 837 } | 791 } |
| 838 | 792 |
| 839 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithMatchingPinsIfDisabled) { | 793 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithMatchingPinsIfDisabled) { |
| 840 disable_connection_pooling_ = true; | 794 disable_connection_pooling_ = true; |
| 841 Initialize(); | 795 Initialize(); |
| 842 | 796 |
| 843 MockRead reads[] = { | 797 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 844 MockRead(ASYNC, OK, 0) // EOF | 798 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
| 845 }; | 799 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 846 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | |
| 847 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | |
| 848 socket_factory_.AddSocketDataProvider(&socket_data1); | 800 socket_factory_.AddSocketDataProvider(&socket_data1); |
| 849 socket_factory_.AddSocketDataProvider(&socket_data2); | 801 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 850 socket_data1.StopAfter(1); | |
| 851 socket_data2.StopAfter(1); | |
| 852 | 802 |
| 853 HostPortPair server1("www.example.org", 443); | 803 HostPortPair server1("www.example.org", 443); |
| 854 HostPortPair server2("mail.example.org", 443); | 804 HostPortPair server2("mail.example.org", 443); |
| 855 uint8 primary_pin = 1; | 805 uint8 primary_pin = 1; |
| 856 uint8 backup_pin = 2; | 806 uint8 backup_pin = 2; |
| 857 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, | 807 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, |
| 858 backup_pin); | 808 backup_pin); |
| 859 | 809 |
| 860 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 810 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 861 verify_details.cert_verify_result.public_key_hashes.push_back( | 811 verify_details.cert_verify_result.public_key_hashes.push_back( |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 885 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); | 835 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); |
| 886 | 836 |
| 887 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 837 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
| 888 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 838 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
| 889 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 839 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 890 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 840 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 891 } | 841 } |
| 892 | 842 |
| 893 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) { | 843 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) { |
| 894 Initialize(); | 844 Initialize(); |
| 895 MockRead reads[] = { | 845 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 896 MockRead(ASYNC, OK, 0) // EOF | 846 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
| 897 }; | 847 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 898 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | |
| 899 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | |
| 900 socket_factory_.AddSocketDataProvider(&socket_data1); | 848 socket_factory_.AddSocketDataProvider(&socket_data1); |
| 901 socket_factory_.AddSocketDataProvider(&socket_data2); | 849 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 902 socket_data1.StopAfter(1); | |
| 903 socket_data2.StopAfter(1); | |
| 904 | 850 |
| 905 HostPortPair server1("www.example.org", 443); | 851 HostPortPair server1("www.example.org", 443); |
| 906 HostPortPair server2("mail.example.org", 443); | 852 HostPortPair server2("mail.example.org", 443); |
| 907 uint8 primary_pin = 1; | 853 uint8 primary_pin = 1; |
| 908 uint8 backup_pin = 2; | 854 uint8 backup_pin = 2; |
| 909 uint8 bad_pin = 3; | 855 uint8 bad_pin = 3; |
| 910 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, | 856 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, |
| 911 backup_pin); | 857 backup_pin); |
| 912 | 858 |
| 913 ProofVerifyDetailsChromium verify_details1 = DefaultProofVerifyDetails(); | 859 ProofVerifyDetailsChromium verify_details1 = DefaultProofVerifyDetails(); |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 943 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); | 889 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); |
| 944 | 890 |
| 945 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 891 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
| 946 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 892 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
| 947 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 893 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 948 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 894 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 949 } | 895 } |
| 950 | 896 |
| 951 TEST_P(QuicStreamFactoryTest, Goaway) { | 897 TEST_P(QuicStreamFactoryTest, Goaway) { |
| 952 Initialize(); | 898 Initialize(); |
| 953 MockRead reads[] = { | 899 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 954 MockRead(ASYNC, OK, 0) // EOF | 900 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 955 }; | |
| 956 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 957 socket_data.StopAfter(1); | |
| 958 socket_factory_.AddSocketDataProvider(&socket_data); | 901 socket_factory_.AddSocketDataProvider(&socket_data); |
| 959 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 902 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 960 socket_data2.StopAfter(1); | |
| 961 socket_factory_.AddSocketDataProvider(&socket_data2); | 903 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 962 | 904 |
| 963 QuicStreamRequest request(factory_.get()); | 905 QuicStreamRequest request(factory_.get()); |
| 964 EXPECT_EQ(ERR_IO_PENDING, | 906 EXPECT_EQ(ERR_IO_PENDING, |
| 965 request.Request(host_port_pair_, privacy_mode_, | 907 request.Request(host_port_pair_, privacy_mode_, |
| 966 /*cert_verify_flags=*/0, host_port_pair_.host(), | 908 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 967 "GET", net_log_, callback_.callback())); | 909 "GET", net_log_, callback_.callback())); |
| 968 | 910 |
| 969 EXPECT_EQ(OK, callback_.WaitForResult()); | 911 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 970 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 912 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1013 QuicStreamId stream_id = kClientDataStreamId1; | 955 QuicStreamId stream_id = kClientDataStreamId1; |
| 1014 scoped_ptr<QuicEncryptedPacket> client_rst( | 956 scoped_ptr<QuicEncryptedPacket> client_rst( |
| 1015 maker_.MakeRstPacket(1, true, stream_id, QUIC_STREAM_CANCELLED)); | 957 maker_.MakeRstPacket(1, true, stream_id, QUIC_STREAM_CANCELLED)); |
| 1016 MockWrite writes[] = { | 958 MockWrite writes[] = { |
| 1017 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 0), | 959 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 0), |
| 1018 }; | 960 }; |
| 1019 scoped_ptr<QuicEncryptedPacket> server_rst( | 961 scoped_ptr<QuicEncryptedPacket> server_rst( |
| 1020 maker_.MakeRstPacket(1, false, stream_id, QUIC_STREAM_CANCELLED)); | 962 maker_.MakeRstPacket(1, false, stream_id, QUIC_STREAM_CANCELLED)); |
| 1021 MockRead reads[] = { | 963 MockRead reads[] = { |
| 1022 MockRead(ASYNC, server_rst->data(), server_rst->length(), 1), | 964 MockRead(ASYNC, server_rst->data(), server_rst->length(), 1), |
| 1023 MockRead(ASYNC, OK, 2) // EOF | 965 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 2)}; |
|
mmenke
2015/12/18 17:37:53
Because this was calling RunFor(2) before, the fin
Ryan Hamilton
2015/12/18 19:50:25
Yeah, this test was "exploiting" RunFor(). Your fi
| |
| 1024 }; | 966 SequencedSocketData socket_data(reads, arraysize(reads), writes, |
| 1025 DeterministicSocketData socket_data(reads, arraysize(reads), | 967 arraysize(writes)); |
| 1026 writes, arraysize(writes)); | |
| 1027 socket_factory_.AddSocketDataProvider(&socket_data); | 968 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1028 socket_data.StopAfter(2); | |
| 1029 | 969 |
| 1030 HttpRequestInfo request_info; | 970 HttpRequestInfo request_info; |
| 1031 std::vector<QuicHttpStream*> streams; | 971 std::vector<QuicHttpStream*> streams; |
| 1032 // The MockCryptoClientStream sets max_open_streams to be | 972 // The MockCryptoClientStream sets max_open_streams to be |
| 1033 // kDefaultMaxStreamsPerConnection / 2. | 973 // kDefaultMaxStreamsPerConnection / 2. |
| 1034 for (size_t i = 0; i < kDefaultMaxStreamsPerConnection / 2; i++) { | 974 for (size_t i = 0; i < kDefaultMaxStreamsPerConnection / 2; i++) { |
| 1035 QuicStreamRequest request(factory_.get()); | 975 QuicStreamRequest request(factory_.get()); |
| 1036 int rv = request.Request(host_port_pair_, privacy_mode_, | 976 int rv = request.Request(host_port_pair_, privacy_mode_, |
| 1037 /*cert_verify_flags=*/0, host_port_pair_.host(), | 977 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 1038 "GET", net_log_, callback_.callback()); | 978 "GET", net_log_, callback_.callback()); |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 1055 "GET", net_log_, CompletionCallback())); | 995 "GET", net_log_, CompletionCallback())); |
| 1056 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 996 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 1057 EXPECT_TRUE(stream); | 997 EXPECT_TRUE(stream); |
| 1058 EXPECT_EQ(ERR_IO_PENDING, stream->InitializeStream( | 998 EXPECT_EQ(ERR_IO_PENDING, stream->InitializeStream( |
| 1059 &request_info, DEFAULT_PRIORITY, net_log_, callback_.callback())); | 999 &request_info, DEFAULT_PRIORITY, net_log_, callback_.callback())); |
| 1060 | 1000 |
| 1061 // Close the first stream. | 1001 // Close the first stream. |
| 1062 streams.front()->Close(false); | 1002 streams.front()->Close(false); |
| 1063 // Trigger exchange of RSTs that in turn allow progress for the last | 1003 // Trigger exchange of RSTs that in turn allow progress for the last |
| 1064 // stream. | 1004 // stream. |
| 1065 socket_data.RunFor(2); | |
| 1066 | |
| 1067 ASSERT_TRUE(callback_.have_result()); | |
| 1068 EXPECT_EQ(OK, callback_.WaitForResult()); | 1005 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 1069 | 1006 |
| 1070 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1007 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1071 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1008 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1072 | 1009 |
| 1073 // Force close of the connection to suppress the generation of RST | 1010 // Force close of the connection to suppress the generation of RST |
| 1074 // packets when streams are torn down, which wouldn't be relevant to | 1011 // packets when streams are torn down, which wouldn't be relevant to |
| 1075 // this test anyway. | 1012 // this test anyway. |
| 1076 QuicChromiumClientSession* session = | 1013 QuicChromiumClientSession* session = |
| 1077 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 1014 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
| 1078 session->connection()->CloseConnection(QUIC_PUBLIC_RESET, true); | 1015 session->connection()->CloseConnection(QUIC_PUBLIC_RESET, true); |
| 1079 | 1016 |
| 1080 STLDeleteElements(&streams); | 1017 STLDeleteElements(&streams); |
| 1081 } | 1018 } |
| 1082 | 1019 |
| 1083 TEST_P(QuicStreamFactoryTest, ResolutionErrorInCreate) { | 1020 TEST_P(QuicStreamFactoryTest, ResolutionErrorInCreate) { |
| 1084 Initialize(); | 1021 Initialize(); |
| 1085 DeterministicSocketData socket_data(nullptr, 0, nullptr, 0); | 1022 SequencedSocketData socket_data(nullptr, 0, nullptr, 0); |
| 1086 socket_factory_.AddSocketDataProvider(&socket_data); | 1023 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1087 | 1024 |
| 1088 host_resolver_.rules()->AddSimulatedFailure(kDefaultServerHostName); | 1025 host_resolver_.rules()->AddSimulatedFailure(kDefaultServerHostName); |
| 1089 | 1026 |
| 1090 QuicStreamRequest request(factory_.get()); | 1027 QuicStreamRequest request(factory_.get()); |
| 1091 EXPECT_EQ(ERR_IO_PENDING, | 1028 EXPECT_EQ(ERR_IO_PENDING, |
| 1092 request.Request(host_port_pair_, privacy_mode_, | 1029 request.Request(host_port_pair_, privacy_mode_, |
| 1093 /*cert_verify_flags=*/0, host_port_pair_.host(), | 1030 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 1094 "GET", net_log_, callback_.callback())); | 1031 "GET", net_log_, callback_.callback())); |
| 1095 | 1032 |
| 1096 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, callback_.WaitForResult()); | 1033 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, callback_.WaitForResult()); |
| 1097 | 1034 |
| 1098 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1035 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1099 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1036 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1100 } | 1037 } |
| 1101 | 1038 |
| 1102 TEST_P(QuicStreamFactoryTest, ConnectErrorInCreate) { | 1039 TEST_P(QuicStreamFactoryTest, ConnectErrorInCreate) { |
| 1103 Initialize(); | 1040 Initialize(); |
| 1104 MockConnect connect(SYNCHRONOUS, ERR_ADDRESS_IN_USE); | 1041 MockConnect connect(SYNCHRONOUS, ERR_ADDRESS_IN_USE); |
| 1105 DeterministicSocketData socket_data(nullptr, 0, nullptr, 0); | 1042 SequencedSocketData socket_data(nullptr, 0, nullptr, 0); |
| 1106 socket_data.set_connect_data(connect); | 1043 socket_data.set_connect_data(connect); |
| 1107 socket_factory_.AddSocketDataProvider(&socket_data); | 1044 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1108 socket_data.StopAfter(1); | |
| 1109 | 1045 |
| 1110 QuicStreamRequest request(factory_.get()); | 1046 QuicStreamRequest request(factory_.get()); |
| 1111 EXPECT_EQ(ERR_IO_PENDING, | 1047 EXPECT_EQ(ERR_IO_PENDING, |
| 1112 request.Request(host_port_pair_, privacy_mode_, | 1048 request.Request(host_port_pair_, privacy_mode_, |
| 1113 /*cert_verify_flags=*/0, host_port_pair_.host(), | 1049 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 1114 "GET", net_log_, callback_.callback())); | 1050 "GET", net_log_, callback_.callback())); |
| 1115 | 1051 |
| 1116 EXPECT_EQ(ERR_ADDRESS_IN_USE, callback_.WaitForResult()); | 1052 EXPECT_EQ(ERR_ADDRESS_IN_USE, callback_.WaitForResult()); |
| 1117 | 1053 |
| 1118 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1054 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1119 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1055 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1120 } | 1056 } |
| 1121 | 1057 |
| 1122 TEST_P(QuicStreamFactoryTest, CancelCreate) { | 1058 TEST_P(QuicStreamFactoryTest, CancelCreate) { |
| 1123 Initialize(); | 1059 Initialize(); |
| 1124 MockRead reads[] = { | 1060 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1125 MockRead(ASYNC, OK, 0) // EOF | 1061 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 1126 }; | |
| 1127 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 1128 socket_factory_.AddSocketDataProvider(&socket_data); | 1062 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1129 { | 1063 { |
| 1130 QuicStreamRequest request(factory_.get()); | 1064 QuicStreamRequest request(factory_.get()); |
| 1131 EXPECT_EQ(ERR_IO_PENDING, | 1065 EXPECT_EQ(ERR_IO_PENDING, |
| 1132 request.Request(host_port_pair_, privacy_mode_, | 1066 request.Request(host_port_pair_, privacy_mode_, |
| 1133 /*cert_verify_flags=*/0, host_port_pair_.host(), | 1067 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 1134 "GET", net_log_, callback_.callback())); | 1068 "GET", net_log_, callback_.callback())); |
| 1135 } | 1069 } |
| 1136 | 1070 |
| 1137 socket_data.StopAfter(1); | 1071 base::RunLoop().RunUntilIdle(); |
| 1138 base::RunLoop run_loop; | |
| 1139 run_loop.RunUntilIdle(); | |
| 1140 | 1072 |
| 1141 scoped_ptr<QuicHttpStream> stream(CreateFromSession(host_port_pair_)); | 1073 scoped_ptr<QuicHttpStream> stream(CreateFromSession(host_port_pair_)); |
| 1142 EXPECT_TRUE(stream.get()); | 1074 EXPECT_TRUE(stream.get()); |
| 1143 stream.reset(); | 1075 stream.reset(); |
| 1144 | 1076 |
| 1145 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1077 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1146 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1078 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1147 } | 1079 } |
| 1148 | 1080 |
| 1149 TEST_P(QuicStreamFactoryTest, CreateConsistentEphemeralPort) { | 1081 TEST_P(QuicStreamFactoryTest, CreateConsistentEphemeralPort) { |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 1169 int original_port = | 1101 int original_port = |
| 1170 GetSourcePortForNewSessionAndGoAway(host_port_pair_); | 1102 GetSourcePortForNewSessionAndGoAway(host_port_pair_); |
| 1171 // Verify that the port is different after the goaway. | 1103 // Verify that the port is different after the goaway. |
| 1172 EXPECT_NE(original_port, GetSourcePortForNewSession(host_port_pair_)); | 1104 EXPECT_NE(original_port, GetSourcePortForNewSession(host_port_pair_)); |
| 1173 // Since the previous session did not goaway we should see the original port. | 1105 // Since the previous session did not goaway we should see the original port. |
| 1174 EXPECT_EQ(original_port, GetSourcePortForNewSession(host_port_pair_)); | 1106 EXPECT_EQ(original_port, GetSourcePortForNewSession(host_port_pair_)); |
| 1175 } | 1107 } |
| 1176 | 1108 |
| 1177 TEST_P(QuicStreamFactoryTest, CloseAllSessions) { | 1109 TEST_P(QuicStreamFactoryTest, CloseAllSessions) { |
| 1178 Initialize(); | 1110 Initialize(); |
| 1179 MockRead reads[] = { | 1111 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1180 MockRead(ASYNC, 0, 0) // EOF | |
| 1181 }; | |
| 1182 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); | 1112 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); |
| 1183 std::vector<MockWrite> writes; | 1113 std::vector<MockWrite> writes; |
| 1184 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); | 1114 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); |
| 1185 DeterministicSocketData socket_data(reads, arraysize(reads), | 1115 SequencedSocketData socket_data(reads, arraysize(reads), |
| 1186 writes.empty() ? nullptr : &writes[0], | 1116 writes.empty() ? nullptr : &writes[0], |
| 1187 writes.size()); | 1117 writes.size()); |
| 1188 socket_factory_.AddSocketDataProvider(&socket_data); | 1118 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1189 socket_data.StopAfter(1); | |
| 1190 | 1119 |
| 1191 MockRead reads2[] = { | 1120 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1192 MockRead(ASYNC, 0, 0) // EOF | 1121 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
| 1193 }; | |
| 1194 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); | |
| 1195 socket_factory_.AddSocketDataProvider(&socket_data2); | 1122 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1196 socket_data2.StopAfter(1); | |
| 1197 | 1123 |
| 1198 QuicStreamRequest request(factory_.get()); | 1124 QuicStreamRequest request(factory_.get()); |
| 1199 EXPECT_EQ(ERR_IO_PENDING, | 1125 EXPECT_EQ(ERR_IO_PENDING, |
| 1200 request.Request(host_port_pair_, privacy_mode_, | 1126 request.Request(host_port_pair_, privacy_mode_, |
| 1201 /*cert_verify_flags=*/0, host_port_pair_.host(), | 1127 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 1202 "GET", net_log_, callback_.callback())); | 1128 "GET", net_log_, callback_.callback())); |
| 1203 | 1129 |
| 1204 EXPECT_EQ(OK, callback_.WaitForResult()); | 1130 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 1205 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1131 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 1206 HttpRequestInfo request_info; | 1132 HttpRequestInfo request_info; |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 1229 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1155 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1230 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1156 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1231 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1157 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 1232 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1158 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 1233 } | 1159 } |
| 1234 | 1160 |
| 1235 TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) { | 1161 TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) { |
| 1236 close_sessions_on_ip_change_ = true; | 1162 close_sessions_on_ip_change_ = true; |
| 1237 Initialize(); | 1163 Initialize(); |
| 1238 | 1164 |
| 1239 MockRead reads[] = { | 1165 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1240 MockRead(ASYNC, 0, 0) // EOF | |
| 1241 }; | |
| 1242 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); | 1166 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); |
| 1243 std::vector<MockWrite> writes; | 1167 std::vector<MockWrite> writes; |
| 1244 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); | 1168 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); |
| 1245 DeterministicSocketData socket_data(reads, arraysize(reads), | 1169 SequencedSocketData socket_data(reads, arraysize(reads), |
| 1246 writes.empty() ? nullptr : &writes[0], | 1170 writes.empty() ? nullptr : &writes[0], |
| 1247 writes.size()); | 1171 writes.size()); |
| 1248 socket_factory_.AddSocketDataProvider(&socket_data); | 1172 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1249 socket_data.StopAfter(1); | |
| 1250 | 1173 |
| 1251 MockRead reads2[] = { | 1174 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1252 MockRead(ASYNC, 0, 0) // EOF | 1175 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
| 1253 }; | |
| 1254 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); | |
| 1255 socket_factory_.AddSocketDataProvider(&socket_data2); | 1176 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1256 socket_data2.StopAfter(1); | |
| 1257 | 1177 |
| 1258 QuicStreamRequest request(factory_.get()); | 1178 QuicStreamRequest request(factory_.get()); |
| 1259 EXPECT_EQ(ERR_IO_PENDING, | 1179 EXPECT_EQ(ERR_IO_PENDING, |
| 1260 request.Request(host_port_pair_, privacy_mode_, | 1180 request.Request(host_port_pair_, privacy_mode_, |
| 1261 /*cert_verify_flags=*/0, host_port_pair_.host(), | 1181 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 1262 "GET", net_log_, callback_.callback())); | 1182 "GET", net_log_, callback_.callback())); |
| 1263 | 1183 |
| 1264 EXPECT_EQ(OK, callback_.WaitForResult()); | 1184 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 1265 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1185 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 1266 HttpRequestInfo request_info; | 1186 HttpRequestInfo request_info; |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 1288 stream.reset(); // Will reset stream 3. | 1208 stream.reset(); // Will reset stream 3. |
| 1289 | 1209 |
| 1290 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1210 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1291 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1211 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1292 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1212 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 1293 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1213 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 1294 } | 1214 } |
| 1295 | 1215 |
| 1296 TEST_P(QuicStreamFactoryTest, OnSSLConfigChanged) { | 1216 TEST_P(QuicStreamFactoryTest, OnSSLConfigChanged) { |
| 1297 Initialize(); | 1217 Initialize(); |
| 1298 MockRead reads[] = { | 1218 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1299 MockRead(ASYNC, 0, 0) // EOF | |
| 1300 }; | |
| 1301 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); | 1219 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); |
| 1302 std::vector<MockWrite> writes; | 1220 std::vector<MockWrite> writes; |
| 1303 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); | 1221 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); |
| 1304 DeterministicSocketData socket_data(reads, arraysize(reads), | 1222 SequencedSocketData socket_data(reads, arraysize(reads), |
| 1305 writes.empty() ? nullptr : &writes[0], | 1223 writes.empty() ? nullptr : &writes[0], |
| 1306 writes.size()); | 1224 writes.size()); |
| 1307 socket_factory_.AddSocketDataProvider(&socket_data); | 1225 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1308 socket_data.StopAfter(1); | |
| 1309 | 1226 |
| 1310 MockRead reads2[] = { | 1227 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1311 MockRead(ASYNC, 0, 0) // EOF | 1228 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
| 1312 }; | |
| 1313 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); | |
| 1314 socket_factory_.AddSocketDataProvider(&socket_data2); | 1229 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1315 socket_data2.StopAfter(1); | |
| 1316 | 1230 |
| 1317 QuicStreamRequest request(factory_.get()); | 1231 QuicStreamRequest request(factory_.get()); |
| 1318 EXPECT_EQ(ERR_IO_PENDING, | 1232 EXPECT_EQ(ERR_IO_PENDING, |
| 1319 request.Request(host_port_pair_, privacy_mode_, | 1233 request.Request(host_port_pair_, privacy_mode_, |
| 1320 /*cert_verify_flags=*/0, host_port_pair_.host(), | 1234 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 1321 "GET", net_log_, callback_.callback())); | 1235 "GET", net_log_, callback_.callback())); |
| 1322 | 1236 |
| 1323 EXPECT_EQ(OK, callback_.WaitForResult()); | 1237 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 1324 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1238 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 1325 HttpRequestInfo request_info; | 1239 HttpRequestInfo request_info; |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 1345 stream.reset(); // Will reset stream 3. | 1259 stream.reset(); // Will reset stream 3. |
| 1346 | 1260 |
| 1347 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1261 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1348 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1262 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1349 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1263 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 1350 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1264 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 1351 } | 1265 } |
| 1352 | 1266 |
| 1353 TEST_P(QuicStreamFactoryTest, OnCertAdded) { | 1267 TEST_P(QuicStreamFactoryTest, OnCertAdded) { |
| 1354 Initialize(); | 1268 Initialize(); |
| 1355 MockRead reads[] = { | 1269 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1356 MockRead(ASYNC, 0, 0) // EOF | |
| 1357 }; | |
| 1358 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); | 1270 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); |
| 1359 std::vector<MockWrite> writes; | 1271 std::vector<MockWrite> writes; |
| 1360 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); | 1272 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); |
| 1361 DeterministicSocketData socket_data(reads, arraysize(reads), | 1273 SequencedSocketData socket_data(reads, arraysize(reads), |
| 1362 writes.empty() ? nullptr : &writes[0], | 1274 writes.empty() ? nullptr : &writes[0], |
| 1363 writes.size()); | 1275 writes.size()); |
| 1364 socket_factory_.AddSocketDataProvider(&socket_data); | 1276 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1365 socket_data.StopAfter(1); | |
| 1366 | 1277 |
| 1367 MockRead reads2[] = { | 1278 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1368 MockRead(ASYNC, 0, 0) // EOF | 1279 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
| 1369 }; | |
| 1370 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); | |
| 1371 socket_factory_.AddSocketDataProvider(&socket_data2); | 1280 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1372 socket_data2.StopAfter(1); | |
| 1373 | 1281 |
| 1374 QuicStreamRequest request(factory_.get()); | 1282 QuicStreamRequest request(factory_.get()); |
| 1375 EXPECT_EQ(ERR_IO_PENDING, | 1283 EXPECT_EQ(ERR_IO_PENDING, |
| 1376 request.Request(host_port_pair_, privacy_mode_, | 1284 request.Request(host_port_pair_, privacy_mode_, |
| 1377 /*cert_verify_flags=*/0, host_port_pair_.host(), | 1285 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 1378 "GET", net_log_, callback_.callback())); | 1286 "GET", net_log_, callback_.callback())); |
| 1379 | 1287 |
| 1380 EXPECT_EQ(OK, callback_.WaitForResult()); | 1288 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 1381 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1289 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 1382 HttpRequestInfo request_info; | 1290 HttpRequestInfo request_info; |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 1404 stream.reset(); // Will reset stream 3. | 1312 stream.reset(); // Will reset stream 3. |
| 1405 | 1313 |
| 1406 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1314 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1407 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1315 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1408 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1316 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 1409 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1317 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 1410 } | 1318 } |
| 1411 | 1319 |
| 1412 TEST_P(QuicStreamFactoryTest, OnCACertChanged) { | 1320 TEST_P(QuicStreamFactoryTest, OnCACertChanged) { |
| 1413 Initialize(); | 1321 Initialize(); |
| 1414 MockRead reads[] = { | 1322 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1415 MockRead(ASYNC, 0, 0) // EOF | |
| 1416 }; | |
| 1417 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); | 1323 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); |
| 1418 std::vector<MockWrite> writes; | 1324 std::vector<MockWrite> writes; |
| 1419 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); | 1325 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); |
| 1420 DeterministicSocketData socket_data(reads, arraysize(reads), | 1326 SequencedSocketData socket_data(reads, arraysize(reads), |
| 1421 writes.empty() ? nullptr : &writes[0], | 1327 writes.empty() ? nullptr : &writes[0], |
| 1422 writes.size()); | 1328 writes.size()); |
| 1423 socket_factory_.AddSocketDataProvider(&socket_data); | 1329 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1424 socket_data.StopAfter(1); | |
| 1425 | 1330 |
| 1426 MockRead reads2[] = { | 1331 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1427 MockRead(ASYNC, 0, 0) // EOF | 1332 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
| 1428 }; | |
| 1429 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); | |
| 1430 socket_factory_.AddSocketDataProvider(&socket_data2); | 1333 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1431 socket_data2.StopAfter(1); | |
| 1432 | 1334 |
| 1433 QuicStreamRequest request(factory_.get()); | 1335 QuicStreamRequest request(factory_.get()); |
| 1434 EXPECT_EQ(ERR_IO_PENDING, | 1336 EXPECT_EQ(ERR_IO_PENDING, |
| 1435 request.Request(host_port_pair_, privacy_mode_, | 1337 request.Request(host_port_pair_, privacy_mode_, |
| 1436 /*cert_verify_flags=*/0, host_port_pair_.host(), | 1338 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 1437 "GET", net_log_, callback_.callback())); | 1339 "GET", net_log_, callback_.callback())); |
| 1438 | 1340 |
| 1439 EXPECT_EQ(OK, callback_.WaitForResult()); | 1341 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 1440 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1342 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 1441 HttpRequestInfo request_info; | 1343 HttpRequestInfo request_info; |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1541 | 1443 |
| 1542 TEST_P(QuicStreamFactoryTest, RacingConnections) { | 1444 TEST_P(QuicStreamFactoryTest, RacingConnections) { |
| 1543 disable_disk_cache_ = false; | 1445 disable_disk_cache_ = false; |
| 1544 Initialize(); | 1446 Initialize(); |
| 1545 | 1447 |
| 1546 if (!GetParam().enable_connection_racing) | 1448 if (!GetParam().enable_connection_racing) |
| 1547 return; | 1449 return; |
| 1548 | 1450 |
| 1549 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 1451 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 1550 | 1452 |
| 1551 MockRead reads[] = { | 1453 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1552 MockRead(ASYNC, OK, 0) // EOF | 1454 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 1553 }; | |
| 1554 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 1555 socket_factory_.AddSocketDataProvider(&socket_data); | 1455 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1556 socket_data.StopAfter(1); | |
| 1557 | 1456 |
| 1558 MockRead reads2[] = { | 1457 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1559 MockRead(ASYNC, 0, 0) // EOF | 1458 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
| 1560 }; | |
| 1561 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); | |
| 1562 socket_factory_.AddSocketDataProvider(&socket_data2); | 1459 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1563 socket_data2.StopAfter(1); | |
| 1564 | 1460 |
| 1565 const AlternativeService alternative_service1(QUIC, host_port_pair_.host(), | 1461 const AlternativeService alternative_service1(QUIC, host_port_pair_.host(), |
| 1566 host_port_pair_.port()); | 1462 host_port_pair_.port()); |
| 1567 AlternativeServiceInfoVector alternative_service_info_vector; | 1463 AlternativeServiceInfoVector alternative_service_info_vector; |
| 1568 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 1464 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
| 1569 alternative_service_info_vector.push_back( | 1465 alternative_service_info_vector.push_back( |
| 1570 AlternativeServiceInfo(alternative_service1, 1.0, expiration)); | 1466 AlternativeServiceInfo(alternative_service1, 1.0, expiration)); |
| 1571 | 1467 |
| 1572 http_server_properties_.SetAlternativeServices( | 1468 http_server_properties_.SetAlternativeServices( |
| 1573 host_port_pair_, alternative_service_info_vector); | 1469 host_port_pair_, alternative_service_info_vector); |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 1595 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1491 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1596 EXPECT_EQ(0u, QuicStreamFactoryPeer::GetNumberOfActiveJobs(factory_.get(), | 1492 EXPECT_EQ(0u, QuicStreamFactoryPeer::GetNumberOfActiveJobs(factory_.get(), |
| 1597 server_id)); | 1493 server_id)); |
| 1598 } | 1494 } |
| 1599 | 1495 |
| 1600 TEST_P(QuicStreamFactoryTest, EnableNotLoadFromDiskCache) { | 1496 TEST_P(QuicStreamFactoryTest, EnableNotLoadFromDiskCache) { |
| 1601 disable_disk_cache_ = true; | 1497 disable_disk_cache_ = true; |
| 1602 Initialize(); | 1498 Initialize(); |
| 1603 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 1499 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 1604 | 1500 |
| 1605 MockRead reads[] = { | 1501 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1606 MockRead(ASYNC, OK, 0) // EOF | 1502 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 1607 }; | |
| 1608 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 1609 socket_factory_.AddSocketDataProvider(&socket_data); | 1503 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1610 socket_data.StopAfter(1); | |
| 1611 | 1504 |
| 1612 crypto_client_stream_factory_.set_handshake_mode( | 1505 crypto_client_stream_factory_.set_handshake_mode( |
| 1613 MockCryptoClientStream::ZERO_RTT); | 1506 MockCryptoClientStream::ZERO_RTT); |
| 1614 host_resolver_.set_synchronous_mode(true); | 1507 host_resolver_.set_synchronous_mode(true); |
| 1615 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 1508 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 1616 "192.168.0.1", ""); | 1509 "192.168.0.1", ""); |
| 1617 | 1510 |
| 1618 QuicStreamRequest request(factory_.get()); | 1511 QuicStreamRequest request(factory_.get()); |
| 1619 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 1512 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| 1620 /*cert_verify_flags=*/0, host_port_pair_.host(), | 1513 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 1634 disable_disk_cache_ = false; | 1527 disable_disk_cache_ = false; |
| 1635 max_number_of_lossy_connections_ = 2; | 1528 max_number_of_lossy_connections_ = 2; |
| 1636 Initialize(); | 1529 Initialize(); |
| 1637 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 1530 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 1638 | 1531 |
| 1639 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 1532 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 1640 host_port_pair_.port())); | 1533 host_port_pair_.port())); |
| 1641 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 1534 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
| 1642 factory_.get(), host_port_pair_.port())); | 1535 factory_.get(), host_port_pair_.port())); |
| 1643 | 1536 |
| 1644 MockRead reads[] = { | 1537 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1645 MockRead(ASYNC, OK, 0) // EOF | 1538 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 1646 }; | |
| 1647 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 1648 socket_factory_.AddSocketDataProvider(&socket_data); | 1539 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1649 socket_data.StopAfter(1); | |
| 1650 | 1540 |
| 1651 DeterministicSocketData socket_data2(nullptr, 0, nullptr, 0); | 1541 SequencedSocketData socket_data2(nullptr, 0, nullptr, 0); |
| 1652 socket_factory_.AddSocketDataProvider(&socket_data2); | 1542 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1653 socket_data2.StopAfter(1); | |
| 1654 | 1543 |
| 1655 DeterministicSocketData socket_data3(nullptr, 0, nullptr, 0); | 1544 SequencedSocketData socket_data3(nullptr, 0, nullptr, 0); |
| 1656 socket_factory_.AddSocketDataProvider(&socket_data3); | 1545 socket_factory_.AddSocketDataProvider(&socket_data3); |
| 1657 socket_data3.StopAfter(1); | |
| 1658 | 1546 |
| 1659 DeterministicSocketData socket_data4(nullptr, 0, nullptr, 0); | 1547 SequencedSocketData socket_data4(nullptr, 0, nullptr, 0); |
| 1660 socket_factory_.AddSocketDataProvider(&socket_data4); | 1548 socket_factory_.AddSocketDataProvider(&socket_data4); |
| 1661 socket_data4.StopAfter(1); | |
| 1662 | 1549 |
| 1663 HostPortPair server2("mail.example.org", kDefaultServerPort); | 1550 HostPortPair server2("mail.example.org", kDefaultServerPort); |
| 1664 HostPortPair server3("docs.example.org", kDefaultServerPort); | 1551 HostPortPair server3("docs.example.org", kDefaultServerPort); |
| 1665 HostPortPair server4("images.example.org", kDefaultServerPort); | 1552 HostPortPair server4("images.example.org", kDefaultServerPort); |
| 1666 | 1553 |
| 1667 crypto_client_stream_factory_.set_handshake_mode( | 1554 crypto_client_stream_factory_.set_handshake_mode( |
| 1668 MockCryptoClientStream::ZERO_RTT); | 1555 MockCryptoClientStream::ZERO_RTT); |
| 1669 host_resolver_.set_synchronous_mode(true); | 1556 host_resolver_.set_synchronous_mode(true); |
| 1670 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 1557 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 1671 "192.168.0.1", ""); | 1558 "192.168.0.1", ""); |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1807 disable_disk_cache_ = false; | 1694 disable_disk_cache_ = false; |
| 1808 threshold_public_resets_post_handshake_ = 2; | 1695 threshold_public_resets_post_handshake_ = 2; |
| 1809 Initialize(); | 1696 Initialize(); |
| 1810 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 1697 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 1811 | 1698 |
| 1812 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 1699 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 1813 host_port_pair_.port())); | 1700 host_port_pair_.port())); |
| 1814 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 1701 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
| 1815 factory_.get(), host_port_pair_.port())); | 1702 factory_.get(), host_port_pair_.port())); |
| 1816 | 1703 |
| 1817 MockRead reads[] = { | 1704 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1818 MockRead(ASYNC, OK, 0) // EOF | 1705 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 1819 }; | |
| 1820 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 1821 socket_factory_.AddSocketDataProvider(&socket_data); | 1706 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1822 socket_data.StopAfter(1); | |
| 1823 | 1707 |
| 1824 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 1708 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 1825 socket_factory_.AddSocketDataProvider(&socket_data2); | 1709 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1826 socket_data2.StopAfter(1); | |
| 1827 | 1710 |
| 1828 HostPortPair server2("mail.example.org", kDefaultServerPort); | 1711 HostPortPair server2("mail.example.org", kDefaultServerPort); |
| 1829 | 1712 |
| 1830 crypto_client_stream_factory_.set_handshake_mode( | 1713 crypto_client_stream_factory_.set_handshake_mode( |
| 1831 MockCryptoClientStream::CONFIRM_HANDSHAKE); | 1714 MockCryptoClientStream::CONFIRM_HANDSHAKE); |
| 1832 host_resolver_.set_synchronous_mode(true); | 1715 host_resolver_.set_synchronous_mode(true); |
| 1833 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 1716 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 1834 "192.168.0.1", ""); | 1717 "192.168.0.1", ""); |
| 1835 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 1718 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| 1836 | 1719 |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1891 disable_disk_cache_ = true; | 1774 disable_disk_cache_ = true; |
| 1892 threshold_timeouts_with_open_streams_ = 2; | 1775 threshold_timeouts_with_open_streams_ = 2; |
| 1893 Initialize(); | 1776 Initialize(); |
| 1894 | 1777 |
| 1895 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 1778 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 1896 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 1779 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 1897 host_port_pair_.port())); | 1780 host_port_pair_.port())); |
| 1898 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 1781 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
| 1899 factory_.get(), host_port_pair_.port())); | 1782 factory_.get(), host_port_pair_.port())); |
| 1900 | 1783 |
| 1901 MockRead reads[] = { | 1784 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1902 MockRead(ASYNC, OK, 0) // EOF | 1785 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 1903 }; | |
| 1904 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 1905 socket_factory_.AddSocketDataProvider(&socket_data); | 1786 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1906 socket_data.StopAfter(1); | |
| 1907 | 1787 |
| 1908 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 1788 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 1909 socket_factory_.AddSocketDataProvider(&socket_data2); | 1789 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1910 socket_data2.StopAfter(1); | |
| 1911 | 1790 |
| 1912 HostPortPair server2("mail.example.org", kDefaultServerPort); | 1791 HostPortPair server2("mail.example.org", kDefaultServerPort); |
| 1913 | 1792 |
| 1914 crypto_client_stream_factory_.set_handshake_mode( | 1793 crypto_client_stream_factory_.set_handshake_mode( |
| 1915 MockCryptoClientStream::CONFIRM_HANDSHAKE); | 1794 MockCryptoClientStream::CONFIRM_HANDSHAKE); |
| 1916 host_resolver_.set_synchronous_mode(true); | 1795 host_resolver_.set_synchronous_mode(true); |
| 1917 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 1796 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 1918 "192.168.0.1", ""); | 1797 "192.168.0.1", ""); |
| 1919 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 1798 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| 1920 | 1799 |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1981 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfThree) { | 1860 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfThree) { |
| 1982 disable_disk_cache_ = true; | 1861 disable_disk_cache_ = true; |
| 1983 threshold_public_resets_post_handshake_ = 2; | 1862 threshold_public_resets_post_handshake_ = 2; |
| 1984 Initialize(); | 1863 Initialize(); |
| 1985 | 1864 |
| 1986 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 1865 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 1987 host_port_pair_.port())); | 1866 host_port_pair_.port())); |
| 1988 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 1867 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
| 1989 factory_.get(), host_port_pair_.port())); | 1868 factory_.get(), host_port_pair_.port())); |
| 1990 | 1869 |
| 1991 MockRead reads[] = { | 1870 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1992 MockRead(ASYNC, OK, 0) // EOF | 1871 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 1993 }; | |
| 1994 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 1995 socket_factory_.AddSocketDataProvider(&socket_data); | 1872 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1996 socket_data.StopAfter(1); | |
| 1997 | 1873 |
| 1998 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 1874 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 1999 socket_factory_.AddSocketDataProvider(&socket_data2); | 1875 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 2000 socket_data2.StopAfter(1); | |
| 2001 | 1876 |
| 2002 DeterministicSocketData socket_data3(reads, arraysize(reads), nullptr, 0); | 1877 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); |
| 2003 socket_factory_.AddSocketDataProvider(&socket_data3); | 1878 socket_factory_.AddSocketDataProvider(&socket_data3); |
| 2004 socket_data3.StopAfter(1); | |
| 2005 | 1879 |
| 2006 HostPortPair server2("mail.example.org", kDefaultServerPort); | 1880 HostPortPair server2("mail.example.org", kDefaultServerPort); |
| 2007 HostPortPair server3("docs.example.org", kDefaultServerPort); | 1881 HostPortPair server3("docs.example.org", kDefaultServerPort); |
| 2008 | 1882 |
| 2009 crypto_client_stream_factory_.set_handshake_mode( | 1883 crypto_client_stream_factory_.set_handshake_mode( |
| 2010 MockCryptoClientStream::CONFIRM_HANDSHAKE); | 1884 MockCryptoClientStream::CONFIRM_HANDSHAKE); |
| 2011 host_resolver_.set_synchronous_mode(true); | 1885 host_resolver_.set_synchronous_mode(true); |
| 2012 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 1886 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 2013 "192.168.0.1", ""); | 1887 "192.168.0.1", ""); |
| 2014 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 1888 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2096 disable_disk_cache_ = true; | 1970 disable_disk_cache_ = true; |
| 2097 threshold_public_resets_post_handshake_ = 2; | 1971 threshold_public_resets_post_handshake_ = 2; |
| 2098 Initialize(); | 1972 Initialize(); |
| 2099 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 1973 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 2100 | 1974 |
| 2101 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 1975 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 2102 host_port_pair_.port())); | 1976 host_port_pair_.port())); |
| 2103 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 1977 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
| 2104 factory_.get(), host_port_pair_.port())); | 1978 factory_.get(), host_port_pair_.port())); |
| 2105 | 1979 |
| 2106 MockRead reads[] = { | 1980 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 2107 MockRead(ASYNC, OK, 0) // EOF | 1981 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 2108 }; | |
| 2109 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 2110 socket_factory_.AddSocketDataProvider(&socket_data); | 1982 socket_factory_.AddSocketDataProvider(&socket_data); |
| 2111 socket_data.StopAfter(1); | |
| 2112 | 1983 |
| 2113 // DeterministicSocketData socket_data2(nullptr, 0, nullptr, 0); | 1984 // SequencedSocketData socket_data2(nullptr, 0, nullptr, 0); |
| 2114 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 1985 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 2115 socket_factory_.AddSocketDataProvider(&socket_data2); | 1986 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 2116 socket_data2.StopAfter(1); | |
| 2117 | 1987 |
| 2118 DeterministicSocketData socket_data3(reads, arraysize(reads), nullptr, 0); | 1988 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); |
| 2119 socket_factory_.AddSocketDataProvider(&socket_data3); | 1989 socket_factory_.AddSocketDataProvider(&socket_data3); |
| 2120 socket_data3.StopAfter(1); | |
| 2121 | 1990 |
| 2122 HostPortPair server2("mail.example.org", kDefaultServerPort); | 1991 HostPortPair server2("mail.example.org", kDefaultServerPort); |
| 2123 HostPortPair server3("docs.example.org", kDefaultServerPort); | 1992 HostPortPair server3("docs.example.org", kDefaultServerPort); |
| 2124 | 1993 |
| 2125 crypto_client_stream_factory_.set_handshake_mode( | 1994 crypto_client_stream_factory_.set_handshake_mode( |
| 2126 MockCryptoClientStream::CONFIRM_HANDSHAKE); | 1995 MockCryptoClientStream::CONFIRM_HANDSHAKE); |
| 2127 host_resolver_.set_synchronous_mode(true); | 1996 host_resolver_.set_synchronous_mode(true); |
| 2128 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 1997 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 2129 "192.168.0.1", ""); | 1998 "192.168.0.1", ""); |
| 2130 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 1999 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2219 disable_disk_cache_ = true; | 2088 disable_disk_cache_ = true; |
| 2220 threshold_public_resets_post_handshake_ = 2; | 2089 threshold_public_resets_post_handshake_ = 2; |
| 2221 Initialize(); | 2090 Initialize(); |
| 2222 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 2091 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 2223 | 2092 |
| 2224 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 2093 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 2225 host_port_pair_.port())); | 2094 host_port_pair_.port())); |
| 2226 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 2095 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
| 2227 factory_.get(), host_port_pair_.port())); | 2096 factory_.get(), host_port_pair_.port())); |
| 2228 | 2097 |
| 2229 MockRead reads[] = { | 2098 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 2230 MockRead(ASYNC, OK, 0) // EOF | 2099 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 2231 }; | |
| 2232 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 2233 socket_factory_.AddSocketDataProvider(&socket_data); | 2100 socket_factory_.AddSocketDataProvider(&socket_data); |
| 2234 socket_data.StopAfter(1); | |
| 2235 | 2101 |
| 2236 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 2102 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 2237 socket_factory_.AddSocketDataProvider(&socket_data2); | 2103 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 2238 socket_data2.StopAfter(1); | |
| 2239 | 2104 |
| 2240 DeterministicSocketData socket_data3(reads, arraysize(reads), nullptr, 0); | 2105 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); |
| 2241 socket_factory_.AddSocketDataProvider(&socket_data3); | 2106 socket_factory_.AddSocketDataProvider(&socket_data3); |
| 2242 socket_data3.StopAfter(1); | |
| 2243 | 2107 |
| 2244 DeterministicSocketData socket_data4(reads, arraysize(reads), nullptr, 0); | 2108 SequencedSocketData socket_data4(reads, arraysize(reads), nullptr, 0); |
| 2245 socket_factory_.AddSocketDataProvider(&socket_data4); | 2109 socket_factory_.AddSocketDataProvider(&socket_data4); |
| 2246 socket_data4.StopAfter(1); | |
| 2247 | 2110 |
| 2248 HostPortPair server2("mail.example.org", kDefaultServerPort); | 2111 HostPortPair server2("mail.example.org", kDefaultServerPort); |
| 2249 HostPortPair server3("docs.example.org", kDefaultServerPort); | 2112 HostPortPair server3("docs.example.org", kDefaultServerPort); |
| 2250 HostPortPair server4("images.example.org", kDefaultServerPort); | 2113 HostPortPair server4("images.example.org", kDefaultServerPort); |
| 2251 | 2114 |
| 2252 crypto_client_stream_factory_.set_handshake_mode( | 2115 crypto_client_stream_factory_.set_handshake_mode( |
| 2253 MockCryptoClientStream::CONFIRM_HANDSHAKE); | 2116 MockCryptoClientStream::CONFIRM_HANDSHAKE); |
| 2254 host_resolver_.set_synchronous_mode(true); | 2117 host_resolver_.set_synchronous_mode(true); |
| 2255 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 2118 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 2256 "192.168.0.1", ""); | 2119 "192.168.0.1", ""); |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2359 disable_disk_cache_ = true; | 2222 disable_disk_cache_ = true; |
| 2360 threshold_public_resets_post_handshake_ = 2; | 2223 threshold_public_resets_post_handshake_ = 2; |
| 2361 Initialize(); | 2224 Initialize(); |
| 2362 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 2225 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 2363 | 2226 |
| 2364 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 2227 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 2365 host_port_pair_.port())); | 2228 host_port_pair_.port())); |
| 2366 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 2229 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
| 2367 factory_.get(), host_port_pair_.port())); | 2230 factory_.get(), host_port_pair_.port())); |
| 2368 | 2231 |
| 2369 MockRead reads[] = { | 2232 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 2370 MockRead(ASYNC, OK, 0) // EOF | 2233 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 2371 }; | |
| 2372 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 2373 socket_factory_.AddSocketDataProvider(&socket_data); | 2234 socket_factory_.AddSocketDataProvider(&socket_data); |
| 2374 socket_data.StopAfter(1); | |
| 2375 | 2235 |
| 2376 // DeterministicSocketData socket_data2(nullptr, 0, nullptr, 0); | 2236 // SequencedSocketData socket_data2(nullptr, 0, nullptr, 0); |
| 2377 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 2237 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 2378 socket_factory_.AddSocketDataProvider(&socket_data2); | 2238 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 2379 socket_data2.StopAfter(1); | |
| 2380 | 2239 |
| 2381 DeterministicSocketData socket_data3(reads, arraysize(reads), nullptr, 0); | 2240 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); |
| 2382 socket_factory_.AddSocketDataProvider(&socket_data3); | 2241 socket_factory_.AddSocketDataProvider(&socket_data3); |
| 2383 socket_data3.StopAfter(1); | |
| 2384 | 2242 |
| 2385 DeterministicSocketData socket_data4(reads, arraysize(reads), nullptr, 0); | 2243 SequencedSocketData socket_data4(reads, arraysize(reads), nullptr, 0); |
| 2386 socket_factory_.AddSocketDataProvider(&socket_data4); | 2244 socket_factory_.AddSocketDataProvider(&socket_data4); |
| 2387 socket_data4.StopAfter(1); | |
| 2388 | 2245 |
| 2389 HostPortPair server2("mail.example.org", kDefaultServerPort); | 2246 HostPortPair server2("mail.example.org", kDefaultServerPort); |
| 2390 HostPortPair server3("docs.example.org", kDefaultServerPort); | 2247 HostPortPair server3("docs.example.org", kDefaultServerPort); |
| 2391 HostPortPair server4("images.example.org", kDefaultServerPort); | 2248 HostPortPair server4("images.example.org", kDefaultServerPort); |
| 2392 | 2249 |
| 2393 crypto_client_stream_factory_.set_handshake_mode( | 2250 crypto_client_stream_factory_.set_handshake_mode( |
| 2394 MockCryptoClientStream::CONFIRM_HANDSHAKE); | 2251 MockCryptoClientStream::CONFIRM_HANDSHAKE); |
| 2395 host_resolver_.set_synchronous_mode(true); | 2252 host_resolver_.set_synchronous_mode(true); |
| 2396 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 2253 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 2397 "192.168.0.1", ""); | 2254 "192.168.0.1", ""); |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2500 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); | 2357 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); |
| 2501 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); | 2358 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); |
| 2502 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); | 2359 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); |
| 2503 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); | 2360 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); |
| 2504 } | 2361 } |
| 2505 | 2362 |
| 2506 TEST_P(QuicStreamFactoryTest, EnableDelayTcpRace) { | 2363 TEST_P(QuicStreamFactoryTest, EnableDelayTcpRace) { |
| 2507 Initialize(); | 2364 Initialize(); |
| 2508 bool delay_tcp_race = QuicStreamFactoryPeer::GetDelayTcpRace(factory_.get()); | 2365 bool delay_tcp_race = QuicStreamFactoryPeer::GetDelayTcpRace(factory_.get()); |
| 2509 QuicStreamFactoryPeer::SetDelayTcpRace(factory_.get(), false); | 2366 QuicStreamFactoryPeer::SetDelayTcpRace(factory_.get(), false); |
| 2510 MockRead reads[] = { | 2367 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 2511 MockRead(ASYNC, OK, 0), | 2368 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 2512 }; | |
| 2513 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 2514 socket_factory_.AddSocketDataProvider(&socket_data); | 2369 socket_factory_.AddSocketDataProvider(&socket_data); |
| 2515 socket_data.StopAfter(1); | |
| 2516 | 2370 |
| 2517 ServerNetworkStats stats1; | 2371 ServerNetworkStats stats1; |
| 2518 stats1.srtt = base::TimeDelta::FromMicroseconds(10); | 2372 stats1.srtt = base::TimeDelta::FromMicroseconds(10); |
| 2519 http_server_properties_.SetServerNetworkStats(host_port_pair_, stats1); | 2373 http_server_properties_.SetServerNetworkStats(host_port_pair_, stats1); |
| 2520 | 2374 |
| 2521 crypto_client_stream_factory_.set_handshake_mode( | 2375 crypto_client_stream_factory_.set_handshake_mode( |
| 2522 MockCryptoClientStream::ZERO_RTT); | 2376 MockCryptoClientStream::ZERO_RTT); |
| 2523 host_resolver_.set_synchronous_mode(true); | 2377 host_resolver_.set_synchronous_mode(true); |
| 2524 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 2378 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 2525 "192.168.0.1", ""); | 2379 "192.168.0.1", ""); |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2649 TEST_P(QuicStreamFactoryTest, YieldAfterPackets) { | 2503 TEST_P(QuicStreamFactoryTest, YieldAfterPackets) { |
| 2650 Initialize(); | 2504 Initialize(); |
| 2651 QuicStreamFactoryPeer::SetYieldAfterPackets(factory_.get(), 0); | 2505 QuicStreamFactoryPeer::SetYieldAfterPackets(factory_.get(), 0); |
| 2652 | 2506 |
| 2653 scoped_ptr<QuicEncryptedPacket> close_packet( | 2507 scoped_ptr<QuicEncryptedPacket> close_packet( |
| 2654 ConstructConnectionClosePacket(0)); | 2508 ConstructConnectionClosePacket(0)); |
| 2655 vector<MockRead> reads; | 2509 vector<MockRead> reads; |
| 2656 reads.push_back( | 2510 reads.push_back( |
| 2657 MockRead(SYNCHRONOUS, close_packet->data(), close_packet->length(), 0)); | 2511 MockRead(SYNCHRONOUS, close_packet->data(), close_packet->length(), 0)); |
| 2658 reads.push_back(MockRead(ASYNC, OK, 1)); | 2512 reads.push_back(MockRead(ASYNC, OK, 1)); |
| 2659 DeterministicSocketData socket_data(&reads[0], reads.size(), nullptr, 0); | 2513 SequencedSocketData socket_data(&reads[0], reads.size(), nullptr, 0); |
| 2660 socket_factory_.AddSocketDataProvider(&socket_data); | 2514 socket_factory_.AddSocketDataProvider(&socket_data); |
| 2661 socket_data.StopAfter(1); | |
| 2662 | 2515 |
| 2663 crypto_client_stream_factory_.set_handshake_mode( | 2516 crypto_client_stream_factory_.set_handshake_mode( |
| 2664 MockCryptoClientStream::ZERO_RTT); | 2517 MockCryptoClientStream::ZERO_RTT); |
| 2665 host_resolver_.set_synchronous_mode(true); | 2518 host_resolver_.set_synchronous_mode(true); |
| 2666 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 2519 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 2667 "192.168.0.1", ""); | 2520 "192.168.0.1", ""); |
| 2668 | 2521 |
| 2669 // Set up the TaskObserver to verify QuicPacketReader::StartReading posts a | 2522 // Set up the TaskObserver to verify QuicPacketReader::StartReading posts a |
| 2670 // task. | 2523 // task. |
| 2671 // TODO(rtenneti): Change SpdySessionTestTaskObserver to NetTestTaskObserver?? | 2524 // TODO(rtenneti): Change SpdySessionTestTaskObserver to NetTestTaskObserver?? |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 2695 Initialize(); | 2548 Initialize(); |
| 2696 QuicStreamFactoryPeer::SetYieldAfterDuration( | 2549 QuicStreamFactoryPeer::SetYieldAfterDuration( |
| 2697 factory_.get(), QuicTime::Delta::FromMilliseconds(-1)); | 2550 factory_.get(), QuicTime::Delta::FromMilliseconds(-1)); |
| 2698 | 2551 |
| 2699 scoped_ptr<QuicEncryptedPacket> close_packet( | 2552 scoped_ptr<QuicEncryptedPacket> close_packet( |
| 2700 ConstructConnectionClosePacket(0)); | 2553 ConstructConnectionClosePacket(0)); |
| 2701 vector<MockRead> reads; | 2554 vector<MockRead> reads; |
| 2702 reads.push_back( | 2555 reads.push_back( |
| 2703 MockRead(SYNCHRONOUS, close_packet->data(), close_packet->length(), 0)); | 2556 MockRead(SYNCHRONOUS, close_packet->data(), close_packet->length(), 0)); |
| 2704 reads.push_back(MockRead(ASYNC, OK, 1)); | 2557 reads.push_back(MockRead(ASYNC, OK, 1)); |
| 2705 DeterministicSocketData socket_data(&reads[0], reads.size(), nullptr, 0); | 2558 SequencedSocketData socket_data(&reads[0], reads.size(), nullptr, 0); |
| 2706 socket_factory_.AddSocketDataProvider(&socket_data); | 2559 socket_factory_.AddSocketDataProvider(&socket_data); |
| 2707 socket_data.StopAfter(1); | |
| 2708 | 2560 |
| 2709 crypto_client_stream_factory_.set_handshake_mode( | 2561 crypto_client_stream_factory_.set_handshake_mode( |
| 2710 MockCryptoClientStream::ZERO_RTT); | 2562 MockCryptoClientStream::ZERO_RTT); |
| 2711 host_resolver_.set_synchronous_mode(true); | 2563 host_resolver_.set_synchronous_mode(true); |
| 2712 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 2564 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 2713 "192.168.0.1", ""); | 2565 "192.168.0.1", ""); |
| 2714 | 2566 |
| 2715 // Set up the TaskObserver to verify QuicPacketReader::StartReading posts a | 2567 // Set up the TaskObserver to verify QuicPacketReader::StartReading posts a |
| 2716 // task. | 2568 // task. |
| 2717 // TODO(rtenneti): Change SpdySessionTestTaskObserver to NetTestTaskObserver?? | 2569 // TODO(rtenneti): Change SpdySessionTestTaskObserver to NetTestTaskObserver?? |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 2732 EXPECT_EQ(1u, observer.executed_count()); | 2584 EXPECT_EQ(1u, observer.executed_count()); |
| 2733 | 2585 |
| 2734 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 2586 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 2735 EXPECT_TRUE(stream.get()); | 2587 EXPECT_TRUE(stream.get()); |
| 2736 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 2588 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 2737 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 2589 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 2738 } | 2590 } |
| 2739 | 2591 |
| 2740 } // namespace test | 2592 } // namespace test |
| 2741 } // namespace net | 2593 } // namespace net |
| OLD | NEW |