Chromium Code Reviews| Index: net/quic/quic_stream_factory_test.cc |
| diff --git a/net/quic/quic_stream_factory_test.cc b/net/quic/quic_stream_factory_test.cc |
| index d3ca06731cc024daf84e8e099ea5576579ef5123..eb0157da78715a12900c8b0e9eb53b78f7fc525a 100644 |
| --- a/net/quic/quic_stream_factory_test.cc |
| +++ b/net/quic/quic_stream_factory_test.cc |
| @@ -603,6 +603,42 @@ TEST_P(QuicStreamFactoryTest, GoAway) { |
| EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| } |
| +TEST_P(QuicStreamFactoryTest, GoAwayForConnectionMigrationWithPortOnly) { |
| + Initialize(); |
| + ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| + crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| + |
| + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| + SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| + socket_factory_.AddSocketDataProvider(&socket_data); |
| + |
| + QuicStreamRequest request(factory_.get()); |
| + EXPECT_EQ(ERR_IO_PENDING, |
| + request.Request(host_port_pair_, privacy_mode_, |
| + /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| + callback_.callback())); |
| + |
| + EXPECT_EQ(OK, callback_.WaitForResult()); |
| + scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| + EXPECT_TRUE(stream.get()); |
| + |
| + QuicChromiumClientSession* session = |
| + QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
| + |
| + session->OnGoAway( |
| + QuicGoAwayFrame(QUIC_ERROR_MIGRATING_PORT, 0, |
| + "peer connection migration due to port change only")); |
| + NetErrorDetails details; |
| + session->PopulateNetErrorDetails(&details); |
|
Ryan Hamilton
2016/03/10 22:46:44
Can you also call stream->PopulateNetErrorDetails(
Zhongyi Shi
2016/03/11 03:56:32
Done.
|
| + EXPECT_TRUE(details.received_goaway_because_of_migrating_port); |
| + |
| + EXPECT_FALSE( |
| + QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); |
| + |
| + EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| + EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| +} |
| + |
| TEST_P(QuicStreamFactoryTest, Pooling) { |
| Initialize(); |
| ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |