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

Unified Diff: components/page_load_metrics/browser/metrics_web_contents_observer_unittest.cc

Issue 2139143002: Standardize which page loads are tracked (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add tests 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: components/page_load_metrics/browser/metrics_web_contents_observer_unittest.cc
diff --git a/components/page_load_metrics/browser/metrics_web_contents_observer_unittest.cc b/components/page_load_metrics/browser/metrics_web_contents_observer_unittest.cc
index fa9943c06b4eda3c8901cd5750f488f6d61ccb20..3c773cb94cf08942ded81dd8f04a8567d1b827a9 100644
--- a/components/page_load_metrics/browser/metrics_web_contents_observer_unittest.cc
+++ b/components/page_load_metrics/browser/metrics_web_contents_observer_unittest.cc
@@ -145,25 +145,13 @@ class MetricsWebContentsObserverTest
histogram_tester_.ExpectTotalCount(internal::kErrorEvents, 0);
}
- void AssertNoNonEmptyTimingReported() {
- ASSERT_FALSE(embedder_interface_->complete_timings().empty());
+ int CountEmptyCompleteTimingReported() {
+ int empty = 0;
for (const auto& timing : embedder_interface_->complete_timings()) {
- ASSERT_TRUE(timing.IsEmpty());
+ if (timing.IsEmpty())
+ ++empty;
}
- }
-
- void AssertNonEmptyTimingsReported(size_t expected_non_empty_timings) {
- ASSERT_GE(embedder_interface_->complete_timings().size(),
- expected_non_empty_timings);
- size_t actual_non_empty_timings = 0;
- for (const auto& timing : embedder_interface_->complete_timings()) {
- if (!timing.IsEmpty()) {
- ++actual_non_empty_timings;
- }
- }
- ASSERT_EQ(expected_non_empty_timings, actual_non_empty_timings);
- ASSERT_GE(embedder_interface_->updated_timings().size(),
- actual_non_empty_timings);
+ return empty;
}
int CountCompleteTimingReported() {
@@ -207,7 +195,8 @@ TEST_F(MetricsWebContentsObserverTest, SuccessfulMainFrameNavigation) {
ASSERT_EQ(0, CountCompleteTimingReported());
web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl2));
- AssertNonEmptyTimingsReported(1);
+ ASSERT_EQ(1, CountCompleteTimingReported());
+ ASSERT_EQ(0, CountEmptyCompleteTimingReported());
ASSERT_EQ(2u, observed_committed_urls_from_on_start().size());
ASSERT_EQ(kDefaultTestUrl,
observed_committed_urls_from_on_start().at(1).spec());
@@ -236,11 +225,13 @@ TEST_F(MetricsWebContentsObserverTest, NotInMainFrame) {
subframe_tester->SimulateNavigationStop();
// Navigate again to see if the timing updated for a subframe message.
- web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl));
+ web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl2));
ASSERT_EQ(0, CountUpdatedTimingReported());
- AssertNoNonEmptyTimingReported();
+ ASSERT_EQ(1, CountCompleteTimingReported());
+ ASSERT_EQ(1, CountEmptyCompleteTimingReported());
CheckErrorEvent(ERR_IPC_FROM_WRONG_FRAME, 1);
+ CheckErrorEvent(ERR_NO_IPCS_RECEIVED, 1);
CheckTotalErrorEvents();
}
@@ -255,9 +246,22 @@ TEST_F(MetricsWebContentsObserverTest, SamePageNoTrigger) {
SimulateTimingUpdate(timing);
ASSERT_EQ(1, CountUpdatedTimingReported());
web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrlAnchor));
+ // Send the same timing update. The original tracker for kDefaultTestUrl
+ // should dedup the update, and the tracker for kDefaultTestUrlAnchor should
+ // have been destroyed as a result of its being a same page navigation, so
+ // CountUpdatedTimingReported() should continue to return 1.
+ SimulateTimingUpdate(timing);
+
+ ASSERT_EQ(1, CountUpdatedTimingReported());
+ ASSERT_EQ(0, CountCompleteTimingReported());
+
+ // Navigate again to force histogram logging.
+ web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl2));
+
// A same page navigation shouldn't trigger logging UMA for the original.
ASSERT_EQ(1, CountUpdatedTimingReported());
- AssertNoNonEmptyTimingReported();
+ ASSERT_EQ(1, CountCompleteTimingReported());
+ ASSERT_EQ(0, CountEmptyCompleteTimingReported());
CheckNoErrorEvents();
}

Powered by Google App Engine
This is Rietveld 408576698