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

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

Issue 2371883002: Add PLMObserver::FlushMetricsOnAppEnterBackground. (Closed)
Patch Set: add test Created 4 years, 3 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/page_load_metrics/metrics_web_contents_observer_unittest.cc
diff --git a/chrome/browser/page_load_metrics/metrics_web_contents_observer_unittest.cc b/chrome/browser/page_load_metrics/metrics_web_contents_observer_unittest.cc
index 91468dbfcf7fa03f0bc3629beb02a9290dfc2045..4629d78eff7aeb826b5826056b09e1457b4cf118 100644
--- a/chrome/browser/page_load_metrics/metrics_web_contents_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/metrics_web_contents_observer_unittest.cc
@@ -59,6 +59,12 @@ class TestPageLoadMetricsObserver : public PageLoadMetricsObserver {
complete_timings_->push_back(timing);
}
+ ObservePolicy FlushMetricsOnAppEnterBackground(
+ const PageLoadTiming& timing,
+ const PageLoadExtraInfo& extra_info) override {
+ return STOP_OBSERVING;
+ }
+
private:
std::vector<PageLoadTiming>* const updated_timings_;
std::vector<PageLoadTiming>* const complete_timings_;
@@ -184,7 +190,6 @@ class MetricsWebContentsObserverTest : public ChromeRenderViewHostTestHarness {
TEST_F(MetricsWebContentsObserverTest, SuccessfulMainFrameNavigation) {
PageLoadTiming timing;
timing.navigation_start = base::Time::FromDoubleT(1);
- timing.response_start = base::TimeDelta::FromMilliseconds(2);
content::WebContentsTester* web_contents_tester =
content::WebContentsTester::For(web_contents());
@@ -498,6 +503,16 @@ TEST_F(MetricsWebContentsObserverTest, FlushMetricsOnAppEnterBackground) {
histogram_tester_.ExpectBucketCount(
internal::kPageLoadCompletedAfterAppBackground, true, 0);
+ // Navigate again, which forces completion callbacks on the previous
+ // navigation to be invoked.
+ web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl2));
+
+ // Verify that, even though the page load completed, no complete timings were
+ // reported, because the TestPageLoadMetricsObserver's
+ // FlushMetricsOnAppEnterBackground implementation returned STOP_OBSERVING,
+ // thus preventing OnComplete from being invoked.
+ ASSERT_EQ(0, CountCompleteTimingReported());
+
DeleteContents();
histogram_tester_.ExpectTotalCount(

Powered by Google App Engine
This is Rietveld 408576698