| Index: chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_unittest.cc
|
| diff --git a/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_unittest.cc
|
| index a493154bc861225c79ec650ff9af20d4b3847ebf..de36521e5479a6dbbee8e5fad2e760099b138620 100644
|
| --- a/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_unittest.cc
|
| +++ b/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_unittest.cc
|
| @@ -128,20 +128,22 @@ class DataReductionProxyMetricsObserverTest
|
| : pingback_client_(new TestPingbackClient()),
|
| data_reduction_proxy_used_(false),
|
| is_using_lofi_(false) {}
|
|
|
| void ResetTest() {
|
| // Reset to the default testing state. Does not reset histogram state.
|
| timing_.navigation_start = base::Time::FromDoubleT(1);
|
| timing_.response_start = base::TimeDelta::FromSeconds(2);
|
| timing_.parse_start = base::TimeDelta::FromSeconds(3);
|
| timing_.first_contentful_paint = base::TimeDelta::FromSeconds(4);
|
| + timing_.first_paint = base::TimeDelta::FromSeconds(4);
|
| + timing_.first_meaningful_paint = base::TimeDelta::FromSeconds(8);
|
| timing_.first_image_paint = base::TimeDelta::FromSeconds(5);
|
| timing_.first_text_paint = base::TimeDelta::FromSeconds(6);
|
| timing_.load_event_start = base::TimeDelta::FromSeconds(7);
|
| timing_.parse_stop = base::TimeDelta::FromSeconds(4);
|
| timing_.parse_blocked_on_script_load_duration =
|
| base::TimeDelta::FromSeconds(1);
|
| PopulateRequiredTimingFields(&timing_);
|
| }
|
|
|
| void RunTest(bool data_reduction_proxy_used, bool is_using_lofi) {
|
| @@ -167,38 +169,43 @@ class DataReductionProxyMetricsObserverTest
|
| EXPECT_TRUE(!actual);
|
| }
|
| }
|
|
|
| void ValidateTimes() {
|
| EXPECT_TRUE(pingback_client_->send_pingback_called());
|
| EXPECT_EQ(timing_.navigation_start,
|
| pingback_client_->timing()->navigation_start);
|
| ExpectEqualOrUnset(timing_.first_contentful_paint,
|
| pingback_client_->timing()->first_contentful_paint);
|
| + ExpectEqualOrUnset(
|
| + timing_.first_meaningful_paint,
|
| + pingback_client_->timing()->experimental_first_meaningful_paint);
|
| ExpectEqualOrUnset(timing_.response_start,
|
| pingback_client_->timing()->response_start);
|
| ExpectEqualOrUnset(timing_.load_event_start,
|
| pingback_client_->timing()->load_event_start);
|
| ExpectEqualOrUnset(timing_.first_image_paint,
|
| pingback_client_->timing()->first_image_paint);
|
| }
|
|
|
| void ValidateHistograms() {
|
| ValidateHistogramsForSuffix(
|
| internal::kHistogramDOMContentLoadedEventFiredSuffix,
|
| timing_.dom_content_loaded_event_start);
|
| ValidateHistogramsForSuffix(internal::kHistogramFirstLayoutSuffix,
|
| timing_.first_layout);
|
| ValidateHistogramsForSuffix(internal::kHistogramLoadEventFiredSuffix,
|
| timing_.load_event_start);
|
| ValidateHistogramsForSuffix(internal::kHistogramFirstContentfulPaintSuffix,
|
| timing_.first_contentful_paint);
|
| + ValidateHistogramsForSuffix(internal::kHistogramFirstMeaningfulPaintSuffix,
|
| + timing_.first_meaningful_paint);
|
| ValidateHistogramsForSuffix(internal::kHistogramFirstImagePaintSuffix,
|
| timing_.first_image_paint);
|
| ValidateHistogramsForSuffix(internal::kHistogramFirstPaintSuffix,
|
| timing_.first_paint);
|
| ValidateHistogramsForSuffix(internal::kHistogramFirstTextPaintSuffix,
|
| timing_.first_text_paint);
|
| ValidateHistogramsForSuffix(internal::kHistogramParseStartSuffix,
|
| timing_.parse_start);
|
| ValidateHistogramsForSuffix(
|
| internal::kHistogramParseBlockedOnScriptLoadSuffix,
|
| @@ -291,20 +298,27 @@ TEST_F(DataReductionProxyMetricsObserverTest, OnCompletePingback) {
|
| ValidateTimes();
|
|
|
| ResetTest();
|
| // Verify that when data reduction proxy was used but first contentful paint
|
| // is unset, SendPingback is not called.
|
| timing_.first_contentful_paint = base::nullopt;
|
| RunTest(true, false);
|
| ValidateTimes();
|
|
|
| ResetTest();
|
| + // Verify that when data reduction proxy was used but first meaningful paint
|
| + // is unset, SendPingback is not called.
|
| + timing_.first_meaningful_paint = base::nullopt;
|
| + RunTest(true, false);
|
| + ValidateTimes();
|
| +
|
| + ResetTest();
|
| // Verify that when data reduction proxy was used but load event start is
|
| // unset, SendPingback is not called.
|
| timing_.load_event_start = base::nullopt;
|
| RunTest(true, false);
|
| ValidateTimes();
|
|
|
| ResetTest();
|
| // Verify that when data reduction proxy was not used, SendPingback is not
|
| // called.
|
| RunTest(false, false);
|
|
|