Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(150)

Unified Diff: net/http/http_pipelined_network_transaction_unittest.cc

Issue 8591037: Implement Drain() on HttpPipelinedStream. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More tests Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();

Powered by Google App Engine
This is Rietveld 408576698