| 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 181895c8d15f720b018cc3fbb5c8c669710ba9e0..df9d5f61f01546a65109dd22d87b879397393bd8 100644
|
| --- a/net/http/http_pipelined_network_transaction_unittest.cc
|
| +++ b/net/http/http_pipelined_network_transaction_unittest.cc
|
| @@ -69,9 +69,7 @@ class SimpleProxyConfigService : public ProxyConfigService {
|
| class HttpPipelinedNetworkTransactionTest : public testing::Test {
|
| public:
|
| HttpPipelinedNetworkTransactionTest()
|
| - : histograms_("a"),
|
| - pool_(1, 1, &histograms_, &factory_) {
|
| - }
|
| + : histograms_("a"), pool_(1, 1, &histograms_, &factory_) {}
|
|
|
| void Initialize(bool force_http_pipelining) {
|
| // Normally, this code could just go in SetUp(). For a few of these tests,
|
| @@ -95,10 +93,12 @@ class HttpPipelinedNetworkTransactionTest : public testing::Test {
|
| session_ = new HttpNetworkSession(session_params);
|
| }
|
|
|
| - void AddExpectedConnection(MockRead* reads, size_t reads_count,
|
| - MockWrite* writes, size_t writes_count) {
|
| - DeterministicSocketData* data = new DeterministicSocketData(
|
| - reads, reads_count, writes, writes_count);
|
| + void AddExpectedConnection(MockRead* reads,
|
| + size_t reads_count,
|
| + MockWrite* writes,
|
| + size_t writes_count) {
|
| + DeterministicSocketData* data =
|
| + new DeterministicSocketData(reads, reads_count, writes, writes_count);
|
| data->set_connect_data(MockConnect(SYNCHRONOUS, OK));
|
| if (reads_count || writes_count) {
|
| data->StopAfter(reads_count + writes_count);
|
| @@ -113,7 +113,8 @@ class HttpPipelinedNetworkTransactionTest : public testing::Test {
|
| };
|
|
|
| HttpRequestInfo* GetRequestInfo(
|
| - const char* filename, RequestInfoOptions options = REQUEST_DEFAULT) {
|
| + const char* filename,
|
| + RequestInfoOptions options = REQUEST_DEFAULT) {
|
| std::string url = base::StringPrintf("http://localhost/%s", filename);
|
| HttpRequestInfo* request_info = new HttpRequestInfo;
|
| request_info->url = GURL(url);
|
| @@ -130,19 +131,21 @@ class HttpPipelinedNetworkTransactionTest : public testing::Test {
|
| IoMode io_mode) {
|
| scoped_refptr<IOBuffer> buffer(new IOBuffer(expected.size()));
|
| if (io_mode == ASYNC) {
|
| - EXPECT_EQ(ERR_IO_PENDING, transaction.Read(buffer.get(), expected.size(),
|
| - callback_.callback()));
|
| + EXPECT_EQ(ERR_IO_PENDING,
|
| + transaction.Read(
|
| + buffer.get(), expected.size(), callback_.callback()));
|
| data_vector_[0]->RunFor(1);
|
| EXPECT_EQ(static_cast<int>(expected.length()), callback_.WaitForResult());
|
| } else {
|
| EXPECT_EQ(static_cast<int>(expected.size()),
|
| - transaction.Read(buffer.get(), expected.size(),
|
| - callback_.callback()));
|
| + transaction.Read(
|
| + buffer.get(), expected.size(), callback_.callback()));
|
| }
|
| std::string actual(buffer->data(), expected.size());
|
| EXPECT_THAT(actual, StrEq(expected));
|
| - EXPECT_EQ(OK, transaction.Read(buffer.get(), expected.size(),
|
| - callback_.callback()));
|
| + EXPECT_EQ(
|
| + OK,
|
| + transaction.Read(buffer.get(), expected.size(), callback_.callback()));
|
| }
|
|
|
| void CompleteTwoRequests(int data_index, int stop_at_step) {
|
| @@ -151,20 +154,22 @@ class HttpPipelinedNetworkTransactionTest : public testing::Test {
|
| TestCompletionCallback one_callback;
|
| EXPECT_EQ(ERR_IO_PENDING,
|
| one_transaction->Start(GetRequestInfo("one.html"),
|
| - one_callback.callback(), BoundNetLog()));
|
| + one_callback.callback(),
|
| + BoundNetLog()));
|
| EXPECT_EQ(OK, one_callback.WaitForResult());
|
|
|
| HttpNetworkTransaction two_transaction(DEFAULT_PRIORITY, session_.get());
|
| TestCompletionCallback two_callback;
|
| EXPECT_EQ(ERR_IO_PENDING,
|
| two_transaction.Start(GetRequestInfo("two.html"),
|
| - two_callback.callback(), BoundNetLog()));
|
| + two_callback.callback(),
|
| + BoundNetLog()));
|
|
|
| TestCompletionCallback one_read_callback;
|
| scoped_refptr<IOBuffer> buffer(new IOBuffer(8));
|
| - EXPECT_EQ(ERR_IO_PENDING,
|
| - one_transaction->Read(buffer.get(), 8,
|
| - one_read_callback.callback()));
|
| + EXPECT_EQ(
|
| + ERR_IO_PENDING,
|
| + one_transaction->Read(buffer.get(), 8, one_read_callback.callback()));
|
|
|
| data_vector_[data_index]->SetStop(stop_at_step);
|
| data_vector_[data_index]->Run();
|
| @@ -172,8 +177,9 @@ class HttpPipelinedNetworkTransactionTest : public testing::Test {
|
| data_vector_[data_index]->SetStop(10);
|
| std::string actual(buffer->data(), 8);
|
| EXPECT_THAT(actual, StrEq("one.html"));
|
| - EXPECT_EQ(OK, one_transaction->Read(buffer.get(), 8,
|
| - one_read_callback.callback()));
|
| + EXPECT_EQ(
|
| + OK,
|
| + one_transaction->Read(buffer.get(), 8, one_read_callback.callback()));
|
|
|
| EXPECT_EQ(OK, two_callback.WaitForResult());
|
| ExpectResponse("two.html", two_transaction, SYNCHRONOUS);
|
| @@ -185,14 +191,16 @@ class HttpPipelinedNetworkTransactionTest : public testing::Test {
|
| TestCompletionCallback one_callback;
|
| EXPECT_EQ(ERR_IO_PENDING,
|
| one_transaction->Start(GetRequestInfo("one.html", options),
|
| - one_callback.callback(), BoundNetLog()));
|
| + one_callback.callback(),
|
| + BoundNetLog()));
|
| EXPECT_EQ(OK, one_callback.WaitForResult());
|
|
|
| HttpNetworkTransaction two_transaction(DEFAULT_PRIORITY, session_.get());
|
| TestCompletionCallback two_callback;
|
| EXPECT_EQ(ERR_IO_PENDING,
|
| two_transaction.Start(GetRequestInfo("two.html", options),
|
| - two_callback.callback(), BoundNetLog()));
|
| + two_callback.callback(),
|
| + BoundNetLog()));
|
|
|
| HttpNetworkTransaction three_transaction(DEFAULT_PRIORITY, session_.get());
|
| TestCompletionCallback three_callback;
|
| @@ -205,7 +213,8 @@ class HttpPipelinedNetworkTransactionTest : public testing::Test {
|
| TestCompletionCallback four_callback;
|
| EXPECT_EQ(ERR_IO_PENDING,
|
| four_transaction.Start(GetRequestInfo("four.html", options),
|
| - four_callback.callback(), BoundNetLog()));
|
| + four_callback.callback(),
|
| + BoundNetLog()));
|
|
|
| ExpectResponse("one.html", *one_transaction.get(), SYNCHRONOUS);
|
| EXPECT_EQ(OK, two_callback.WaitForResult());
|
| @@ -238,21 +247,24 @@ TEST_F(HttpPipelinedNetworkTransactionTest, OneRequest) {
|
| Initialize(false);
|
|
|
| MockWrite writes[] = {
|
| - MockWrite(SYNCHRONOUS, 0, "GET /test.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 0,
|
| + "GET /test.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead reads[] = {
|
| - MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 2, "Content-Length: 9\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 3, "test.html"),
|
| + MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 2, "Content-Length: 9\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 3, "test.html"),
|
| };
|
| AddExpectedConnection(reads, arraysize(reads), writes, arraysize(writes));
|
|
|
| HttpNetworkTransaction transaction(DEFAULT_PRIORITY, session_.get());
|
| - EXPECT_EQ(ERR_IO_PENDING,
|
| - transaction.Start(GetRequestInfo("test.html"), callback_.callback(),
|
| - BoundNetLog()));
|
| + EXPECT_EQ(
|
| + ERR_IO_PENDING,
|
| + transaction.Start(
|
| + GetRequestInfo("test.html"), callback_.callback(), BoundNetLog()));
|
| EXPECT_EQ(OK, callback_.WaitForResult());
|
| ExpectResponse("test.html", transaction, SYNCHRONOUS);
|
| }
|
| @@ -261,20 +273,24 @@ TEST_F(HttpPipelinedNetworkTransactionTest, ReusePipeline) {
|
| Initialize(false);
|
|
|
| MockWrite writes[] = {
|
| - MockWrite(SYNCHRONOUS, 0, "GET /one.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, 3, "GET /two.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 0,
|
| + "GET /one.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 3,
|
| + "GET /two.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead reads[] = {
|
| - MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| - MockRead(ASYNC, 4, "one.html"),
|
| - MockRead(SYNCHRONOUS, 5, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 6, "Content-Length: 8\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 7, "two.html"),
|
| + MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| + MockRead(ASYNC, 4, "one.html"),
|
| + MockRead(SYNCHRONOUS, 5, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 6, "Content-Length: 8\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 7, "two.html"),
|
| };
|
| AddExpectedConnection(reads, arraysize(reads), writes, arraysize(writes));
|
|
|
| @@ -289,32 +305,40 @@ TEST_F(HttpPipelinedNetworkTransactionTest, ReusesOnSpaceAvailable) {
|
| Initialize(false);
|
|
|
| MockWrite writes[] = {
|
| - MockWrite(SYNCHRONOUS, 0, "GET /one.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, 4, "GET /two.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, 7, "GET /three.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, 12, "GET /four.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 0,
|
| + "GET /one.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 4,
|
| + "GET /two.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 7,
|
| + "GET /three.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 12,
|
| + "GET /four.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead reads[] = {
|
| - MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 3, "one.html"),
|
| - MockRead(SYNCHRONOUS, 5, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 6, "Content-Length: 8\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 8, "two.html"),
|
| - MockRead(SYNCHRONOUS, 9, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 10, "Content-Length: 10\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 11, "three.html"),
|
| - MockRead(SYNCHRONOUS, 13, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 14, "Content-Length: 9\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 15, "four.html"),
|
| + MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 3, "one.html"),
|
| + MockRead(SYNCHRONOUS, 5, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 6, "Content-Length: 8\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 8, "two.html"),
|
| + MockRead(SYNCHRONOUS, 9, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 10, "Content-Length: 10\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 11, "three.html"),
|
| + MockRead(SYNCHRONOUS, 13, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 14, "Content-Length: 9\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 15, "four.html"),
|
| };
|
| AddExpectedConnection(reads, arraysize(reads), writes, arraysize(writes));
|
|
|
| @@ -332,32 +356,40 @@ TEST_F(HttpPipelinedNetworkTransactionTest, WontPipelineMainResource) {
|
| Initialize(false);
|
|
|
| MockWrite writes[] = {
|
| - MockWrite(SYNCHRONOUS, 0, "GET /one.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, 4, "GET /two.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, 8, "GET /three.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, 12, "GET /four.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 0,
|
| + "GET /one.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 4,
|
| + "GET /two.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 8,
|
| + "GET /three.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 12,
|
| + "GET /four.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead reads[] = {
|
| - MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 3, "one.html"),
|
| - MockRead(SYNCHRONOUS, 5, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 6, "Content-Length: 8\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 7, "two.html"),
|
| - MockRead(SYNCHRONOUS, 9, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 10, "Content-Length: 10\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 11, "three.html"),
|
| - MockRead(SYNCHRONOUS, 13, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 14, "Content-Length: 9\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 15, "four.html"),
|
| + MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 3, "one.html"),
|
| + MockRead(SYNCHRONOUS, 5, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 6, "Content-Length: 8\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 7, "two.html"),
|
| + MockRead(SYNCHRONOUS, 9, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 10, "Content-Length: 10\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 11, "three.html"),
|
| + MockRead(SYNCHRONOUS, 13, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 14, "Content-Length: 9\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 15, "four.html"),
|
| };
|
| AddExpectedConnection(reads, arraysize(reads), writes, arraysize(writes));
|
|
|
| @@ -371,26 +403,29 @@ TEST_F(HttpPipelinedNetworkTransactionTest, UnknownSizeEvictsToNewPipeline) {
|
| Initialize(false);
|
|
|
| MockWrite writes[] = {
|
| - MockWrite(SYNCHRONOUS, 0, "GET /one.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 0,
|
| + "GET /one.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead reads[] = {
|
| - MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n\r\n"),
|
| - MockRead(ASYNC, 2, "one.html"),
|
| - MockRead(SYNCHRONOUS, OK, 3),
|
| + MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n\r\n"),
|
| + MockRead(ASYNC, 2, "one.html"), MockRead(SYNCHRONOUS, OK, 3),
|
| };
|
| AddExpectedConnection(reads, arraysize(reads), writes, arraysize(writes));
|
|
|
| MockWrite writes2[] = {
|
| - MockWrite(SYNCHRONOUS, 0, "GET /two.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 0,
|
| + "GET /two.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead reads2[] = {
|
| - MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 3, "two.html"),
|
| + MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 3, "two.html"),
|
| };
|
| AddExpectedConnection(reads2, arraysize(reads2), writes2, arraysize(writes2));
|
|
|
| @@ -401,30 +436,36 @@ TEST_F(HttpPipelinedNetworkTransactionTest, ConnectionCloseEvictToNewPipeline) {
|
| Initialize(false);
|
|
|
| MockWrite writes[] = {
|
| - MockWrite(SYNCHRONOUS, 0, "GET /one.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, 3, "GET /two.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 0,
|
| + "GET /one.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 3,
|
| + "GET /two.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead reads[] = {
|
| - MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| - MockRead(ASYNC, 4, "one.html"),
|
| - MockRead(SYNCHRONOUS, ERR_SOCKET_NOT_CONNECTED, 5),
|
| + MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| + MockRead(ASYNC, 4, "one.html"),
|
| + MockRead(SYNCHRONOUS, ERR_SOCKET_NOT_CONNECTED, 5),
|
| };
|
| AddExpectedConnection(reads, arraysize(reads), writes, arraysize(writes));
|
|
|
| MockWrite writes2[] = {
|
| - MockWrite(SYNCHRONOUS, 0, "GET /two.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 0,
|
| + "GET /two.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead reads2[] = {
|
| - MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 3, "two.html"),
|
| + MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 3, "two.html"),
|
| };
|
| AddExpectedConnection(reads2, arraysize(reads2), writes2, arraysize(writes2));
|
|
|
| @@ -435,43 +476,51 @@ TEST_F(HttpPipelinedNetworkTransactionTest, ErrorEvictsToNewPipeline) {
|
| Initialize(false);
|
|
|
| MockWrite writes[] = {
|
| - MockWrite(SYNCHRONOUS, 0, "GET /one.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, 3, "GET /two.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 0,
|
| + "GET /one.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 3,
|
| + "GET /two.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead reads[] = {
|
| - MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, ERR_FAILED, 2),
|
| + MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, ERR_FAILED, 2),
|
| };
|
| AddExpectedConnection(reads, arraysize(reads), writes, arraysize(writes));
|
|
|
| MockWrite writes2[] = {
|
| - MockWrite(SYNCHRONOUS, 0, "GET /two.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 0,
|
| + "GET /two.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead reads2[] = {
|
| - MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 3, "two.html"),
|
| + MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 3, "two.html"),
|
| };
|
| AddExpectedConnection(reads2, arraysize(reads2), writes2, arraysize(writes2));
|
|
|
| HttpNetworkTransaction one_transaction(DEFAULT_PRIORITY, session_.get());
|
| TestCompletionCallback one_callback;
|
| - EXPECT_EQ(ERR_IO_PENDING,
|
| - one_transaction.Start(GetRequestInfo("one.html"),
|
| - one_callback.callback(), BoundNetLog()));
|
| + EXPECT_EQ(
|
| + ERR_IO_PENDING,
|
| + one_transaction.Start(
|
| + GetRequestInfo("one.html"), one_callback.callback(), BoundNetLog()));
|
| EXPECT_EQ(OK, one_callback.WaitForResult());
|
|
|
| HttpNetworkTransaction two_transaction(DEFAULT_PRIORITY, session_.get());
|
| TestCompletionCallback two_callback;
|
| - EXPECT_EQ(ERR_IO_PENDING,
|
| - two_transaction.Start(GetRequestInfo("two.html"),
|
| - two_callback.callback(), BoundNetLog()));
|
| + EXPECT_EQ(
|
| + ERR_IO_PENDING,
|
| + two_transaction.Start(
|
| + GetRequestInfo("two.html"), two_callback.callback(), BoundNetLog()));
|
|
|
| scoped_refptr<IOBuffer> buffer(new IOBuffer(1));
|
| EXPECT_EQ(ERR_FAILED,
|
| @@ -484,33 +533,37 @@ TEST_F(HttpPipelinedNetworkTransactionTest, SendErrorEvictsToNewPipeline) {
|
| Initialize(false);
|
|
|
| MockWrite writes[] = {
|
| - MockWrite(ASYNC, ERR_FAILED, 0),
|
| + MockWrite(ASYNC, ERR_FAILED, 0),
|
| };
|
| AddExpectedConnection(NULL, 0, writes, arraysize(writes));
|
|
|
| MockWrite writes2[] = {
|
| - MockWrite(SYNCHRONOUS, 0, "GET /two.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 0,
|
| + "GET /two.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead reads2[] = {
|
| - MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 3, "two.html"),
|
| + MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 3, "two.html"),
|
| };
|
| AddExpectedConnection(reads2, arraysize(reads2), writes2, arraysize(writes2));
|
|
|
| HttpNetworkTransaction one_transaction(DEFAULT_PRIORITY, session_.get());
|
| TestCompletionCallback one_callback;
|
| - EXPECT_EQ(ERR_IO_PENDING,
|
| - one_transaction.Start(GetRequestInfo("one.html"),
|
| - one_callback.callback(), BoundNetLog()));
|
| + EXPECT_EQ(
|
| + ERR_IO_PENDING,
|
| + one_transaction.Start(
|
| + GetRequestInfo("one.html"), one_callback.callback(), BoundNetLog()));
|
|
|
| HttpNetworkTransaction two_transaction(DEFAULT_PRIORITY, session_.get());
|
| TestCompletionCallback two_callback;
|
| - EXPECT_EQ(ERR_IO_PENDING,
|
| - two_transaction.Start(GetRequestInfo("two.html"),
|
| - two_callback.callback(), BoundNetLog()));
|
| + EXPECT_EQ(
|
| + ERR_IO_PENDING,
|
| + two_transaction.Start(
|
| + GetRequestInfo("two.html"), two_callback.callback(), BoundNetLog()));
|
|
|
| data_vector_[0]->RunFor(1);
|
| EXPECT_EQ(ERR_FAILED, one_callback.WaitForResult());
|
| @@ -523,20 +576,24 @@ TEST_F(HttpPipelinedNetworkTransactionTest, RedirectDrained) {
|
| Initialize(false);
|
|
|
| MockWrite writes[] = {
|
| - MockWrite(SYNCHRONOUS, 0, "GET /redirect.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, 3, "GET /two.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 0,
|
| + "GET /redirect.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 3,
|
| + "GET /two.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead reads[] = {
|
| - MockRead(SYNCHRONOUS, 1, "HTTP/1.1 302 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| - MockRead(ASYNC, 4, "redirect"),
|
| - MockRead(SYNCHRONOUS, 5, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 6, "Content-Length: 8\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 7, "two.html"),
|
| + MockRead(SYNCHRONOUS, 1, "HTTP/1.1 302 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| + MockRead(ASYNC, 4, "redirect"),
|
| + MockRead(SYNCHRONOUS, 5, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 6, "Content-Length: 8\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 7, "two.html"),
|
| };
|
| AddExpectedConnection(reads, arraysize(reads), writes, arraysize(writes));
|
|
|
| @@ -545,14 +602,16 @@ TEST_F(HttpPipelinedNetworkTransactionTest, RedirectDrained) {
|
| TestCompletionCallback one_callback;
|
| EXPECT_EQ(ERR_IO_PENDING,
|
| one_transaction->Start(GetRequestInfo("redirect.html"),
|
| - one_callback.callback(), BoundNetLog()));
|
| + one_callback.callback(),
|
| + BoundNetLog()));
|
| EXPECT_EQ(OK, one_callback.WaitForResult());
|
|
|
| HttpNetworkTransaction two_transaction(DEFAULT_PRIORITY, session_.get());
|
| TestCompletionCallback two_callback;
|
| - EXPECT_EQ(ERR_IO_PENDING,
|
| - two_transaction.Start(GetRequestInfo("two.html"),
|
| - two_callback.callback(), BoundNetLog()));
|
| + EXPECT_EQ(
|
| + ERR_IO_PENDING,
|
| + two_transaction.Start(
|
| + GetRequestInfo("two.html"), two_callback.callback(), BoundNetLog()));
|
|
|
| one_transaction.reset();
|
| data_vector_[0]->RunFor(2);
|
| @@ -566,42 +625,44 @@ TEST_F(HttpPipelinedNetworkTransactionTest, BasicHttpAuthentication) {
|
| Initialize(false);
|
|
|
| MockWrite writes[] = {
|
| - MockWrite(SYNCHRONOUS, 0, "GET /one.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, 5, "GET /one.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Authorization: auth_token\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 0,
|
| + "GET /one.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 5,
|
| + "GET /one.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n"
|
| + "Authorization: auth_token\r\n\r\n"),
|
| };
|
| MockRead reads[] = {
|
| - MockRead(SYNCHRONOUS, 1, "HTTP/1.1 401 Authentication Required\r\n"),
|
| - MockRead(SYNCHRONOUS, 2,
|
| - "WWW-Authenticate: Basic realm=\"Secure Area\"\r\n"),
|
| - MockRead(SYNCHRONOUS, 3, "Content-Length: 20\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 4, "needs authentication"),
|
| - MockRead(SYNCHRONOUS, 6, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 7, "Content-Length: 8\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 8, "one.html"),
|
| + MockRead(SYNCHRONOUS, 1, "HTTP/1.1 401 Authentication Required\r\n"),
|
| + MockRead(
|
| + SYNCHRONOUS, 2, "WWW-Authenticate: Basic realm=\"Secure Area\"\r\n"),
|
| + MockRead(SYNCHRONOUS, 3, "Content-Length: 20\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 4, "needs authentication"),
|
| + MockRead(SYNCHRONOUS, 6, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 7, "Content-Length: 8\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 8, "one.html"),
|
| };
|
| AddExpectedConnection(reads, arraysize(reads), writes, arraysize(writes));
|
|
|
| HttpAuthHandlerMock* mock_auth = new HttpAuthHandlerMock;
|
| std::string challenge_text = "Basic";
|
| HttpAuthChallengeTokenizer challenge(challenge_text.begin(),
|
| - challenge_text.end());
|
| + challenge_text.end());
|
| GURL origin("localhost");
|
| - EXPECT_TRUE(mock_auth->InitFromChallenge(&challenge,
|
| - HttpAuth::AUTH_SERVER,
|
| - origin,
|
| - BoundNetLog()));
|
| + EXPECT_TRUE(mock_auth->InitFromChallenge(
|
| + &challenge, HttpAuth::AUTH_SERVER, origin, BoundNetLog()));
|
| auth_handler_factory_->AddMockHandler(mock_auth, HttpAuth::AUTH_SERVER);
|
|
|
| HttpNetworkTransaction transaction(DEFAULT_PRIORITY, session_.get());
|
| - EXPECT_EQ(ERR_IO_PENDING,
|
| - transaction.Start(GetRequestInfo("one.html"),
|
| - callback_.callback(),
|
| - BoundNetLog()));
|
| + EXPECT_EQ(
|
| + ERR_IO_PENDING,
|
| + transaction.Start(
|
| + GetRequestInfo("one.html"), callback_.callback(), BoundNetLog()));
|
| EXPECT_EQ(OK, callback_.WaitForResult());
|
|
|
| AuthCredentials credentials(base::ASCIIToUTF16("user"),
|
| @@ -615,40 +676,44 @@ TEST_F(HttpPipelinedNetworkTransactionTest, OldVersionDisablesPipelining) {
|
| Initialize(false);
|
|
|
| MockWrite writes[] = {
|
| - MockWrite(SYNCHRONOUS, 0, "GET /pipelined.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 0,
|
| + "GET /pipelined.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead reads[] = {
|
| - MockRead(SYNCHRONOUS, 1, "HTTP/1.0 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 2, "Content-Length: 14\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 3, "pipelined.html"),
|
| + MockRead(SYNCHRONOUS, 1, "HTTP/1.0 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 2, "Content-Length: 14\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 3, "pipelined.html"),
|
| };
|
| AddExpectedConnection(reads, arraysize(reads), writes, arraysize(writes));
|
|
|
| MockWrite writes2[] = {
|
| - MockWrite(SYNCHRONOUS, 0, "GET /one.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 0,
|
| + "GET /one.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead reads2[] = {
|
| - MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| - MockRead(ASYNC, 3, "one.html"),
|
| - MockRead(SYNCHRONOUS, OK, 4),
|
| + MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| + MockRead(ASYNC, 3, "one.html"), MockRead(SYNCHRONOUS, OK, 4),
|
| };
|
| AddExpectedConnection(reads2, arraysize(reads2), writes2, arraysize(writes2));
|
|
|
| MockWrite writes3[] = {
|
| - MockWrite(SYNCHRONOUS, 0, "GET /two.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 0,
|
| + "GET /two.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead reads3[] = {
|
| - MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 3, "two.html"),
|
| - MockRead(SYNCHRONOUS, OK, 4),
|
| + MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 3, "two.html"), MockRead(SYNCHRONOUS, OK, 4),
|
| };
|
| AddExpectedConnection(reads3, arraysize(reads3), writes3, arraysize(writes3));
|
|
|
| @@ -656,7 +721,8 @@ TEST_F(HttpPipelinedNetworkTransactionTest, OldVersionDisablesPipelining) {
|
| TestCompletionCallback one_callback;
|
| EXPECT_EQ(ERR_IO_PENDING,
|
| one_transaction.Start(GetRequestInfo("pipelined.html"),
|
| - one_callback.callback(), BoundNetLog()));
|
| + one_callback.callback(),
|
| + BoundNetLog()));
|
| EXPECT_EQ(OK, one_callback.WaitForResult());
|
| ExpectResponse("pipelined.html", one_transaction, SYNCHRONOUS);
|
|
|
| @@ -675,74 +741,88 @@ TEST_F(HttpPipelinedNetworkTransactionTest, PipelinesImmediatelyIfKnownGood) {
|
| Initialize(false);
|
|
|
| MockWrite writes[] = {
|
| - MockWrite(SYNCHRONOUS, 0, "GET /one.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, 4, "GET /two.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, 7, "GET /three.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, 12, "GET /four.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, 16, "GET /second-pipeline-one.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, 17, "GET /second-pipeline-two.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 0,
|
| + "GET /one.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 4,
|
| + "GET /two.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 7,
|
| + "GET /three.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 12,
|
| + "GET /four.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 16,
|
| + "GET /second-pipeline-one.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 17,
|
| + "GET /second-pipeline-two.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead reads[] = {
|
| - MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 3, "one.html"),
|
| - MockRead(SYNCHRONOUS, 5, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 6, "Content-Length: 8\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 8, "two.html"),
|
| - MockRead(SYNCHRONOUS, 9, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 10, "Content-Length: 10\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 11, "three.html"),
|
| - MockRead(SYNCHRONOUS, 13, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 14, "Content-Length: 9\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 15, "four.html"),
|
| - MockRead(ASYNC, 18, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(ASYNC, 19, "Content-Length: 24\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 20, "second-pipeline-one.html"),
|
| - MockRead(SYNCHRONOUS, 21, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 22, "Content-Length: 24\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 23, "second-pipeline-two.html"),
|
| + MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 2, "Content-Length: 8\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 3, "one.html"),
|
| + MockRead(SYNCHRONOUS, 5, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 6, "Content-Length: 8\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 8, "two.html"),
|
| + MockRead(SYNCHRONOUS, 9, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 10, "Content-Length: 10\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 11, "three.html"),
|
| + MockRead(SYNCHRONOUS, 13, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 14, "Content-Length: 9\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 15, "four.html"),
|
| + MockRead(ASYNC, 18, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(ASYNC, 19, "Content-Length: 24\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 20, "second-pipeline-one.html"),
|
| + MockRead(SYNCHRONOUS, 21, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 22, "Content-Length: 24\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 23, "second-pipeline-two.html"),
|
| };
|
| AddExpectedConnection(reads, arraysize(reads), writes, arraysize(writes));
|
|
|
| CompleteFourRequests(REQUEST_DEFAULT);
|
|
|
| - HttpNetworkTransaction second_one_transaction(
|
| - DEFAULT_PRIORITY, session_.get());
|
| + HttpNetworkTransaction second_one_transaction(DEFAULT_PRIORITY,
|
| + session_.get());
|
| TestCompletionCallback second_one_callback;
|
| - EXPECT_EQ(ERR_IO_PENDING,
|
| - second_one_transaction.Start(
|
| - GetRequestInfo("second-pipeline-one.html"),
|
| - second_one_callback.callback(), BoundNetLog()));
|
| + EXPECT_EQ(
|
| + ERR_IO_PENDING,
|
| + second_one_transaction.Start(GetRequestInfo("second-pipeline-one.html"),
|
| + second_one_callback.callback(),
|
| + BoundNetLog()));
|
| base::MessageLoop::current()->RunUntilIdle();
|
|
|
| - HttpNetworkTransaction second_two_transaction(
|
| - DEFAULT_PRIORITY, session_.get());
|
| + HttpNetworkTransaction second_two_transaction(DEFAULT_PRIORITY,
|
| + session_.get());
|
| TestCompletionCallback second_two_callback;
|
| - EXPECT_EQ(ERR_IO_PENDING,
|
| - second_two_transaction.Start(
|
| - GetRequestInfo("second-pipeline-two.html"),
|
| - second_two_callback.callback(), BoundNetLog()));
|
| + EXPECT_EQ(
|
| + ERR_IO_PENDING,
|
| + second_two_transaction.Start(GetRequestInfo("second-pipeline-two.html"),
|
| + second_two_callback.callback(),
|
| + BoundNetLog()));
|
|
|
| data_vector_[0]->RunFor(3);
|
| EXPECT_EQ(OK, second_one_callback.WaitForResult());
|
| data_vector_[0]->StopAfter(100);
|
| - ExpectResponse("second-pipeline-one.html", second_one_transaction,
|
| - SYNCHRONOUS);
|
| + ExpectResponse(
|
| + "second-pipeline-one.html", second_one_transaction, SYNCHRONOUS);
|
| EXPECT_EQ(OK, second_two_callback.WaitForResult());
|
| - ExpectResponse("second-pipeline-two.html", second_two_transaction,
|
| - SYNCHRONOUS);
|
| + ExpectResponse(
|
| + "second-pipeline-two.html", second_two_transaction, SYNCHRONOUS);
|
|
|
| ClientSocketPoolManager::set_max_sockets_per_group(
|
| HttpNetworkSession::NORMAL_SOCKET_POOL, old_max_sockets);
|
| @@ -751,9 +831,7 @@ TEST_F(HttpPipelinedNetworkTransactionTest, PipelinesImmediatelyIfKnownGood) {
|
| class DataRunnerObserver : public base::MessageLoop::TaskObserver {
|
| public:
|
| DataRunnerObserver(DeterministicSocketData* data, int run_before_task)
|
| - : data_(data),
|
| - run_before_task_(run_before_task),
|
| - current_task_(0) { }
|
| + : data_(data), run_before_task_(run_before_task), current_task_(0) {}
|
|
|
| virtual void WillProcessTask(const base::PendingTask& pending_task) OVERRIDE {
|
| ++current_task_;
|
| @@ -788,20 +866,24 @@ TEST_F(HttpPipelinedNetworkTransactionTest, OpenPipelinesWhileBinding) {
|
| Initialize(false);
|
|
|
| MockWrite writes[] = {
|
| - MockWrite(SYNCHRONOUS, 0, "GET /one.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| - MockWrite(ASYNC, 3, "GET /two.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(SYNCHRONOUS,
|
| + 0,
|
| + "GET /one.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(ASYNC,
|
| + 3,
|
| + "GET /two.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead reads[] = {
|
| - MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(ASYNC, 2, "Content-Length: 8\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 4, "one.html"),
|
| - MockRead(SYNCHRONOUS, 5, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(SYNCHRONOUS, 6, "Content-Length: 8\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, 7, "two.html"),
|
| + MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(ASYNC, 2, "Content-Length: 8\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 4, "one.html"),
|
| + MockRead(SYNCHRONOUS, 5, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(SYNCHRONOUS, 6, "Content-Length: 8\r\n\r\n"),
|
| + MockRead(SYNCHRONOUS, 7, "two.html"),
|
| };
|
| AddExpectedConnection(reads, arraysize(reads), writes, arraysize(writes));
|
|
|
| @@ -809,18 +891,20 @@ TEST_F(HttpPipelinedNetworkTransactionTest, OpenPipelinesWhileBinding) {
|
|
|
| HttpNetworkTransaction one_transaction(DEFAULT_PRIORITY, session_.get());
|
| TestCompletionCallback one_callback;
|
| - EXPECT_EQ(ERR_IO_PENDING,
|
| - one_transaction.Start(GetRequestInfo("one.html"),
|
| - one_callback.callback(), BoundNetLog()));
|
| + EXPECT_EQ(
|
| + ERR_IO_PENDING,
|
| + one_transaction.Start(
|
| + GetRequestInfo("one.html"), one_callback.callback(), BoundNetLog()));
|
|
|
| data_vector_[0]->SetStop(2);
|
| data_vector_[0]->Run();
|
|
|
| HttpNetworkTransaction two_transaction(DEFAULT_PRIORITY, session_.get());
|
| TestCompletionCallback two_callback;
|
| - EXPECT_EQ(ERR_IO_PENDING,
|
| - two_transaction.Start(GetRequestInfo("two.html"),
|
| - two_callback.callback(), BoundNetLog()));
|
| + EXPECT_EQ(
|
| + ERR_IO_PENDING,
|
| + two_transaction.Start(
|
| + GetRequestInfo("two.html"), two_callback.callback(), BoundNetLog()));
|
| // Posted tasks should be:
|
| // 1. MockHostResolverBase::ResolveNow
|
| // 2. HttpStreamFactoryImpl::Job::OnStreamReadyCallback for job 1
|
| @@ -853,9 +937,10 @@ TEST_F(HttpPipelinedNetworkTransactionTest, ProxyChangesWhileConnecting) {
|
| factory_.AddSocketDataProvider(&data2);
|
|
|
| HttpNetworkTransaction transaction(DEFAULT_PRIORITY, session_.get());
|
| - EXPECT_EQ(ERR_IO_PENDING,
|
| - transaction.Start(GetRequestInfo("test.html"), callback_.callback(),
|
| - BoundNetLog()));
|
| + EXPECT_EQ(
|
| + ERR_IO_PENDING,
|
| + transaction.Start(
|
| + GetRequestInfo("test.html"), callback_.callback(), BoundNetLog()));
|
|
|
| proxy_config_service_->IncrementConfigId();
|
|
|
| @@ -866,35 +951,39 @@ TEST_F(HttpPipelinedNetworkTransactionTest, ForcedPipelineSharesConnection) {
|
| Initialize(true);
|
|
|
| MockWrite writes[] = {
|
| - MockWrite(ASYNC, 0, "GET /one.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"
|
| - "GET /two.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(ASYNC,
|
| + 0,
|
| + "GET /one.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"
|
| + "GET /two.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead reads[] = {
|
| - MockRead(ASYNC, 1, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(ASYNC, 2, "Content-Length: 8\r\n\r\n"),
|
| - MockRead(ASYNC, 3, "one.html"),
|
| - MockRead(ASYNC, 4, "HTTP/1.1 200 OK\r\n"),
|
| - MockRead(ASYNC, 5, "Content-Length: 8\r\n\r\n"),
|
| - MockRead(ASYNC, 6, "two.html"),
|
| + MockRead(ASYNC, 1, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(ASYNC, 2, "Content-Length: 8\r\n\r\n"),
|
| + MockRead(ASYNC, 3, "one.html"),
|
| + MockRead(ASYNC, 4, "HTTP/1.1 200 OK\r\n"),
|
| + MockRead(ASYNC, 5, "Content-Length: 8\r\n\r\n"),
|
| + MockRead(ASYNC, 6, "two.html"),
|
| };
|
| AddExpectedConnection(reads, arraysize(reads), writes, arraysize(writes));
|
|
|
| scoped_ptr<HttpNetworkTransaction> one_transaction(
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session_.get()));
|
| TestCompletionCallback one_callback;
|
| - EXPECT_EQ(ERR_IO_PENDING,
|
| - one_transaction->Start(GetRequestInfo("one.html"),
|
| - one_callback.callback(), BoundNetLog()));
|
| + EXPECT_EQ(
|
| + ERR_IO_PENDING,
|
| + one_transaction->Start(
|
| + GetRequestInfo("one.html"), one_callback.callback(), BoundNetLog()));
|
|
|
| HttpNetworkTransaction two_transaction(DEFAULT_PRIORITY, session_.get());
|
| TestCompletionCallback two_callback;
|
| - EXPECT_EQ(ERR_IO_PENDING,
|
| - two_transaction.Start(GetRequestInfo("two.html"),
|
| - two_callback.callback(), BoundNetLog()));
|
| + EXPECT_EQ(
|
| + ERR_IO_PENDING,
|
| + two_transaction.Start(
|
| + GetRequestInfo("two.html"), two_callback.callback(), BoundNetLog()));
|
|
|
| data_vector_[0]->RunFor(3); // Send + 2 lines of headers.
|
| EXPECT_EQ(OK, one_callback.WaitForResult());
|
| @@ -917,15 +1006,17 @@ TEST_F(HttpPipelinedNetworkTransactionTest,
|
| scoped_ptr<HttpNetworkTransaction> one_transaction(
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session_.get()));
|
| TestCompletionCallback one_callback;
|
| - EXPECT_EQ(ERR_IO_PENDING,
|
| - one_transaction->Start(GetRequestInfo("one.html"),
|
| - one_callback.callback(), BoundNetLog()));
|
| + EXPECT_EQ(
|
| + ERR_IO_PENDING,
|
| + one_transaction->Start(
|
| + GetRequestInfo("one.html"), one_callback.callback(), BoundNetLog()));
|
|
|
| HttpNetworkTransaction two_transaction(DEFAULT_PRIORITY, session_.get());
|
| TestCompletionCallback two_callback;
|
| - EXPECT_EQ(ERR_IO_PENDING,
|
| - two_transaction.Start(GetRequestInfo("two.html"),
|
| - two_callback.callback(), BoundNetLog()));
|
| + EXPECT_EQ(
|
| + ERR_IO_PENDING,
|
| + two_transaction.Start(
|
| + GetRequestInfo("two.html"), two_callback.callback(), BoundNetLog()));
|
|
|
| data.Run();
|
| EXPECT_EQ(ERR_FAILED, one_callback.WaitForResult());
|
| @@ -936,30 +1027,34 @@ TEST_F(HttpPipelinedNetworkTransactionTest, ForcedPipelineEvictionIsFatal) {
|
| Initialize(true);
|
|
|
| MockWrite writes[] = {
|
| - MockWrite(ASYNC, 0, "GET /one.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"
|
| - "GET /two.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"),
|
| + MockWrite(ASYNC,
|
| + 0,
|
| + "GET /one.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"
|
| + "GET /two.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead reads[] = {
|
| - MockRead(ASYNC, ERR_FAILED, 1),
|
| + MockRead(ASYNC, ERR_FAILED, 1),
|
| };
|
| AddExpectedConnection(reads, arraysize(reads), writes, arraysize(writes));
|
|
|
| scoped_ptr<HttpNetworkTransaction> one_transaction(
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session_.get()));
|
| TestCompletionCallback one_callback;
|
| - EXPECT_EQ(ERR_IO_PENDING,
|
| - one_transaction->Start(GetRequestInfo("one.html"),
|
| - one_callback.callback(), BoundNetLog()));
|
| + EXPECT_EQ(
|
| + ERR_IO_PENDING,
|
| + one_transaction->Start(
|
| + GetRequestInfo("one.html"), one_callback.callback(), BoundNetLog()));
|
|
|
| HttpNetworkTransaction two_transaction(DEFAULT_PRIORITY, session_.get());
|
| TestCompletionCallback two_callback;
|
| - EXPECT_EQ(ERR_IO_PENDING,
|
| - two_transaction.Start(GetRequestInfo("two.html"),
|
| - two_callback.callback(), BoundNetLog()));
|
| + EXPECT_EQ(
|
| + ERR_IO_PENDING,
|
| + two_transaction.Start(
|
| + GetRequestInfo("two.html"), two_callback.callback(), BoundNetLog()));
|
|
|
| data_vector_[0]->RunFor(2);
|
| EXPECT_EQ(ERR_FAILED, one_callback.WaitForResult());
|
| @@ -971,23 +1066,23 @@ TEST_F(HttpPipelinedNetworkTransactionTest, ForcedPipelineOrder) {
|
| Initialize(true);
|
|
|
| MockWrite writes[] = {
|
| - MockWrite(ASYNC, 0,
|
| - "GET /one.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"
|
| - "GET /two.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"
|
| - "GET /three.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"
|
| - "GET /four.html HTTP/1.1\r\n"
|
| - "Host: localhost\r\n"
|
| - "Connection: keep-alive\r\n\r\n"
|
| - ),
|
| + MockWrite(ASYNC,
|
| + 0,
|
| + "GET /one.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"
|
| + "GET /two.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"
|
| + "GET /three.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"
|
| + "GET /four.html HTTP/1.1\r\n"
|
| + "Host: localhost\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| };
|
| MockRead reads[] = {
|
| - MockRead(ASYNC, ERR_FAILED, 1),
|
| + MockRead(ASYNC, ERR_FAILED, 1),
|
| };
|
| DeterministicSocketData data(
|
| reads, arraysize(reads), writes, arraysize(writes));
|
| @@ -997,30 +1092,34 @@ TEST_F(HttpPipelinedNetworkTransactionTest, ForcedPipelineOrder) {
|
| scoped_ptr<HttpNetworkTransaction> one_transaction(
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session_.get()));
|
| TestCompletionCallback one_callback;
|
| - EXPECT_EQ(ERR_IO_PENDING,
|
| - one_transaction->Start(GetRequestInfo("one.html"),
|
| - one_callback.callback(), BoundNetLog()));
|
| + EXPECT_EQ(
|
| + ERR_IO_PENDING,
|
| + one_transaction->Start(
|
| + GetRequestInfo("one.html"), one_callback.callback(), BoundNetLog()));
|
|
|
| scoped_ptr<HttpNetworkTransaction> two_transaction(
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session_.get()));
|
| TestCompletionCallback two_callback;
|
| - EXPECT_EQ(ERR_IO_PENDING,
|
| - two_transaction->Start(GetRequestInfo("two.html"),
|
| - two_callback.callback(), BoundNetLog()));
|
| + EXPECT_EQ(
|
| + ERR_IO_PENDING,
|
| + two_transaction->Start(
|
| + GetRequestInfo("two.html"), two_callback.callback(), BoundNetLog()));
|
|
|
| scoped_ptr<HttpNetworkTransaction> three_transaction(
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session_.get()));
|
| TestCompletionCallback three_callback;
|
| EXPECT_EQ(ERR_IO_PENDING,
|
| three_transaction->Start(GetRequestInfo("three.html"),
|
| - three_callback.callback(), BoundNetLog()));
|
| + three_callback.callback(),
|
| + BoundNetLog()));
|
|
|
| scoped_ptr<HttpNetworkTransaction> four_transaction(
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session_.get()));
|
| TestCompletionCallback four_callback;
|
| EXPECT_EQ(ERR_IO_PENDING,
|
| four_transaction->Start(GetRequestInfo("four.html"),
|
| - four_callback.callback(), BoundNetLog()));
|
| + four_callback.callback(),
|
| + BoundNetLog()));
|
|
|
| data.RunFor(3);
|
| EXPECT_EQ(ERR_FAILED, one_callback.WaitForResult());
|
|
|