diff options
author | rch@chromium.org <rch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-26 04:01:17 +0000 |
---|---|---|
committer | rch@chromium.org <rch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-26 04:01:17 +0000 |
commit | 8bd2b81e2daf151d417713cf7cbe2300e998f7eb (patch) | |
tree | 188d174580619429e0232b022c8a185efb3662ad /net/quic/quic_stream_factory_test.cc | |
parent | f7e45c1037255b679bb0ed7017a79acb7914382b (diff) | |
download | chromium_src-8bd2b81e2daf151d417713cf7cbe2300e998f7eb.zip chromium_src-8bd2b81e2daf151d417713cf7cbe2300e998f7eb.tar.gz chromium_src-8bd2b81e2daf151d417713cf7cbe2300e998f7eb.tar.bz2 |
Really disable 0-RTT connections for POST requests and add tests.
R=rtenneti@chromium.org
BUG=
Review URL: https://codereview.chromium.org/211273006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@259464 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/quic/quic_stream_factory_test.cc')
-rw-r--r-- | net/quic/quic_stream_factory_test.cc | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/net/quic/quic_stream_factory_test.cc b/net/quic/quic_stream_factory_test.cc index 8aed98b..3ff203c 100644 --- a/net/quic/quic_stream_factory_test.cc +++ b/net/quic/quic_stream_factory_test.cc @@ -232,6 +232,68 @@ TEST_P(QuicStreamFactoryTest, Create) { EXPECT_TRUE(socket_data.at_write_eof()); } +TEST_P(QuicStreamFactoryTest, CreateZeroRtt) { + MockRead reads[] = { + MockRead(ASYNC, OK, 0) // EOF + }; + DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); + socket_factory_.AddSocketDataProvider(&socket_data); + socket_data.StopAfter(1); + + crypto_client_stream_factory_.set_handshake_mode( + MockCryptoClientStream::ZERO_RTT); + host_resolver_.set_synchronous_mode(true); + host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), + "192.168.0.1", ""); + + QuicStreamRequest request(&factory_); + EXPECT_EQ(OK, + request.Request(host_port_pair_, + is_https_, + "GET", + net_log_, + callback_.callback())); + + scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); + EXPECT_TRUE(stream.get()); + EXPECT_TRUE(socket_data.at_read_eof()); + EXPECT_TRUE(socket_data.at_write_eof()); +} + +TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { + MockRead reads[] = { + MockRead(ASYNC, OK, 0) // EOF + }; + DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); + socket_factory_.AddSocketDataProvider(&socket_data); + socket_data.StopAfter(1); + + crypto_client_stream_factory_.set_handshake_mode( + MockCryptoClientStream::ZERO_RTT); + host_resolver_.set_synchronous_mode(true); + host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), + "192.168.0.1", ""); + + QuicStreamRequest request(&factory_); + // Posts require handshake confirmation, so this will return asynchronously. + EXPECT_EQ(ERR_IO_PENDING, + request.Request(host_port_pair_, + is_https_, + "POST", + net_log_, + callback_.callback())); + + // Confirm the handshake and verify that the stream is created. + crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( + QuicSession::HANDSHAKE_CONFIRMED); + + EXPECT_EQ(OK, callback_.WaitForResult()); + scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); + EXPECT_TRUE(stream.get()); + EXPECT_TRUE(socket_data.at_read_eof()); + EXPECT_TRUE(socket_data.at_write_eof()); +} + TEST_P(QuicStreamFactoryTest, CreateHttpVsHttps) { MockRead reads[] = { MockRead(ASYNC, OK, 0) // EOF |