| 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());
|
|
|