| Index: net/url_request/url_request_http_job_unittest.cc
|
| diff --git a/net/url_request/url_request_http_job_unittest.cc b/net/url_request/url_request_http_job_unittest.cc
|
| index aa1599aa6cce1b56b906753b84491447423c7fff..bb126a5ebf0554fc22f9006dc2e95d17fa4545ef 100644
|
| --- a/net/url_request/url_request_http_job_unittest.cc
|
| +++ b/net/url_request/url_request_http_job_unittest.cc
|
| @@ -267,6 +267,131 @@ TEST_F(URLRequestHttpJobWithMockSocketsTest,
|
| }
|
|
|
| TEST_F(URLRequestHttpJobWithMockSocketsTest,
|
| + TestRawHeaderSizeSuccessfullRequest) {
|
| + MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)};
|
| +
|
| + const std::string& response_header =
|
| + "HTTP/1.1 200 OK\r\n"
|
| + "Content-Length: 12\r\n\r\n";
|
| + const std::string& content_data = "Test Content";
|
| +
|
| + MockRead reads[] = {MockRead(response_header.c_str()),
|
| + MockRead(content_data.c_str()),
|
| + MockRead(net::SYNCHRONOUS, net::OK)};
|
| +
|
| + StaticSocketDataProvider socket_data(reads, arraysize(reads), writes,
|
| + arraysize(writes));
|
| + socket_factory_.AddSocketDataProvider(&socket_data);
|
| +
|
| + TestDelegate delegate;
|
| + std::unique_ptr<URLRequest> request = context_->CreateRequest(
|
| + GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate);
|
| +
|
| + request->Start();
|
| + ASSERT_TRUE(request->is_pending());
|
| + base::RunLoop().Run();
|
| +
|
| + EXPECT_EQ(net::OK, request->status().error());
|
| + EXPECT_EQ(static_cast<int>(content_data.size()),
|
| + request->received_response_content_length());
|
| + EXPECT_EQ(static_cast<int>(response_header.size()),
|
| + request->raw_header_size());
|
| + EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
|
| + request->GetTotalReceivedBytes());
|
| +}
|
| +
|
| +TEST_F(URLRequestHttpJobWithMockSocketsTest,
|
| + TestRawHeaderSizeSuccessfull100ContinueRequest) {
|
| + MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)};
|
| +
|
| + const std::string& continue_header = "HTTP/1.1 100 Continue\r\n\r\n";
|
| + const std::string& response_header =
|
| + "HTTP/1.1 200 OK\r\n"
|
| + "Content-Length: 12\r\n\r\n";
|
| + const std::string& content_data = "Test Content";
|
| +
|
| + MockRead reads[] = {
|
| + MockRead(continue_header.c_str()), MockRead(response_header.c_str()),
|
| + MockRead(content_data.c_str()), MockRead(net::SYNCHRONOUS, net::OK)};
|
| +
|
| + StaticSocketDataProvider socket_data(reads, arraysize(reads), writes,
|
| + arraysize(writes));
|
| + socket_factory_.AddSocketDataProvider(&socket_data);
|
| +
|
| + TestDelegate delegate;
|
| + std::unique_ptr<URLRequest> request = context_->CreateRequest(
|
| + GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate);
|
| +
|
| + request->Start();
|
| + ASSERT_TRUE(request->is_pending());
|
| + base::RunLoop().Run();
|
| +
|
| + EXPECT_EQ(net::OK, request->status().error());
|
| + EXPECT_EQ(static_cast<int>(content_data.size()),
|
| + request->received_response_content_length());
|
| + EXPECT_EQ(static_cast<int>(continue_header.size() + response_header.size()),
|
| + request->raw_header_size());
|
| + EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
|
| + request->GetTotalReceivedBytes());
|
| +}
|
| +
|
| +TEST_F(URLRequestHttpJobWithMockSocketsTest,
|
| + TestRawHeaderSizeFailureTruncatedHeaders) {
|
| + MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)};
|
| + MockRead reads[] = {MockRead("HTTP/1.0 200 OK\r\n"
|
| + "Content-Len"),
|
| + MockRead(net::SYNCHRONOUS, net::OK)};
|
| +
|
| + StaticSocketDataProvider socket_data(reads, arraysize(reads), writes,
|
| + arraysize(writes));
|
| + socket_factory_.AddSocketDataProvider(&socket_data);
|
| +
|
| + TestDelegate delegate;
|
| + std::unique_ptr<URLRequest> request = context_->CreateRequest(
|
| + GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate);
|
| +
|
| + delegate.set_cancel_in_response_started(true);
|
| + request->Start();
|
| + base::RunLoop().RunUntilIdle();
|
| +
|
| + EXPECT_EQ(ERR_ABORTED, request->status().error());
|
| + EXPECT_EQ(0, request->received_response_content_length());
|
| + EXPECT_EQ(28, request->raw_header_size());
|
| + EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
|
| + request->GetTotalReceivedBytes());
|
| +}
|
| +
|
| +TEST_F(URLRequestHttpJobWithMockSocketsTest,
|
| + TestRawHeaderSizeSuccessfullContinuiousRead) {
|
| + MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)};
|
| + const std::string& header_data =
|
| + "HTTP/1.1 200 OK\r\n"
|
| + "Content-Length: 12\r\n\r\n";
|
| + const std::string& content_data = "Test Content";
|
| + std::string single_read_content = header_data;
|
| + single_read_content.append(content_data);
|
| + MockRead reads[] = {MockRead(single_read_content.c_str())};
|
| +
|
| + StaticSocketDataProvider socket_data(reads, arraysize(reads), writes,
|
| + arraysize(writes));
|
| + socket_factory_.AddSocketDataProvider(&socket_data);
|
| +
|
| + TestDelegate delegate;
|
| + std::unique_ptr<URLRequest> request = context_->CreateRequest(
|
| + GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate);
|
| +
|
| + request->Start();
|
| + base::RunLoop().Run();
|
| +
|
| + EXPECT_EQ(net::OK, request->status().error());
|
| + EXPECT_EQ(static_cast<int>(content_data.size()),
|
| + request->received_response_content_length());
|
| + EXPECT_EQ(static_cast<int>(header_data.size()), request->raw_header_size());
|
| + EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
|
| + request->GetTotalReceivedBytes());
|
| +}
|
| +
|
| +TEST_F(URLRequestHttpJobWithMockSocketsTest,
|
| TestNetworkBytesRedirectedRequest) {
|
| MockWrite redirect_writes[] = {
|
| MockWrite("GET / HTTP/1.1\r\n"
|
| @@ -302,7 +427,7 @@ TEST_F(URLRequestHttpJobWithMockSocketsTest,
|
| ASSERT_TRUE(request->is_pending());
|
| base::RunLoop().RunUntilIdle();
|
|
|
| - EXPECT_TRUE(request->status().is_success());
|
| + EXPECT_EQ(OK, request->status().error());
|
| EXPECT_EQ(12, request->received_response_content_length());
|
| // Should not include the redirect.
|
| EXPECT_EQ(CountWriteBytes(final_writes, arraysize(final_writes)),
|
|
|