Fix bug in handling QUIC connections that error out early.
Review URL: https://chromiumcodereview.appspot.com/14951008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201639 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/quic/quic_network_transaction_unittest.cc b/net/quic/quic_network_transaction_unittest.cc
index 79517ad8..275faf20 100644
--- a/net/quic/quic_network_transaction_unittest.cc
+++ b/net/quic/quic_network_transaction_unittest.cc
@@ -403,6 +403,26 @@
EXPECT_EQ(stream_id, static_cast<QuicStreamId>(log_stream_id));
}
+TEST_F(QuicNetworkTransactionTest, ForceQuicWithErrorConnecting) {
+ params_.origin_port_to_force_quic_on = 80;
+
+ MockRead quic_reads[] = {
+ MockRead(ASYNC, ERR_SOCKET_NOT_CONNECTED),
+ };
+ StaticSocketDataProvider quic_data(quic_reads, arraysize(quic_reads),
+ NULL, 0);
+ socket_factory_.AddSocketDataProvider(&quic_data);
+
+ CreateSession();
+
+ scoped_ptr<HttpNetworkTransaction> trans(
+ new HttpNetworkTransaction(DEFAULT_PRIORITY, session_));
+ TestCompletionCallback callback;
+ int rv = trans->Start(&request_, callback.callback(), net_log_.bound());
+ EXPECT_EQ(ERR_IO_PENDING, rv);
+ EXPECT_EQ(ERR_SOCKET_NOT_CONNECTED, callback.WaitForResult());
+}
+
TEST_F(QuicNetworkTransactionTest, DoNotForceQuicForHttps) {
// Attempt to "force" quic on 443, which will not be honored.
params_.origin_port_to_force_quic_on = 443;