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

Unified Diff: net/url_request/url_request_http_job_unittest.cc

Issue 2167853003: [DevTools] Always report encodedDataLength in Network.ResponseReceived. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changes Created 4 years, 3 months 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/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)),

Powered by Google App Engine
This is Rietveld 408576698