Index: trunk/src/net/quic/quic_stream_factory_test.cc |
=================================================================== |
--- trunk/src/net/quic/quic_stream_factory_test.cc (revision 204061) |
+++ trunk/src/net/quic/quic_stream_factory_test.cc (working copy) |
@@ -129,12 +129,21 @@ |
} |
TEST_F(QuicStreamFactoryTest, Create) { |
+ scoped_ptr<QuicEncryptedPacket> rst3(ConstructRstPacket(1, 3)); |
+ scoped_ptr<QuicEncryptedPacket> rst5(ConstructRstPacket(2, 5)); |
+ scoped_ptr<QuicEncryptedPacket> rst7(ConstructRstPacket(3, 7)); |
+ MockWrite writes[] = { |
+ MockWrite(SYNCHRONOUS, rst3->data(), rst3->length(), 0), |
+ MockWrite(SYNCHRONOUS, rst5->data(), rst5->length(), 1), |
+ MockWrite(SYNCHRONOUS, rst7->data(), rst7->length(), 2), |
+ }; |
MockRead reads[] = { |
- MockRead(ASYNC, OK, 0) // EOF |
+ MockRead(ASYNC, OK, 3) // EOF |
}; |
- DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); |
+ DeterministicSocketData socket_data(reads, arraysize(reads), |
+ writes, arraysize(writes)); |
socket_factory_.AddSocketDataProvider(&socket_data); |
- socket_data.StopAfter(1); |
+ socket_data.StopAfter(3); |
QuicStreamRequest request(&factory_); |
EXPECT_EQ(ERR_IO_PENDING, request.Request(host_port_proxy_pair_, net_log_, |
@@ -154,6 +163,8 @@ |
stream = request2.ReleaseStream(); // Will reset stream 5. |
stream.reset(); // Will reset stream 7. |
+ socket_data.RunFor(1); |
+ |
EXPECT_TRUE(socket_data.at_read_eof()); |
EXPECT_TRUE(socket_data.at_write_eof()); |
} |
@@ -175,10 +186,16 @@ |
} |
TEST_F(QuicStreamFactoryTest, CancelCreate) { |
+ scoped_ptr<QuicEncryptedPacket> rst3(ConstructRstPacket(1, 3)); |
+ |
+ MockWrite writes[] = { |
+ MockWrite(SYNCHRONOUS, rst3->data(), rst3->length(), 0), |
+ }; |
MockRead reads[] = { |
- MockRead(ASYNC, OK, 0) // EOF |
+ MockRead(ASYNC, OK, 1) // EOF |
}; |
- DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); |
+ DeterministicSocketData socket_data(reads, arraysize(reads), |
+ writes, arraysize(writes)); |
socket_factory_.AddSocketDataProvider(&socket_data); |
{ |
QuicStreamRequest request(&factory_); |
@@ -186,7 +203,7 @@ |
callback_.callback())); |
} |
- socket_data.StopAfter(1); |
+ socket_data.StopAfter(2); |
base::RunLoop run_loop; |
run_loop.RunUntilIdle(); |
@@ -195,22 +212,30 @@ |
EXPECT_TRUE(stream.get()); |
stream.reset(); |
+ socket_data.RunFor(1); |
+ |
EXPECT_TRUE(socket_data.at_read_eof()); |
EXPECT_TRUE(socket_data.at_write_eof()); |
} |
TEST_F(QuicStreamFactoryTest, CloseAllSessions) { |
+ scoped_ptr<QuicEncryptedPacket> rst3(ConstructRstPacket(1, 3)); |
MockRead reads[] = { |
MockRead(ASYNC, 0, 0) // EOF |
}; |
- DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); |
+ DeterministicSocketData socket_data(reads, arraysize(reads), |
+ NULL, 0); |
socket_factory_.AddSocketDataProvider(&socket_data); |
socket_data.StopAfter(1); |
+ MockWrite writes2[] = { |
+ MockWrite(SYNCHRONOUS, rst3->data(), rst3->length(), 0), |
+ }; |
MockRead reads2[] = { |
- MockRead(ASYNC, 0, 0) // EOF |
+ MockRead(ASYNC, 0, 1) // EOF |
}; |
- DeterministicSocketData socket_data2(reads2, arraysize(reads2), NULL, 0); |
+ DeterministicSocketData socket_data2(reads2, arraysize(reads2), |
+ writes2, arraysize(writes2)); |
socket_factory_.AddSocketDataProvider(&socket_data2); |
socket_data2.StopAfter(1); |
@@ -237,6 +262,8 @@ |
stream = request2.ReleaseStream(); |
stream.reset(); // Will reset stream 3. |
+ socket_data2.RunFor(1); |
+ |
EXPECT_TRUE(socket_data.at_read_eof()); |
EXPECT_TRUE(socket_data.at_write_eof()); |
EXPECT_TRUE(socket_data2.at_read_eof()); |
@@ -244,17 +271,23 @@ |
} |
TEST_F(QuicStreamFactoryTest, OnIPAddressChanged) { |
+ scoped_ptr<QuicEncryptedPacket> rst3(ConstructRstPacket(1, 3)); |
MockRead reads[] = { |
MockRead(ASYNC, 0, 0) // EOF |
}; |
- DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); |
+ DeterministicSocketData socket_data(reads, arraysize(reads), |
+ NULL, 0); |
socket_factory_.AddSocketDataProvider(&socket_data); |
socket_data.StopAfter(1); |
+ MockWrite writes2[] = { |
+ MockWrite(SYNCHRONOUS, rst3->data(), rst3->length(), 0), |
+ }; |
MockRead reads2[] = { |
- MockRead(ASYNC, 0, 0) // EOF |
+ MockRead(ASYNC, 0, 1) // EOF |
}; |
- DeterministicSocketData socket_data2(reads2, arraysize(reads2), NULL, 0); |
+ DeterministicSocketData socket_data2(reads2, arraysize(reads2), |
+ writes2, arraysize(writes2)); |
socket_factory_.AddSocketDataProvider(&socket_data2); |
socket_data2.StopAfter(1); |
@@ -281,6 +314,8 @@ |
stream = request2.ReleaseStream(); |
stream.reset(); // Will reset stream 3. |
+ socket_data2.RunFor(1); |
+ |
EXPECT_TRUE(socket_data.at_read_eof()); |
EXPECT_TRUE(socket_data.at_write_eof()); |
EXPECT_TRUE(socket_data2.at_read_eof()); |