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

Unified Diff: content/child/resource_dispatcher_unittest.cc

Issue 2092993002: Browser process changes for Resource Timing sizes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Stop using AllocateForTesting() Created 4 years, 5 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: content/child/resource_dispatcher_unittest.cc
diff --git a/content/child/resource_dispatcher_unittest.cc b/content/child/resource_dispatcher_unittest.cc
index 07fbecfbb4d8108ebffd283dc04265f4245e3464..51a5b1aea8563cfa0dfa286ae5b67993bebe0367 100644
--- a/content/child/resource_dispatcher_unittest.cc
+++ b/content/child/resource_dispatcher_unittest.cc
@@ -13,6 +13,7 @@
#include <utility>
#include <vector>
+#include "base/feature_list.h"
#include "base/macros.h"
#include "base/memory/ptr_util.h"
#include "base/memory/shared_memory.h"
@@ -30,6 +31,7 @@
#include "content/public/child/fixed_received_data.h"
#include "content/public/child/request_peer.h"
#include "content/public/child/resource_dispatcher_delegate.h"
+#include "content/public/common/content_features.cc"
kinuko 2016/07/11 02:35:25 content_features.h ?
Adam Rice 2016/07/11 05:16:36 Sorry. Fixed.
#include "content/public/common/resource_response.h"
#include "net/base/net_errors.h"
#include "net/http/http_response_headers.h"
@@ -275,11 +277,19 @@ class ResourceDispatcherTest : public testing::Test, public IPC::Sender {
memcpy(shared_memory_map_[request_id]->memory(), data.c_str(),
data.length());
+ EXPECT_TRUE(dispatcher_->OnMessageReceived(ResourceMsg_DataReceived(
+ request_id, 0, data.length(), data.length(), data.length())));
+ }
+
+ void NotifyInlinedDataChunkReceived(int request_id,
+ const std::vector<char>& data) {
+ auto size = data.size();
EXPECT_TRUE(dispatcher_->OnMessageReceived(
- ResourceMsg_DataReceived(request_id, 0, data.length(), data.length())));
+ ResourceMsg_InlinedDataChunkReceived(request_id, data, size, size)));
}
- void NotifyDataDownloaded(int request_id, int decoded_length,
+ void NotifyDataDownloaded(int request_id,
+ int decoded_length,
int encoded_length) {
EXPECT_TRUE(dispatcher_->OnMessageReceived(ResourceMsg_DataDownloaded(
request_id, decoded_length, encoded_length)));
@@ -369,6 +379,34 @@ TEST_F(ResourceDispatcherTest, RoundTrip) {
EXPECT_EQ(0u, queued_messages());
}
+// A simple request with an inline data response.
+TEST_F(ResourceDispatcherTest, ResponseWithInlinedData) {
+ auto feature_list = base::MakeUnique<base::FeatureList>();
+ feature_list->InitializeFromCommandLine(
+ features::kOptimizeLoadingIPCForSmallResources.name, std::string());
+ base::FeatureList::SetInstance(std::move(feature_list));
+ std::unique_ptr<RequestInfo> request_info(CreateRequestInfo(false));
+ TestRequestPeer::Context peer_context;
+ StartAsync(*request_info.get(), NULL, &peer_context);
+
+ int id = ConsumeRequestResource();
+ EXPECT_EQ(0u, queued_messages());
+
+ NotifyReceivedResponse(id);
+ EXPECT_EQ(0u, queued_messages());
+ EXPECT_TRUE(peer_context.received_response);
+
+ std::vector<char> data(kTestPageContents,
+ kTestPageContents + strlen(kTestPageContents));
+ NotifyInlinedDataChunkReceived(id, data);
+ EXPECT_EQ(0u, queued_messages());
+
+ NotifyRequestComplete(id, strlen(kTestPageContents));
+ EXPECT_EQ(kTestPageContents, peer_context.data);
+ EXPECT_TRUE(peer_context.complete);
+ EXPECT_EQ(0u, queued_messages());
+}
+
// Tests that the request IDs are straight when there are two interleaving
// requests.
TEST_F(ResourceDispatcherTest, MultipleRequests) {

Powered by Google App Engine
This is Rietveld 408576698