| 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/ukm_page_load_metrics_obser
ver.h" | 5 #include "chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_obser
ver.h" |
| 6 | 6 |
| 7 #include "base/memory/ptr_util.h" | 7 #include "base/memory/ptr_util.h" |
| 8 #include "base/metrics/metrics_hashes.h" | 8 #include "base/metrics/metrics_hashes.h" |
| 9 #include "base/optional.h" | 9 #include "base/optional.h" |
| 10 #include "base/time/time.h" | 10 #include "base/time/time.h" |
| 11 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_
test_harness.h" | 11 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_
test_harness.h" |
| 12 #include "chrome/test/base/testing_browser_process.h" | 12 #include "chrome/test/base/testing_browser_process.h" |
| 13 #include "components/ukm/test_ukm_recorder.h" | 13 #include "components/ukm/test_ukm_recorder.h" |
| 14 #include "components/ukm/ukm_source.h" | 14 #include "components/ukm/ukm_source.h" |
| 15 #include "net/nqe/effective_connection_type.h" |
| 16 #include "net/nqe/network_quality_provider.h" |
| 15 #include "testing/gmock/include/gmock/gmock.h" | 17 #include "testing/gmock/include/gmock/gmock.h" |
| 16 | 18 |
| 17 using testing::AnyNumber; | 19 using testing::AnyNumber; |
| 18 using testing::Mock; | 20 using testing::Mock; |
| 19 using testing::Return; | 21 using testing::Return; |
| 20 | 22 |
| 21 namespace { | 23 namespace { |
| 22 | 24 |
| 23 const char kTestUrl1[] = "https://www.google.com/"; | 25 const char kTestUrl1[] = "https://www.google.com/"; |
| 24 const char kTestUrl2[] = "https://www.example.com/"; | 26 const char kTestUrl2[] = "https://www.example.com/"; |
| 25 | 27 |
| 26 class MockNetworkQualityProvider | 28 class MockNetworkQualityProvider : public net::NetworkQualityProvider { |
| 27 : public net::NetworkQualityEstimator::NetworkQualityProvider { | |
| 28 public: | 29 public: |
| 29 MOCK_CONST_METHOD0(GetEffectiveConnectionType, | 30 MOCK_CONST_METHOD0(GetEffectiveConnectionType, |
| 30 net::EffectiveConnectionType()); | 31 net::EffectiveConnectionType()); |
| 31 MOCK_CONST_METHOD0(GetHttpRTT, base::Optional<base::TimeDelta>()); | 32 MOCK_CONST_METHOD0(GetHttpRTT, base::Optional<base::TimeDelta>()); |
| 32 MOCK_CONST_METHOD0(GetTransportRTT, base::Optional<base::TimeDelta>()); | 33 MOCK_CONST_METHOD0(GetTransportRTT, base::Optional<base::TimeDelta>()); |
| 33 MOCK_METHOD1( | |
| 34 AddEffectiveConnectionTypeObserver, | |
| 35 void(net::NetworkQualityEstimator::EffectiveConnectionTypeObserver*)); | |
| 36 MOCK_METHOD1( | |
| 37 RemoveEffectiveConnectionTypeObserver, | |
| 38 void(net::NetworkQualityEstimator::EffectiveConnectionTypeObserver*)); | |
| 39 MOCK_METHOD1( | |
| 40 AddRTTAndThroughputEstimatesObserver, | |
| 41 void(net::NetworkQualityEstimator::RTTAndThroughputEstimatesObserver*)); | |
| 42 MOCK_METHOD1( | |
| 43 RemoveRTTAndThroughputEstimatesObserver, | |
| 44 void(net::NetworkQualityEstimator::RTTAndThroughputEstimatesObserver*)); | |
| 45 }; | 34 }; |
| 46 | 35 |
| 47 } // namespace | 36 } // namespace |
| 48 | 37 |
| 49 class UkmPageLoadMetricsObserverTest | 38 class UkmPageLoadMetricsObserverTest |
| 50 : public page_load_metrics::PageLoadMetricsObserverTestHarness { | 39 : public page_load_metrics::PageLoadMetricsObserverTestHarness { |
| 51 protected: | 40 protected: |
| 52 void RegisterObservers(page_load_metrics::PageLoadTracker* tracker) override { | 41 void RegisterObservers(page_load_metrics::PageLoadTracker* tracker) override { |
| 53 tracker->AddObserver(base::MakeUnique<UkmPageLoadMetricsObserver>( | 42 tracker->AddObserver(base::MakeUnique<UkmPageLoadMetricsObserver>( |
| 54 &mock_network_quality_provider_)); | 43 &mock_network_quality_provider_)); |
| (...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 360 | 349 |
| 361 EXPECT_GE(ukm_entry_count(), 1ul); | 350 EXPECT_GE(ukm_entry_count(), 1ul); |
| 362 ukm::mojom::UkmEntryPtr entry = GetMergedEntryForSourceID(source->id()); | 351 ukm::mojom::UkmEntryPtr entry = GetMergedEntryForSourceID(source->id()); |
| 363 EXPECT_EQ(entry->source_id, source->id()); | 352 EXPECT_EQ(entry->source_id, source->id()); |
| 364 EXPECT_EQ(entry->event_hash, | 353 EXPECT_EQ(entry->event_hash, |
| 365 base::HashMetricName(internal::kUkmPageLoadEventName)); | 354 base::HashMetricName(internal::kUkmPageLoadEventName)); |
| 366 EXPECT_FALSE(entry->metrics.empty()); | 355 EXPECT_FALSE(entry->metrics.empty()); |
| 367 ExpectMetric(internal::kUkmPageTransition, ui::PAGE_TRANSITION_RELOAD, | 356 ExpectMetric(internal::kUkmPageTransition, ui::PAGE_TRANSITION_RELOAD, |
| 368 entry.get()); | 357 entry.get()); |
| 369 } | 358 } |
| OLD | NEW |