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

Side by Side Diff: chrome/renderer/page_load_metrics/metrics_render_frame_observer_unittest.cc

Issue 2806863003: [Page Load Metrics] Structure PageLoadTiming. (Closed)
Patch Set: rebase Created 3 years, 8 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 (c) 2015 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2015 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/renderer/page_load_metrics/metrics_render_frame_observer.h" 5 #include "chrome/renderer/page_load_metrics/metrics_render_frame_observer.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 TestMetricsRenderFrameObserver observer; 95 TestMetricsRenderFrameObserver observer;
96 base::MockTimer* mock_timer = new base::MockTimer(false, false); 96 base::MockTimer* mock_timer = new base::MockTimer(false, false);
97 observer.set_mock_timer(base::WrapUnique(mock_timer)); 97 observer.set_mock_timer(base::WrapUnique(mock_timer));
98 98
99 PageLoadTiming timing; 99 PageLoadTiming timing;
100 timing.navigation_start = nav_start; 100 timing.navigation_start = nav_start;
101 observer.ExpectPageLoadTiming(timing); 101 observer.ExpectPageLoadTiming(timing);
102 observer.DidCommitProvisionalLoad(true, false); 102 observer.DidCommitProvisionalLoad(true, false);
103 mock_timer->Fire(); 103 mock_timer->Fire();
104 104
105 timing.first_layout = first_layout; 105 timing.document_timing.first_layout = first_layout;
106 observer.ExpectPageLoadTiming(timing); 106 observer.ExpectPageLoadTiming(timing);
107 107
108 observer.DidChangePerformanceTiming(); 108 observer.DidChangePerformanceTiming();
109 mock_timer->Fire(); 109 mock_timer->Fire();
110 } 110 }
111 111
112 TEST_F(MetricsRenderFrameObserverTest, MultipleMetrics) { 112 TEST_F(MetricsRenderFrameObserverTest, MultipleMetrics) {
113 base::Time nav_start = base::Time::FromDoubleT(10); 113 base::Time nav_start = base::Time::FromDoubleT(10);
114 base::TimeDelta first_layout = base::TimeDelta::FromMillisecondsD(2); 114 base::TimeDelta first_layout = base::TimeDelta::FromMillisecondsD(2);
115 base::TimeDelta dom_event = base::TimeDelta::FromMillisecondsD(2); 115 base::TimeDelta dom_event = base::TimeDelta::FromMillisecondsD(2);
116 base::TimeDelta load_event = base::TimeDelta::FromMillisecondsD(2); 116 base::TimeDelta load_event = base::TimeDelta::FromMillisecondsD(2);
117 117
118 TestMetricsRenderFrameObserver observer; 118 TestMetricsRenderFrameObserver observer;
119 base::MockTimer* mock_timer = new base::MockTimer(false, false); 119 base::MockTimer* mock_timer = new base::MockTimer(false, false);
120 observer.set_mock_timer(base::WrapUnique(mock_timer)); 120 observer.set_mock_timer(base::WrapUnique(mock_timer));
121 121
122 PageLoadTiming timing; 122 PageLoadTiming timing;
123 timing.navigation_start = nav_start; 123 timing.navigation_start = nav_start;
124 observer.ExpectPageLoadTiming(timing); 124 observer.ExpectPageLoadTiming(timing);
125 observer.DidCommitProvisionalLoad(true, false); 125 observer.DidCommitProvisionalLoad(true, false);
126 mock_timer->Fire(); 126 mock_timer->Fire();
127 127
128 timing.first_layout = first_layout; 128 timing.document_timing.first_layout = first_layout;
129 timing.dom_content_loaded_event_start = dom_event; 129 timing.document_timing.dom_content_loaded_event_start = dom_event;
130 observer.ExpectPageLoadTiming(timing); 130 observer.ExpectPageLoadTiming(timing);
131 131
132 observer.DidChangePerformanceTiming(); 132 observer.DidChangePerformanceTiming();
133 mock_timer->Fire(); 133 mock_timer->Fire();
134 134
135 // At this point, we should have triggered the generation of two metrics. 135 // At this point, we should have triggered the generation of two metrics.
136 // Verify and reset the observer's expectations before moving on to the next 136 // Verify and reset the observer's expectations before moving on to the next
137 // part of the test. 137 // part of the test.
138 observer.VerifyExpectedTimings(); 138 observer.VerifyExpectedTimings();
139 139
140 timing.load_event_start = load_event; 140 timing.document_timing.load_event_start = load_event;
141 observer.ExpectPageLoadTiming(timing); 141 observer.ExpectPageLoadTiming(timing);
142 142
143 observer.DidChangePerformanceTiming(); 143 observer.DidChangePerformanceTiming();
144 mock_timer->Fire(); 144 mock_timer->Fire();
145 145
146 // Verify and reset the observer's expectations before moving on to the next 146 // Verify and reset the observer's expectations before moving on to the next
147 // part of the test. 147 // part of the test.
148 observer.VerifyExpectedTimings(); 148 observer.VerifyExpectedTimings();
149 149
150 // The PageLoadTiming above includes timing information for the first layout, 150 // The PageLoadTiming above includes timing information for the first layout,
(...skipping 13 matching lines...) Expand all
164 TestMetricsRenderFrameObserver observer; 164 TestMetricsRenderFrameObserver observer;
165 base::MockTimer* mock_timer = new base::MockTimer(false, false); 165 base::MockTimer* mock_timer = new base::MockTimer(false, false);
166 observer.set_mock_timer(base::WrapUnique(mock_timer)); 166 observer.set_mock_timer(base::WrapUnique(mock_timer));
167 167
168 PageLoadTiming timing; 168 PageLoadTiming timing;
169 timing.navigation_start = nav_start; 169 timing.navigation_start = nav_start;
170 observer.ExpectPageLoadTiming(timing); 170 observer.ExpectPageLoadTiming(timing);
171 observer.DidCommitProvisionalLoad(true, false); 171 observer.DidCommitProvisionalLoad(true, false);
172 mock_timer->Fire(); 172 mock_timer->Fire();
173 173
174 timing.first_layout = first_layout; 174 timing.document_timing.first_layout = first_layout;
175 timing.dom_content_loaded_event_start = dom_event; 175 timing.document_timing.dom_content_loaded_event_start = dom_event;
176 timing.load_event_start = load_event; 176 timing.document_timing.load_event_start = load_event;
177 observer.ExpectPageLoadTiming(timing); 177 observer.ExpectPageLoadTiming(timing);
178 observer.DidChangePerformanceTiming(); 178 observer.DidChangePerformanceTiming();
179 mock_timer->Fire(); 179 mock_timer->Fire();
180 180
181 // At this point, we should have triggered the generation of two metrics. 181 // At this point, we should have triggered the generation of two metrics.
182 // Verify and reset the observer's expectations before moving on to the next 182 // Verify and reset the observer's expectations before moving on to the next
183 // part of the test. 183 // part of the test.
184 observer.VerifyExpectedTimings(); 184 observer.VerifyExpectedTimings();
185 185
186 base::Time nav_start_2 = base::Time::FromDoubleT(100); 186 base::Time nav_start_2 = base::Time::FromDoubleT(100);
187 base::TimeDelta first_layout_2 = base::TimeDelta::FromMillisecondsD(20); 187 base::TimeDelta first_layout_2 = base::TimeDelta::FromMillisecondsD(20);
188 base::TimeDelta dom_event_2 = base::TimeDelta::FromMillisecondsD(20); 188 base::TimeDelta dom_event_2 = base::TimeDelta::FromMillisecondsD(20);
189 base::TimeDelta load_event_2 = base::TimeDelta::FromMillisecondsD(20); 189 base::TimeDelta load_event_2 = base::TimeDelta::FromMillisecondsD(20);
190 PageLoadTiming timing_2; 190 PageLoadTiming timing_2;
191 timing_2.navigation_start = nav_start_2; 191 timing_2.navigation_start = nav_start_2;
192 192
193 base::MockTimer* mock_timer2 = new base::MockTimer(false, false); 193 base::MockTimer* mock_timer2 = new base::MockTimer(false, false);
194 observer.set_mock_timer(base::WrapUnique(mock_timer2)); 194 observer.set_mock_timer(base::WrapUnique(mock_timer2));
195 195
196 observer.ExpectPageLoadTiming(timing_2); 196 observer.ExpectPageLoadTiming(timing_2);
197 observer.DidCommitProvisionalLoad(true, false); 197 observer.DidCommitProvisionalLoad(true, false);
198 mock_timer2->Fire(); 198 mock_timer2->Fire();
199 199
200 timing_2.first_layout = first_layout_2; 200 timing_2.document_timing.first_layout = first_layout_2;
201 timing_2.dom_content_loaded_event_start = dom_event_2; 201 timing_2.document_timing.dom_content_loaded_event_start = dom_event_2;
202 timing_2.load_event_start = load_event_2; 202 timing_2.document_timing.load_event_start = load_event_2;
203 observer.ExpectPageLoadTiming(timing_2); 203 observer.ExpectPageLoadTiming(timing_2);
204 204
205 observer.DidChangePerformanceTiming(); 205 observer.DidChangePerformanceTiming();
206 mock_timer2->Fire(); 206 mock_timer2->Fire();
207 } 207 }
208 208
209 TEST_F(MetricsRenderFrameObserverTest, NoUpdatesFromChildFrames) { 209 TEST_F(MetricsRenderFrameObserverTest, NoUpdatesFromChildFrames) {
210 base::Time nav_start = base::Time::FromDoubleT(10); 210 base::Time nav_start = base::Time::FromDoubleT(10);
211 211
212 TestMetricsRenderFrameObserver observer; 212 TestMetricsRenderFrameObserver observer;
213 base::MockTimer* mock_timer = new base::MockTimer(false, false); 213 base::MockTimer* mock_timer = new base::MockTimer(false, false);
214 observer.set_mock_timer(base::WrapUnique(mock_timer)); 214 observer.set_mock_timer(base::WrapUnique(mock_timer));
215 observer.set_is_main_frame(false); 215 observer.set_is_main_frame(false);
216 216
217 PageLoadTiming timing; 217 PageLoadTiming timing;
218 timing.navigation_start = nav_start; 218 timing.navigation_start = nav_start;
219 observer.SetFakePageLoadTiming(timing); 219 observer.SetFakePageLoadTiming(timing);
220 observer.DidCommitProvisionalLoad(true, false); 220 observer.DidCommitProvisionalLoad(true, false);
221 ASSERT_FALSE(observer.WasFakeTimingConsumed()); 221 ASSERT_FALSE(observer.WasFakeTimingConsumed());
222 ASSERT_FALSE(mock_timer->IsRunning()); 222 ASSERT_FALSE(mock_timer->IsRunning());
223 223
224 observer.DidChangePerformanceTiming(); 224 observer.DidChangePerformanceTiming();
225 ASSERT_FALSE(observer.WasFakeTimingConsumed()); 225 ASSERT_FALSE(observer.WasFakeTimingConsumed());
226 ASSERT_FALSE(mock_timer->IsRunning()); 226 ASSERT_FALSE(mock_timer->IsRunning());
227 } 227 }
228 228
229 } // namespace page_load_metrics 229 } // namespace page_load_metrics
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698