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 |