| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/page_load_metrics/observers/resource_prefetch_predictor
_page_load_metrics_observer.h" | 5 #include "chrome/browser/page_load_metrics/observers/resource_prefetch_predictor
_page_load_metrics_observer.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
| 10 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_
test_harness.h" | 10 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_
test_harness.h" |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 class ResourcePrefetchPredictorPageLoadMetricsObserverTest | 31 class ResourcePrefetchPredictorPageLoadMetricsObserverTest |
| 32 : public page_load_metrics::PageLoadMetricsObserverTestHarness { | 32 : public page_load_metrics::PageLoadMetricsObserverTestHarness { |
| 33 protected: | 33 protected: |
| 34 void SetUp() override { | 34 void SetUp() override { |
| 35 page_load_metrics::PageLoadMetricsObserverTestHarness::SetUp(); | 35 page_load_metrics::PageLoadMetricsObserverTestHarness::SetUp(); |
| 36 predictors::LoadingPredictorConfig config; | 36 predictors::LoadingPredictorConfig config; |
| 37 config.mode = predictors::LoadingPredictorConfig::LEARNING; | 37 config.mode = predictors::LoadingPredictorConfig::LEARNING; |
| 38 predictor_ = | 38 predictor_ = |
| 39 base::MakeUnique<testing::StrictMock<MockResourcePrefetchPredictor>>( | 39 base::MakeUnique<testing::StrictMock<MockResourcePrefetchPredictor>>( |
| 40 config, profile()); | 40 config, profile()); |
| 41 page_load_metrics::InitPageLoadTimingForTest(&timing_); |
| 41 timing_.navigation_start = base::Time::FromDoubleT(1); | 42 timing_.navigation_start = base::Time::FromDoubleT(1); |
| 42 timing_.paint_timing.first_paint = base::TimeDelta::FromSeconds(2); | 43 timing_.paint_timing->first_paint = base::TimeDelta::FromSeconds(2); |
| 43 timing_.paint_timing.first_contentful_paint = | 44 timing_.paint_timing->first_contentful_paint = |
| 44 base::TimeDelta::FromSeconds(3); | 45 base::TimeDelta::FromSeconds(3); |
| 45 timing_.paint_timing.first_meaningful_paint = | 46 timing_.paint_timing->first_meaningful_paint = |
| 46 base::TimeDelta::FromSeconds(4); | 47 base::TimeDelta::FromSeconds(4); |
| 47 PopulateRequiredTimingFields(&timing_); | 48 PopulateRequiredTimingFields(&timing_); |
| 48 } | 49 } |
| 49 | 50 |
| 50 void RegisterObservers(page_load_metrics::PageLoadTracker* tracker) override { | 51 void RegisterObservers(page_load_metrics::PageLoadTracker* tracker) override { |
| 51 tracker->AddObserver( | 52 tracker->AddObserver( |
| 52 base::MakeUnique<ResourcePrefetchPredictorPageLoadMetricsObserver>( | 53 base::MakeUnique<ResourcePrefetchPredictorPageLoadMetricsObserver>( |
| 53 predictor_.get(), web_contents())); | 54 predictor_.get(), web_contents())); |
| 54 } | 55 } |
| 55 | 56 |
| 56 std::unique_ptr<testing::StrictMock<MockResourcePrefetchPredictor>> | 57 std::unique_ptr<testing::StrictMock<MockResourcePrefetchPredictor>> |
| 57 predictor_; | 58 predictor_; |
| 58 page_load_metrics::PageLoadTiming timing_; | 59 page_load_metrics::mojom::PageLoadTiming timing_; |
| 59 }; | 60 }; |
| 60 | 61 |
| 61 TEST_F(ResourcePrefetchPredictorPageLoadMetricsObserverTest, | 62 TEST_F(ResourcePrefetchPredictorPageLoadMetricsObserverTest, |
| 62 PrefetchableIsRecorded) { | 63 PrefetchableIsRecorded) { |
| 63 const GURL main_frame_url("https://www.google.com"); | 64 const GURL main_frame_url("https://www.google.com"); |
| 64 EXPECT_CALL(*predictor_.get(), IsUrlPrefetchable(main_frame_url)) | 65 EXPECT_CALL(*predictor_.get(), IsUrlPrefetchable(main_frame_url)) |
| 65 .WillOnce(testing::Return(true)); | 66 .WillOnce(testing::Return(true)); |
| 66 | 67 |
| 67 NavigateAndCommit(main_frame_url); | 68 NavigateAndCommit(main_frame_url); |
| 68 SimulateTimingUpdate(timing_); | 69 SimulateTimingUpdate(timing_); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 80 .WillOnce(testing::Return(false)); | 81 .WillOnce(testing::Return(false)); |
| 81 | 82 |
| 82 NavigateAndCommit(main_frame_url); | 83 NavigateAndCommit(main_frame_url); |
| 83 SimulateTimingUpdate(timing_); | 84 SimulateTimingUpdate(timing_); |
| 84 | 85 |
| 85 histogram_tester().ExpectTotalCount( | 86 histogram_tester().ExpectTotalCount( |
| 86 internal::kHistogramResourcePrefetchPredictorFirstContentfulPaint, 0); | 87 internal::kHistogramResourcePrefetchPredictorFirstContentfulPaint, 0); |
| 87 histogram_tester().ExpectTotalCount( | 88 histogram_tester().ExpectTotalCount( |
| 88 internal::kHistogramResourcePrefetchPredictorFirstMeaningfulPaint, 0); | 89 internal::kHistogramResourcePrefetchPredictorFirstMeaningfulPaint, 0); |
| 89 } | 90 } |
| OLD | NEW |