| 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
|
|
|