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

Unified Diff: content/browser/loader/async_resource_handler_unittest.cc

Issue 2514713002: Send encoded_body_length to renderer when response completed (1/3) (Closed)
Patch Set: merge https://codereview.chromium.org/2526653002/ Created 4 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: content/browser/loader/async_resource_handler_unittest.cc
diff --git a/content/browser/loader/async_resource_handler_unittest.cc b/content/browser/loader/async_resource_handler_unittest.cc
index 9662afd54b75bb039394a478e6677e270ab806e0..f0697034b8fbc55f464e6e438363d506b3d052a2 100644
--- a/content/browser/loader/async_resource_handler_unittest.cc
+++ b/content/browser/loader/async_resource_handler_unittest.cc
@@ -64,6 +64,10 @@ std::string GenerateHeader(size_t response_data_size) {
response_data_size);
}
+int64_t TotalReceivedBytes(size_t response_data_size) {
+ return response_data_size + GenerateHeader(response_data_size).size();
+}
+
std::string GenerateData(size_t response_data_size) {
return std::string(response_data_size, 'a');
}
@@ -248,7 +252,8 @@ TEST_F(AsyncResourceHandlerTest, Construct) {
TEST_F(AsyncResourceHandlerTest, OneChunkLengths) {
// Larger than kInlinedLeadingChunkSize and smaller than
// kMaxAllocationSize.
- StartRequestAndWaitWithResponseDataSize(4096);
+ constexpr auto kDataSize = 4096;
+ StartRequestAndWaitWithResponseDataSize(kDataSize);
const auto& messages = filter_->messages();
ASSERT_EQ(4u, messages.size());
ASSERT_EQ(ResourceMsg_DataReceived::ID, messages[2]->type());
@@ -256,9 +261,19 @@ TEST_F(AsyncResourceHandlerTest, OneChunkLengths) {
ResourceMsg_DataReceived::Read(messages[2].get(), &params);
int encoded_data_length = std::get<3>(params);
- EXPECT_EQ(4096, encoded_data_length);
+ EXPECT_EQ(kDataSize, encoded_data_length);
int encoded_body_length = std::get<4>(params);
- EXPECT_EQ(4096, encoded_body_length);
+ EXPECT_EQ(kDataSize, encoded_body_length);
+
+ ASSERT_EQ(ResourceMsg_RequestComplete::ID, messages[3]->type());
+ ResourceMsg_RequestComplete::Param completion_params;
+ ResourceMsg_RequestComplete::Read(messages[3].get(), &completion_params);
+ ResourceRequestCompletionStatus completion_status =
+ std::get<1>(completion_params);
+
+ EXPECT_EQ(TotalReceivedBytes(kDataSize),
+ completion_status.encoded_data_length);
+ EXPECT_EQ(kDataSize, completion_status.encoded_body_length);
}
TEST_F(AsyncResourceHandlerTest, InlinedChunkLengths) {
@@ -269,7 +284,8 @@ TEST_F(AsyncResourceHandlerTest, InlinedChunkLengths) {
features::kOptimizeLoadingIPCForSmallResources);
// Smaller than kInlinedLeadingChunkSize.
- StartRequestAndWaitWithResponseDataSize(8);
+ constexpr auto kDataSize = 8;
+ StartRequestAndWaitWithResponseDataSize(kDataSize);
const auto& messages = filter_->messages();
ASSERT_EQ(3u, messages.size());
ASSERT_EQ(ResourceMsg_InlinedDataChunkReceived::ID, messages[1]->type());
@@ -277,14 +293,25 @@ TEST_F(AsyncResourceHandlerTest, InlinedChunkLengths) {
ResourceMsg_InlinedDataChunkReceived::Read(messages[1].get(), &params);
int encoded_data_length = std::get<2>(params);
- EXPECT_EQ(8, encoded_data_length);
+ EXPECT_EQ(kDataSize, encoded_data_length);
int encoded_body_length = std::get<3>(params);
- EXPECT_EQ(8, encoded_body_length);
+ EXPECT_EQ(kDataSize, encoded_body_length);
+
+ ASSERT_EQ(ResourceMsg_RequestComplete::ID, messages[2]->type());
+ ResourceMsg_RequestComplete::Param completion_params;
+ ResourceMsg_RequestComplete::Read(messages[2].get(), &completion_params);
+ ResourceRequestCompletionStatus completion_status =
+ std::get<1>(completion_params);
+
+ EXPECT_EQ(TotalReceivedBytes(kDataSize),
+ completion_status.encoded_data_length);
+ EXPECT_EQ(kDataSize, completion_status.encoded_body_length);
}
TEST_F(AsyncResourceHandlerTest, TwoChunksLengths) {
// Larger than kMaxAllocationSize.
- StartRequestAndWaitWithResponseDataSize(64*1024);
+ constexpr auto kDataSize = 64 * 1024;
+ StartRequestAndWaitWithResponseDataSize(kDataSize);
const auto& messages = filter_->messages();
ASSERT_EQ(5u, messages.size());
ASSERT_EQ(ResourceMsg_DataReceived::ID, messages[2]->type());
@@ -303,6 +330,15 @@ TEST_F(AsyncResourceHandlerTest, TwoChunksLengths) {
EXPECT_EQ(32768, encoded_data_length);
encoded_body_length = std::get<4>(params);
EXPECT_EQ(32768, encoded_body_length);
+
+ ASSERT_EQ(ResourceMsg_RequestComplete::ID, messages[4]->type());
+ ResourceMsg_RequestComplete::Param completion_params;
+ ResourceMsg_RequestComplete::Read(messages[4].get(), &completion_params);
+ ResourceRequestCompletionStatus completion_status =
+ std::get<1>(completion_params);
+ EXPECT_EQ(TotalReceivedBytes(kDataSize),
+ completion_status.encoded_data_length);
+ EXPECT_EQ(kDataSize, completion_status.encoded_body_length);
}
} // namespace
« no previous file with comments | « content/browser/loader/async_resource_handler.cc ('k') | content/browser/loader/mojo_async_resource_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698