| 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 973e7e5a8ce22e9d2c7751829feb7119fdafd663..d915e8be1b26b0e9641957606a3bf8adbc77563a 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
|
| @@ -214,4 +214,29 @@ TEST_F(ChromeDataUseAscriberTest, MainFrameNavigation) {
|
| EXPECT_EQ(0u, recorders().size());
|
| }
|
|
|
| +TEST_F(ChromeDataUseAscriberTest, FailedMainFrameNavigation) {
|
| + 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());
|
| +
|
| + // Failed request will remove the pending entry.
|
| + request->Cancel();
|
| + ascriber()->OnUrlRequestCompleted(*request, false);
|
| +
|
| + ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1);
|
| + ascriber()->OnUrlRequestDestroyed(request.get());
|
| +
|
| + EXPECT_EQ(0u, recorders().size());
|
| +}
|
| +
|
| } // namespace data_use_measurement
|
|
|