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

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

Issue 1901303004: [ Don't commit ] Add FromGWS variants to the AbortTiming metrics (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: bmcquade@ review, cleanup Created 4 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 (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 "components/page_load_metrics/renderer/metrics_render_frame_observer.h" 5 #include "components/page_load_metrics/renderer/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 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 StrictMock<MockIPCInterceptor> interceptor_; 74 StrictMock<MockIPCInterceptor> interceptor_;
75 mutable std::unique_ptr<base::Timer> mock_timer_; 75 mutable std::unique_ptr<base::Timer> mock_timer_;
76 }; 76 };
77 77
78 typedef testing::Test MetricsRenderFrameObserverTest; 78 typedef testing::Test MetricsRenderFrameObserverTest;
79 79
80 TEST_F(MetricsRenderFrameObserverTest, NoMetrics) { 80 TEST_F(MetricsRenderFrameObserverTest, NoMetrics) {
81 NiceMock<MockMetricsRenderFrameObserver> observer; 81 NiceMock<MockMetricsRenderFrameObserver> observer;
82 base::MockTimer* mock_timer = new base::MockTimer(false, false); 82 base::MockTimer* mock_timer = new base::MockTimer(false, false);
83 observer.set_mock_timer(base::WrapUnique(mock_timer)); 83 observer.set_mock_timer(base::WrapUnique(mock_timer));
84 observer.DidCommitProvisionalLoad(true, false);
85 84
86 EXPECT_CALL(observer, GetTiming()).WillRepeatedly(Return(PageLoadTiming())); 85 EXPECT_CALL(observer, GetTiming()).WillRepeatedly(Return(PageLoadTiming()));
86
87 observer.DidChangePerformanceTiming(); 87 observer.DidChangePerformanceTiming();
88 ASSERT_FALSE(mock_timer->IsRunning()); 88 ASSERT_FALSE(mock_timer->IsRunning());
89 } 89 }
90 90
91 TEST_F(MetricsRenderFrameObserverTest, SingleMetric) { 91 TEST_F(MetricsRenderFrameObserverTest, SingleMetric) {
92 base::Time nav_start = base::Time::FromDoubleT(10); 92 base::Time nav_start = base::Time::FromDoubleT(10);
93 base::TimeDelta first_layout = base::TimeDelta::FromMillisecondsD(10); 93 base::TimeDelta first_layout = base::TimeDelta::FromMillisecondsD(10);
94 94
95 NiceMock<MockMetricsRenderFrameObserver> observer; 95 NiceMock<MockMetricsRenderFrameObserver> 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 observer.DidCommitProvisionalLoad(true, false);
99 98
100 PageLoadTiming timing; 99 PageLoadTiming timing;
101 timing.navigation_start = nav_start; 100 timing.navigation_start = nav_start;
101 EXPECT_CALL(observer, GetTiming()).WillRepeatedly(Return(timing));
102 observer.DidCommitProvisionalLoad(true, false);
103 EXPECT_CALL(*observer.ipc_interceptor(),
104 OnTimingUpdated(timing, PageLoadMetadata()));
105 mock_timer->Fire();
106
102 timing.first_layout = first_layout; 107 timing.first_layout = first_layout;
103 EXPECT_CALL(observer, GetTiming()).WillRepeatedly(Return(timing)); 108 EXPECT_CALL(observer, GetTiming()).WillRepeatedly(Return(timing));
104 109
105 EXPECT_CALL(*observer.ipc_interceptor(), 110 EXPECT_CALL(*observer.ipc_interceptor(),
106 OnTimingUpdated(timing, PageLoadMetadata())); 111 OnTimingUpdated(timing, PageLoadMetadata()));
107 112
108 observer.DidChangePerformanceTiming(); 113 observer.DidChangePerformanceTiming();
109 mock_timer->Fire(); 114 mock_timer->Fire();
110 } 115 }
111 116
112 TEST_F(MetricsRenderFrameObserverTest, MultipleMetrics) { 117 TEST_F(MetricsRenderFrameObserverTest, MultipleMetrics) {
113 base::Time nav_start = base::Time::FromDoubleT(10); 118 base::Time nav_start = base::Time::FromDoubleT(10);
114 base::TimeDelta first_layout = base::TimeDelta::FromMillisecondsD(2); 119 base::TimeDelta first_layout = base::TimeDelta::FromMillisecondsD(2);
115 base::TimeDelta dom_event = base::TimeDelta::FromMillisecondsD(2); 120 base::TimeDelta dom_event = base::TimeDelta::FromMillisecondsD(2);
116 base::TimeDelta load_event = base::TimeDelta::FromMillisecondsD(2); 121 base::TimeDelta load_event = base::TimeDelta::FromMillisecondsD(2);
117 122
118 NiceMock<MockMetricsRenderFrameObserver> observer; 123 NiceMock<MockMetricsRenderFrameObserver> observer;
119 base::MockTimer* mock_timer = new base::MockTimer(false, false); 124 base::MockTimer* mock_timer = new base::MockTimer(false, false);
120 observer.set_mock_timer(base::WrapUnique(mock_timer)); 125 observer.set_mock_timer(base::WrapUnique(mock_timer));
121 observer.DidCommitProvisionalLoad(true, false);
122 126
123 PageLoadTiming timing; 127 PageLoadTiming timing;
124 timing.navigation_start = nav_start; 128 timing.navigation_start = nav_start;
129 EXPECT_CALL(observer, GetTiming()).WillRepeatedly(Return(timing));
130 observer.DidCommitProvisionalLoad(true, false);
131 EXPECT_CALL(*observer.ipc_interceptor(),
132 OnTimingUpdated(timing, PageLoadMetadata()));
133 mock_timer->Fire();
134
125 timing.first_layout = first_layout; 135 timing.first_layout = first_layout;
126 timing.dom_content_loaded_event_start = dom_event; 136 timing.dom_content_loaded_event_start = dom_event;
127 EXPECT_CALL(observer, GetTiming()).WillRepeatedly(Return(timing)); 137 EXPECT_CALL(observer, GetTiming()).WillRepeatedly(Return(timing));
128 138
129 EXPECT_CALL(*observer.ipc_interceptor(), 139 EXPECT_CALL(*observer.ipc_interceptor(),
130 OnTimingUpdated(timing, PageLoadMetadata())); 140 OnTimingUpdated(timing, PageLoadMetadata()));
131 observer.DidChangePerformanceTiming(); 141 observer.DidChangePerformanceTiming();
132 mock_timer->Fire(); 142 mock_timer->Fire();
133 143
134 // At this point, we should have triggered the generation of two metrics. 144 // At this point, we should have triggered the generation of two metrics.
(...skipping 23 matching lines...) Expand all
158 168
159 TEST_F(MetricsRenderFrameObserverTest, MultipleNavigations) { 169 TEST_F(MetricsRenderFrameObserverTest, MultipleNavigations) {
160 base::Time nav_start = base::Time::FromDoubleT(10); 170 base::Time nav_start = base::Time::FromDoubleT(10);
161 base::TimeDelta first_layout = base::TimeDelta::FromMillisecondsD(2); 171 base::TimeDelta first_layout = base::TimeDelta::FromMillisecondsD(2);
162 base::TimeDelta dom_event = base::TimeDelta::FromMillisecondsD(2); 172 base::TimeDelta dom_event = base::TimeDelta::FromMillisecondsD(2);
163 base::TimeDelta load_event = base::TimeDelta::FromMillisecondsD(2); 173 base::TimeDelta load_event = base::TimeDelta::FromMillisecondsD(2);
164 174
165 NiceMock<MockMetricsRenderFrameObserver> observer; 175 NiceMock<MockMetricsRenderFrameObserver> observer;
166 base::MockTimer* mock_timer = new base::MockTimer(false, false); 176 base::MockTimer* mock_timer = new base::MockTimer(false, false);
167 observer.set_mock_timer(base::WrapUnique(mock_timer)); 177 observer.set_mock_timer(base::WrapUnique(mock_timer));
168 observer.DidCommitProvisionalLoad(true, false);
169 178
170 PageLoadTiming timing; 179 PageLoadTiming timing;
171 timing.navigation_start = nav_start; 180 timing.navigation_start = nav_start;
181 EXPECT_CALL(observer, GetTiming()).WillRepeatedly(Return(timing));
182 observer.DidCommitProvisionalLoad(true, false);
183 EXPECT_CALL(*observer.ipc_interceptor(),
184 OnTimingUpdated(timing, PageLoadMetadata()));
185 mock_timer->Fire();
186
172 timing.first_layout = first_layout; 187 timing.first_layout = first_layout;
173 timing.dom_content_loaded_event_start = dom_event; 188 timing.dom_content_loaded_event_start = dom_event;
174 timing.load_event_start = load_event; 189 timing.load_event_start = load_event;
175 EXPECT_CALL(observer, GetTiming()).WillRepeatedly(Return(timing)); 190 EXPECT_CALL(observer, GetTiming()).WillRepeatedly(Return(timing));
176 EXPECT_CALL(*observer.ipc_interceptor(), 191 EXPECT_CALL(*observer.ipc_interceptor(),
177 OnTimingUpdated(timing, PageLoadMetadata())); 192 OnTimingUpdated(timing, PageLoadMetadata()));
178 observer.DidChangePerformanceTiming(); 193 observer.DidChangePerformanceTiming();
179 mock_timer->Fire(); 194 mock_timer->Fire();
180 195
181 // At this point, we should have triggered the generation of two metrics. 196 // 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 197 // Verify and reset the observer's expectations before moving on to the next
183 // part of the test. 198 // part of the test.
184 testing::Mock::VerifyAndClearExpectations(observer.ipc_interceptor()); 199 testing::Mock::VerifyAndClearExpectations(observer.ipc_interceptor());
185 200
186 base::Time nav_start_2 = base::Time::FromDoubleT(100); 201 base::Time nav_start_2 = base::Time::FromDoubleT(100);
187 base::TimeDelta first_layout_2 = base::TimeDelta::FromMillisecondsD(20); 202 base::TimeDelta first_layout_2 = base::TimeDelta::FromMillisecondsD(20);
188 base::TimeDelta dom_event_2 = base::TimeDelta::FromMillisecondsD(20); 203 base::TimeDelta dom_event_2 = base::TimeDelta::FromMillisecondsD(20);
189 base::TimeDelta load_event_2 = base::TimeDelta::FromMillisecondsD(20); 204 base::TimeDelta load_event_2 = base::TimeDelta::FromMillisecondsD(20);
190 PageLoadTiming timing_2; 205 PageLoadTiming timing_2;
191 timing_2.navigation_start = nav_start_2; 206 timing_2.navigation_start = nav_start_2;
207
208 base::MockTimer* mock_timer2 = new base::MockTimer(false, false);
209 observer.set_mock_timer(base::WrapUnique(mock_timer2));
210
211 EXPECT_CALL(observer, GetTiming()).WillRepeatedly(Return(timing_2));
212 observer.DidCommitProvisionalLoad(true, false);
213 EXPECT_CALL(*observer.ipc_interceptor(),
214 OnTimingUpdated(timing_2, PageLoadMetadata()));
215 mock_timer2->Fire();
216
192 timing_2.first_layout = first_layout_2; 217 timing_2.first_layout = first_layout_2;
193 timing_2.dom_content_loaded_event_start = dom_event_2; 218 timing_2.dom_content_loaded_event_start = dom_event_2;
194 timing_2.load_event_start = load_event_2; 219 timing_2.load_event_start = load_event_2;
220 EXPECT_CALL(observer, GetTiming()).WillRepeatedly(Return(timing_2));
195 221
196 base::MockTimer* mock_timer2 = new base::MockTimer(false, false);
197 observer.set_mock_timer(base::WrapUnique(mock_timer2));
198 observer.DidCommitProvisionalLoad(true, false);
199 EXPECT_CALL(*observer.ipc_interceptor(), 222 EXPECT_CALL(*observer.ipc_interceptor(),
200 OnTimingUpdated(timing, PageLoadMetadata())); 223 OnTimingUpdated(timing_2, PageLoadMetadata()));
201 observer.DidChangePerformanceTiming(); 224 observer.DidChangePerformanceTiming();
202 mock_timer2->Fire(); 225 mock_timer2->Fire();
203 } 226 }
204 227
205 } // namespace page_load_metrics 228 } // namespace page_load_metrics
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698