Chromium Code Reviews| Index: net/http/http_pipelined_network_transaction_unittest.cc |
| diff --git a/net/http/http_pipelined_network_transaction_unittest.cc b/net/http/http_pipelined_network_transaction_unittest.cc |
| index 8eba31a30497644a3eeb0c37786e9e3ab4f5ab6d..c342b2c84475e4ce578b0f01c51e166bbbf62b2c 100644 |
| --- a/net/http/http_pipelined_network_transaction_unittest.cc |
| +++ b/net/http/http_pipelined_network_transaction_unittest.cc |
| @@ -419,6 +419,49 @@ TEST_F(HttpPipelinedNetworkTransactionTest, SendErrorEvictsToNewPipeline) { |
| ExpectResponse("two.html", two_transaction); |
| } |
| +TEST_F(HttpPipelinedNetworkTransactionTest, RedirectDrained) { |
| + Initialize(); |
| + |
| + MockWrite writes[] = { |
| + MockWrite(false, 0, "GET /redirect.html HTTP/1.1\r\n" |
| + "Host: localhost\r\n" |
| + "Connection: keep-alive\r\n\r\n"), |
| + MockWrite(false, 3, "GET /two.html HTTP/1.1\r\n" |
| + "Host: localhost\r\n" |
| + "Connection: keep-alive\r\n\r\n"), |
| + }; |
| + MockRead reads[] = { |
| + MockRead(false, 1, "HTTP/1.1 302 OK\r\n"), |
| + MockRead(false, 2, "Content-Length: 8\r\n\r\n"), |
| + MockRead(true, 4, "redirect"), |
| + MockRead(false, 5, "HTTP/1.1 200 OK\r\n"), |
| + MockRead(false, 6, "Content-Length: 8\r\n\r\n"), |
| + MockRead(false, 7, "two.html"), |
| + }; |
| + AddExpectedConnection(reads, arraysize(reads), writes, arraysize(writes)); |
| + |
| + scoped_ptr<HttpNetworkTransaction> one_transaction( |
| + new HttpNetworkTransaction(session_.get())); |
| + TestOldCompletionCallback one_callback; |
| + EXPECT_EQ(ERR_IO_PENDING, |
| + one_transaction->Start(GetRequestInfo("redirect.html"), |
| + &one_callback, BoundNetLog())); |
| + EXPECT_EQ(OK, one_callback.WaitForResult()); |
| + |
| + HttpNetworkTransaction two_transaction(session_.get()); |
| + TestOldCompletionCallback two_callback; |
| + EXPECT_EQ(ERR_IO_PENDING, |
| + two_transaction.Start(GetRequestInfo("two.html"), &two_callback, |
| + BoundNetLog())); |
| + |
| + one_transaction.reset(); |
| + data_vector_[0]->RunFor(2); |
| + data_vector_[0]->SetStop(10); |
|
mmenke
2011/11/28 18:39:10
Can we just do:
data_vector_[0]->SetStop(10);
dat
James Simonsen
2011/11/29 23:57:28
Tried it, but it hangs in Run().
Honestly, the mo
|
| + |
| + EXPECT_EQ(OK, two_callback.WaitForResult()); |
| + ExpectResponse("two.html", two_transaction); |
| +} |
| + |
| TEST_F(HttpPipelinedNetworkTransactionTest, BasicHttpAuthentication) { |
| Initialize(); |