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

Unified Diff: chrome/browser/data_use_measurement/chrome_data_use_ascriber_unittest.cc

Issue 2865913002: Support for identifying traffic type in data use ascriber (Closed)
Patch Set: compile fix Created 3 years, 7 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: chrome/browser/data_use_measurement/chrome_data_use_ascriber_unittest.cc
diff --git a/chrome/browser/data_use_measurement/chrome_data_use_ascriber_unittest.cc b/chrome/browser/data_use_measurement/chrome_data_use_ascriber_unittest.cc
index d034b76795ab1df0964e066f9d0daf823fd811d5..973e7e5a8ce22e9d2c7751829feb7119fdafd663 100644
--- a/chrome/browser/data_use_measurement/chrome_data_use_ascriber_unittest.cc
+++ b/chrome/browser/data_use_measurement/chrome_data_use_ascriber_unittest.cc
@@ -24,6 +24,7 @@ namespace {
int kRenderProcessId = 1;
int kRenderFrameId = 2;
int kRequestId = 3;
+void* kNavigationHandle = &kNavigationHandle;
}
namespace data_use_measurement {
@@ -171,4 +172,46 @@ TEST_F(ChromeDataUseAscriberTest, RenderFrameHostChanged) {
-1);
}
+TEST_F(ChromeDataUseAscriberTest, MainFrameNavigation) {
+ if (content::IsBrowserSideNavigationEnabled())
+ return;
+
+ std::unique_ptr<net::URLRequest> request = CreateNewRequest(
+ "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId);
+
+ // Mainframe is created.
+ ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1);
+ EXPECT_EQ(1u, recorders().size());
+
+ // Request should cause a recorder to be created.
+ ascriber()->OnBeforeUrlRequest(request.get());
+ EXPECT_EQ(2u, recorders().size());
+
+ // Navigation starts.
+ ascriber()->DidStartMainFrameNavigation(GURL("http://test.com"),
+ kRenderProcessId, kRenderFrameId,
+ kNavigationHandle);
+
+ ascriber()->ReadyToCommitMainFrameNavigation(
+ GURL("http://mobile.test.com"),
+ content::GlobalRequestID(kRenderProcessId, 0), kRenderProcessId,
+ kRenderFrameId, false, kNavigationHandle);
+
+ // Navigation commit should merge the two data use recorder entries.
+ EXPECT_EQ(1u, recorders().size());
+ auto& recorder_entry = recorders().front();
+ EXPECT_EQ(RenderFrameHostID(kRenderProcessId, kRenderFrameId),
+ recorder_entry.main_frame_id());
+ EXPECT_EQ(content::GlobalRequestID(kRenderProcessId, 0),
+ recorder_entry.main_frame_request_id());
+ EXPECT_EQ(GURL("http://mobile.test.com"), recorder_entry.data_use().url());
+ EXPECT_EQ(DataUse::TrafficType::USER_TRAFFIC,
+ recorder_entry.data_use().traffic_type());
+
+ ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1);
+ ascriber()->OnUrlRequestDestroyed(request.get());
+
+ EXPECT_EQ(0u, recorders().size());
+}
+
} // namespace data_use_measurement

Powered by Google App Engine
This is Rietveld 408576698