Chromium Code Reviews| 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..b154858db5490dab5f0077e805974df01ddcbac5 100644 |
| --- a/net/url_request/url_request_http_job_unittest.cc |
| +++ b/net/url_request/url_request_http_job_unittest.cc |
| @@ -267,6 +267,130 @@ 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_TRUE(request->status().is_success()); |
| + EXPECT_EQ((int)content_data.size(), |
|
mmenke
2016/09/07 15:18:21
C-style casts are forbidden. static_casts. Goes
allada
2016/09/07 18:14:57
Done.
|
| + request->received_response_content_length()); |
| + EXPECT_EQ((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_TRUE(request->status().is_success()); |
| + EXPECT_EQ((int)content_data.size(), |
| + request->received_response_content_length()); |
| + EXPECT_EQ((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(URLRequestStatus::SUCCESS, request->status().status()); |
|
mmenke
2016/09/07 15:18:21
Sorry, I meant EXPECT_EQ(ERR_<whatever>, request->
allada
2016/09/07 18:14:57
Done.
|
| + 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(URLRequestStatus::SUCCESS, request->status().status()); |
| + EXPECT_EQ((int)content_data.size(), |
| + request->received_response_content_length()); |
| + EXPECT_EQ((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 +426,7 @@ TEST_F(URLRequestHttpJobWithMockSocketsTest, |
| ASSERT_TRUE(request->is_pending()); |
| base::RunLoop().RunUntilIdle(); |
| - EXPECT_TRUE(request->status().is_success()); |
| + EXPECT_EQ(URLRequestStatus::SUCCESS, request->status().status()); |
| EXPECT_EQ(12, request->received_response_content_length()); |
| // Should not include the redirect. |
| EXPECT_EQ(CountWriteBytes(final_writes, arraysize(final_writes)), |