Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(127)

Side by Side Diff: chrome/browser/page_load_metrics/observers/lofi_page_load_metrics_observer_unittest.cc

Issue 2874663005: [Page Load Metrics] Add mojom file to page load metrics. (Closed)
Patch Set: Remove unnecessary variable Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/lofi_page_load_metrics_obse rver.h" 5 #include "chrome/browser/page_load_metrics/observers/lofi_page_load_metrics_obse rver.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/optional.h" 10 #include "base/optional.h"
11 #include "base/time/time.h" 11 #include "base/time/time.h"
12 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_ test_harness.h" 12 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_ test_harness.h"
13 #include "chrome/browser/page_load_metrics/page_load_metrics_observer.h" 13 #include "chrome/browser/page_load_metrics/page_load_metrics_observer.h"
14 #include "chrome/common/page_load_metrics/page_load_timing.h" 14 #include "chrome/common/page_load_metrics/page_load_timing.h"
15 #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_data .h" 15 #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_data .h"
16 16
17 namespace data_reduction_proxy { 17 namespace data_reduction_proxy {
18 18
19 namespace { 19 namespace {
20 20
21 const char kDefaultTestUrl[] = "https://www.google.com"; 21 const char kDefaultTestUrl[] = "https://www.google.com";
22 22
23 class LoFiPageLoadMetricsObserverTest 23 class LoFiPageLoadMetricsObserverTest
24 : public page_load_metrics::PageLoadMetricsObserverTestHarness { 24 : public page_load_metrics::PageLoadMetricsObserverTestHarness {
25 public: 25 public:
26 LoFiPageLoadMetricsObserverTest() {} 26 LoFiPageLoadMetricsObserverTest() {}
27 ~LoFiPageLoadMetricsObserverTest() override {} 27 ~LoFiPageLoadMetricsObserverTest() override {}
28 28
29 void ResetTest() { 29 void ResetTest() {
30 page_load_metrics::InitPageLoadTimingForTest(&timing_);
30 // Reset to the default testing state. Does not reset histogram state. 31 // Reset to the default testing state. Does not reset histogram state.
31 timing_.navigation_start = base::Time::FromDoubleT(1); 32 timing_.navigation_start = base::Time::FromDoubleT(1);
32 timing_.response_start = base::TimeDelta::FromSeconds(2); 33 timing_.response_start = base::TimeDelta::FromSeconds(2);
33 timing_.parse_timing.parse_start = base::TimeDelta::FromSeconds(3); 34 timing_.parse_timing->parse_start = base::TimeDelta::FromSeconds(3);
34 timing_.paint_timing.first_contentful_paint = 35 timing_.paint_timing->first_contentful_paint =
35 base::TimeDelta::FromSeconds(4); 36 base::TimeDelta::FromSeconds(4);
36 timing_.paint_timing.first_paint = base::TimeDelta::FromSeconds(4); 37 timing_.paint_timing->first_paint = base::TimeDelta::FromSeconds(4);
37 timing_.paint_timing.first_meaningful_paint = 38 timing_.paint_timing->first_meaningful_paint =
38 base::TimeDelta::FromSeconds(8); 39 base::TimeDelta::FromSeconds(8);
39 timing_.paint_timing.first_image_paint = base::TimeDelta::FromSeconds(5); 40 timing_.paint_timing->first_image_paint = base::TimeDelta::FromSeconds(5);
40 timing_.paint_timing.first_text_paint = base::TimeDelta::FromSeconds(6); 41 timing_.paint_timing->first_text_paint = base::TimeDelta::FromSeconds(6);
41 timing_.document_timing.load_event_start = base::TimeDelta::FromSeconds(7); 42 timing_.document_timing->load_event_start = base::TimeDelta::FromSeconds(7);
42 timing_.parse_timing.parse_stop = base::TimeDelta::FromSeconds(4); 43 timing_.parse_timing->parse_stop = base::TimeDelta::FromSeconds(4);
43 timing_.parse_timing.parse_blocked_on_script_load_duration = 44 timing_.parse_timing->parse_blocked_on_script_load_duration =
44 base::TimeDelta::FromSeconds(1); 45 base::TimeDelta::FromSeconds(1);
45 PopulateRequiredTimingFields(&timing_); 46 PopulateRequiredTimingFields(&timing_);
46 } 47 }
47 48
48 void RunTest() { 49 void RunTest() {
49 NavigateAndCommit(GURL(kDefaultTestUrl)); 50 NavigateAndCommit(GURL(kDefaultTestUrl));
50 SimulateTimingUpdate(timing_); 51 SimulateTimingUpdate(timing_);
51 } 52 }
52 53
53 void ValidateTimingHistograms(bool lofi_request_sent) { 54 void ValidateTimingHistograms(bool lofi_request_sent) {
54 ValidateTimingHistogram(lofi_names::kNavigationToLoadEvent, 55 ValidateTimingHistogram(lofi_names::kNavigationToLoadEvent,
55 timing_.document_timing.load_event_start, 56 timing_.document_timing->load_event_start,
56 lofi_request_sent); 57 lofi_request_sent);
57 ValidateTimingHistogram(lofi_names::kNavigationToFirstContentfulPaint, 58 ValidateTimingHistogram(lofi_names::kNavigationToFirstContentfulPaint,
58 timing_.paint_timing.first_contentful_paint, 59 timing_.paint_timing->first_contentful_paint,
59 lofi_request_sent); 60 lofi_request_sent);
60 ValidateTimingHistogram(lofi_names::kNavigationToFirstMeaningfulPaint, 61 ValidateTimingHistogram(lofi_names::kNavigationToFirstMeaningfulPaint,
61 timing_.paint_timing.first_meaningful_paint, 62 timing_.paint_timing->first_meaningful_paint,
62 lofi_request_sent); 63 lofi_request_sent);
63 ValidateTimingHistogram(lofi_names::kNavigationToFirstImagePaint, 64 ValidateTimingHistogram(lofi_names::kNavigationToFirstImagePaint,
64 timing_.paint_timing.first_image_paint, 65 timing_.paint_timing->first_image_paint,
65 lofi_request_sent); 66 lofi_request_sent);
66 ValidateTimingHistogram( 67 ValidateTimingHistogram(
67 lofi_names::kParseBlockedOnScriptLoad, 68 lofi_names::kParseBlockedOnScriptLoad,
68 timing_.parse_timing.parse_blocked_on_script_load_duration, 69 timing_.parse_timing->parse_blocked_on_script_load_duration,
69 lofi_request_sent); 70 lofi_request_sent);
70 ValidateTimingHistogram(lofi_names::kParseDuration, 71 ValidateTimingHistogram(lofi_names::kParseDuration,
71 timing_.parse_timing.parse_stop.value() - 72 timing_.parse_timing->parse_stop.value() -
72 timing_.parse_timing.parse_start.value(), 73 timing_.parse_timing->parse_start.value(),
73 lofi_request_sent); 74 lofi_request_sent);
74 } 75 }
75 76
76 void ValidateTimingHistogram(const std::string& histogram, 77 void ValidateTimingHistogram(const std::string& histogram,
77 const base::Optional<base::TimeDelta>& event, 78 const base::Optional<base::TimeDelta>& event,
78 bool lofi_request_sent) { 79 bool lofi_request_sent) {
79 histogram_tester().ExpectTotalCount(histogram, lofi_request_sent ? 1 : 0); 80 histogram_tester().ExpectTotalCount(histogram, lofi_request_sent ? 1 : 0);
80 if (!lofi_request_sent) 81 if (!lofi_request_sent)
81 return; 82 return;
82 histogram_tester().ExpectUniqueSample( 83 histogram_tester().ExpectUniqueSample(
(...skipping 24 matching lines...) Expand all
107 histogram_tester().ExpectTotalCount(lofi_names::kNetworkBytes, 0); 108 histogram_tester().ExpectTotalCount(lofi_names::kNetworkBytes, 0);
108 histogram_tester().ExpectTotalCount(lofi_names::kLoFiNetworkBytes, 0); 109 histogram_tester().ExpectTotalCount(lofi_names::kLoFiNetworkBytes, 0);
109 } 110 }
110 } 111 }
111 112
112 protected: 113 protected:
113 void RegisterObservers(page_load_metrics::PageLoadTracker* tracker) override { 114 void RegisterObservers(page_load_metrics::PageLoadTracker* tracker) override {
114 tracker->AddObserver(base::MakeUnique<LoFiPageLoadMetricsObserver>()); 115 tracker->AddObserver(base::MakeUnique<LoFiPageLoadMetricsObserver>());
115 } 116 }
116 117
117 page_load_metrics::PageLoadTiming timing_; 118 page_load_metrics::mojom::PageLoadTiming timing_;
118 119
119 private: 120 private:
120 DISALLOW_COPY_AND_ASSIGN(LoFiPageLoadMetricsObserverTest); 121 DISALLOW_COPY_AND_ASSIGN(LoFiPageLoadMetricsObserverTest);
121 }; 122 };
122 123
123 TEST_F(LoFiPageLoadMetricsObserverTest, LoFiNotSeen) { 124 TEST_F(LoFiPageLoadMetricsObserverTest, LoFiNotSeen) {
124 ResetTest(); 125 ResetTest();
125 RunTest(); 126 RunTest();
126 127
127 std::unique_ptr<DataReductionProxyData> data = 128 std::unique_ptr<DataReductionProxyData> data =
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 NavigateToUntrackedUrl(); 352 NavigateToUntrackedUrl();
352 353
353 ValidateTimingHistograms(true); 354 ValidateTimingHistograms(true);
354 ValidateDataHistograms(network_resources, lofi_resources, network_bytes, 355 ValidateDataHistograms(network_resources, lofi_resources, network_bytes,
355 lofi_bytes); 356 lofi_bytes);
356 } 357 }
357 358
358 } // namespace 359 } // namespace
359 360
360 } // namespace data_reduction_proxy 361 } // namespace data_reduction_proxy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698