| 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 55c5b46e31668fcdacc7e1eda4d3fd373be8f2d8..53235048d81068080e1dd8fb902b85225156184f 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
|
| @@ -152,18 +152,29 @@ class DataReductionProxyMetricsObserverTest
|
| NavigateAndCommit(GURL(kDefaultTestUrl2));
|
| }
|
|
|
| + // Verify that, if expected is set, its value equals that of
|
| + // actual. Otherwise, if expected is unset, verify that actual is zero.
|
| + void ExpectEqualOrUnset(const base::Optional<base::TimeDelta>& expected,
|
| + base::TimeDelta actual) {
|
| + if (expected) {
|
| + EXPECT_EQ(expected.value(), actual);
|
| + } else {
|
| + EXPECT_TRUE(actual.is_zero());
|
| + }
|
| + }
|
| +
|
| void ValidateTimes() {
|
| EXPECT_TRUE(pingback_client_->send_pingback_called());
|
| EXPECT_EQ(timing_.navigation_start,
|
| pingback_client_->timing()->navigation_start);
|
| - EXPECT_EQ(timing_.first_contentful_paint,
|
| - pingback_client_->timing()->first_contentful_paint);
|
| - EXPECT_EQ(timing_.response_start,
|
| - pingback_client_->timing()->response_start);
|
| - EXPECT_EQ(timing_.load_event_start,
|
| - pingback_client_->timing()->load_event_start);
|
| - EXPECT_EQ(timing_.first_image_paint,
|
| - pingback_client_->timing()->first_image_paint);
|
| + ExpectEqualOrUnset(timing_.first_contentful_paint,
|
| + pingback_client_->timing()->first_contentful_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() {
|
| @@ -186,8 +197,9 @@ class DataReductionProxyMetricsObserverTest
|
| timing_.parse_start);
|
| }
|
|
|
| - void ValidateHistogramsForSuffix(const std::string& histogram_suffix,
|
| - const base::TimeDelta& event) {
|
| + void ValidateHistogramsForSuffix(
|
| + const std::string& histogram_suffix,
|
| + const base::Optional<base::TimeDelta>& event) {
|
| histogram_tester().ExpectTotalCount(
|
| std::string(internal::kHistogramDataReductionProxyPrefix)
|
| .append(histogram_suffix),
|
| @@ -201,13 +213,15 @@ class DataReductionProxyMetricsObserverTest
|
| histogram_tester().ExpectUniqueSample(
|
| std::string(internal::kHistogramDataReductionProxyPrefix)
|
| .append(histogram_suffix),
|
| - static_cast<base::HistogramBase::Sample>(event.InMilliseconds()), 1);
|
| + static_cast<base::HistogramBase::Sample>(
|
| + event.value().InMilliseconds()),
|
| + 1);
|
| if (!is_using_lofi_)
|
| return;
|
| histogram_tester().ExpectUniqueSample(
|
| std::string(internal::kHistogramDataReductionProxyLoFiOnPrefix)
|
| .append(histogram_suffix),
|
| - event.InMilliseconds(), is_using_lofi_ ? 1 : 0);
|
| + event.value().InMilliseconds(), is_using_lofi_ ? 1 : 0);
|
| }
|
|
|
| protected:
|
| @@ -260,22 +274,22 @@ TEST_F(DataReductionProxyMetricsObserverTest, OnCompletePingback) {
|
|
|
| ResetTest();
|
| // Verify that when data reduction proxy was used but first image paint is
|
| - // zero, the correct timing information is sent to SendPingback.
|
| - timing_.first_image_paint = base::TimeDelta::FromSeconds(0);
|
| + // unset, the correct timing information is sent to SendPingback.
|
| + timing_.first_image_paint = base::nullopt;
|
| RunTest(true, false);
|
| ValidateTimes();
|
|
|
| ResetTest();
|
| // Verify that when data reduction proxy was used but first contentful paint
|
| - // is zero, SendPingback is not called.
|
| - timing_.first_contentful_paint = base::TimeDelta::FromSeconds(0);
|
| + // 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 load event start is
|
| - // zero, SendPingback is not called.
|
| - timing_.load_event_start = base::TimeDelta::FromSeconds(0);
|
| + // unset, SendPingback is not called.
|
| + timing_.load_event_start = base::nullopt;
|
| RunTest(true, false);
|
| ValidateTimes();
|
|
|
|
|