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

Side by Side Diff: components/cronet/android/test/javatests/src/org/chromium/net/RequestFinishedInfoTest.java

Issue 2351793003: Implement timing metrics for UrlRequest (Closed)
Patch Set: New test, and some rearranging things Created 4 years, 2 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 package org.chromium.net; 5 package org.chromium.net;
6 6
7 import static org.chromium.base.CollectionUtil.newHashSet; 7 import static org.chromium.base.CollectionUtil.newHashSet;
8 8
9 import android.test.suitebuilder.annotation.SmallTest; 9 import android.test.suitebuilder.annotation.SmallTest;
10 10
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 } 59 }
60 60
61 public void joinAll() throws InterruptedException { 61 public void joinAll() throws InterruptedException {
62 for (Thread thread : mThreads) { 62 for (Thread thread : mThreads) {
63 thread.join(); 63 thread.join();
64 } 64 }
65 } 65 }
66 } 66 }
67 67
68 @SmallTest 68 @SmallTest
69 @OnlyRunNativeCronet
69 @Feature({"Cronet"}) 70 @Feature({"Cronet"})
70 @SuppressWarnings("deprecation") 71 @SuppressWarnings("deprecation")
71 public void testRequestFinishedListener() throws Exception { 72 public void testRequestFinishedListener() throws Exception {
72 mTestFramework = startCronetTestFramework(); 73 mTestFramework = startCronetTestFramework();
73 TestExecutor testExecutor = new TestExecutor(); 74 TestExecutor testExecutor = new TestExecutor();
74 TestRequestFinishedListener requestFinishedListener = 75 TestRequestFinishedListener requestFinishedListener =
75 new TestRequestFinishedListener(testExecutor); 76 new TestRequestFinishedListener(testExecutor);
76 mTestFramework.mCronetEngine.addRequestFinishedListener(requestFinishedL istener); 77 mTestFramework.mCronetEngine.addRequestFinishedListener(requestFinishedL istener);
77 TestUrlRequestCallback callback = new TestUrlRequestCallback(); 78 TestUrlRequestCallback callback = new TestUrlRequestCallback();
78 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( 79 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(
79 mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEn gine); 80 mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEn gine);
81 Date startTime = new Date();
80 urlRequestBuilder.addRequestAnnotation("request annotation") 82 urlRequestBuilder.addRequestAnnotation("request annotation")
81 .addRequestAnnotation(this) 83 .addRequestAnnotation(this)
82 .build() 84 .build()
83 .start(); 85 .start();
84 callback.blockForDone(); 86 callback.blockForDone();
87 Date endTime = new Date();
88 Thread.sleep(1000);
85 testExecutor.runAllTasks(); 89 testExecutor.runAllTasks();
86 90
87 RequestFinishedInfo requestInfo = requestFinishedListener.getRequestInfo (); 91 RequestFinishedInfo requestInfo = requestFinishedListener.getRequestInfo ();
88 assertNotNull("RequestFinishedInfo.Listener must be called", requestInfo ); 92 assertNotNull("RequestFinishedInfo.Listener must be called", requestInfo );
89 assertEquals(mUrl, requestInfo.getUrl()); 93 assertEquals(mUrl, requestInfo.getUrl());
90 assertNotNull(requestInfo.getResponseInfo()); 94 assertNotNull(requestInfo.getResponseInfo());
91 assertEquals(newHashSet("request annotation", this), // Use sets for uno rdered comparison. 95 assertEquals(newHashSet("request annotation", this), // Use sets for uno rdered comparison.
92 new HashSet<Object>(requestInfo.getAnnotations())); 96 new HashSet<Object>(requestInfo.getAnnotations()));
93 RequestFinishedInfo.Metrics metrics = requestInfo.getMetrics(); 97 RequestFinishedInfo.Metrics metrics = requestInfo.getMetrics();
94 assertNotNull("RequestFinishedInfo.getMetrics() must not be null", metri cs); 98 assertNotNull("RequestFinishedInfo.getMetrics() must not be null", metri cs);
99 // Check old (deprecated) timing metrics
95 assertTrue(metrics.getTotalTimeMs() > 0); 100 assertTrue(metrics.getTotalTimeMs() > 0);
96 assertTrue(metrics.getTotalTimeMs() >= metrics.getTtfbMs()); 101 assertTrue(metrics.getTotalTimeMs() >= metrics.getTtfbMs());
102 // Check new timing metrics
103 MetricsTestUtil.checkTimingMetrics(metrics, startTime, endTime);
104 MetricsTestUtil.checkHasConnectTiming(metrics, startTime, endTime, false );
105 assertNull(metrics.getPushStart());
106 assertNull(metrics.getPushEnd());
107 // Check data use metrics
97 assertTrue(metrics.getReceivedBytesCount() > 0); 108 assertTrue(metrics.getReceivedBytesCount() > 0);
98 mTestFramework.mCronetEngine.shutdown(); 109 mTestFramework.mCronetEngine.shutdown();
99 } 110 }
100 111
101 @SmallTest 112 @SmallTest
113 @OnlyRunNativeCronet
102 @Feature({"Cronet"}) 114 @Feature({"Cronet"})
103 @SuppressWarnings("deprecation") 115 @SuppressWarnings("deprecation")
104 public void testRequestFinishedListenerDirectExecutor() throws Exception { 116 public void testRequestFinishedListenerDirectExecutor() throws Exception {
105 mTestFramework = startCronetTestFramework(); 117 mTestFramework = startCronetTestFramework();
106 Executor testExecutor = new DirectExecutor(); 118 Executor testExecutor = new DirectExecutor();
107 TestRequestFinishedListener requestFinishedListener = 119 TestRequestFinishedListener requestFinishedListener =
108 new TestRequestFinishedListener(testExecutor); 120 new TestRequestFinishedListener(testExecutor);
109 mTestFramework.mCronetEngine.addRequestFinishedListener(requestFinishedL istener); 121 mTestFramework.mCronetEngine.addRequestFinishedListener(requestFinishedL istener);
110 TestUrlRequestCallback callback = new TestUrlRequestCallback(); 122 TestUrlRequestCallback callback = new TestUrlRequestCallback();
111 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( 123 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(
112 mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEn gine); 124 mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEn gine);
125 Date startTime = new Date();
113 urlRequestBuilder.addRequestAnnotation("request annotation") 126 urlRequestBuilder.addRequestAnnotation("request annotation")
114 .addRequestAnnotation(this) 127 .addRequestAnnotation(this)
115 .build() 128 .build()
116 .start(); 129 .start();
117 callback.blockForDone(); 130 callback.blockForDone();
131 Date endTime = new Date();
132 Thread.sleep(1000);
118 133
119 RequestFinishedInfo requestInfo = requestFinishedListener.getRequestInfo (); 134 RequestFinishedInfo requestInfo = requestFinishedListener.getRequestInfo ();
120 assertNotNull("RequestFinishedInfo.Listener must be called", requestInfo ); 135 assertNotNull("RequestFinishedInfo.Listener must be called", requestInfo );
121 assertEquals(mUrl, requestInfo.getUrl()); 136 assertEquals(mUrl, requestInfo.getUrl());
122 assertNotNull(requestInfo.getResponseInfo()); 137 assertNotNull(requestInfo.getResponseInfo());
123 assertEquals(newHashSet("request annotation", this), // Use sets for uno rdered comparison. 138 assertEquals(newHashSet("request annotation", this), // Use sets for uno rdered comparison.
124 new HashSet<Object>(requestInfo.getAnnotations())); 139 new HashSet<Object>(requestInfo.getAnnotations()));
125 RequestFinishedInfo.Metrics metrics = requestInfo.getMetrics(); 140 RequestFinishedInfo.Metrics metrics = requestInfo.getMetrics();
126 assertNotNull("RequestFinishedInfo.getMetrics() must not be null", metri cs); 141 assertNotNull("RequestFinishedInfo.getMetrics() must not be null", metri cs);
127 assertTrue(metrics.getTotalTimeMs() > 0); 142 assertTrue(metrics.getTotalTimeMs() > 0);
128 assertTrue(metrics.getTotalTimeMs() >= metrics.getTtfbMs()); 143 assertTrue(metrics.getTotalTimeMs() >= metrics.getTtfbMs());
144 MetricsTestUtil.checkTimingMetrics(metrics, startTime, endTime);
145 MetricsTestUtil.checkHasConnectTiming(metrics, startTime, endTime, false );
129 assertTrue(metrics.getReceivedBytesCount() > 0); 146 assertTrue(metrics.getReceivedBytesCount() > 0);
130 mTestFramework.mCronetEngine.shutdown(); 147 mTestFramework.mCronetEngine.shutdown();
131 } 148 }
132 149
133 @SmallTest 150 @SmallTest
151 @OnlyRunNativeCronet
134 @Feature({"Cronet"}) 152 @Feature({"Cronet"})
135 @SuppressWarnings("deprecation") 153 @SuppressWarnings("deprecation")
136 public void testRequestFinishedListenerDifferentThreads() throws Exception { 154 public void testRequestFinishedListenerDifferentThreads() throws Exception {
137 mTestFramework = startCronetTestFramework(); 155 mTestFramework = startCronetTestFramework();
138 ThreadExecutor testExecutor = new ThreadExecutor(); 156 ThreadExecutor testExecutor = new ThreadExecutor();
139 TestRequestFinishedListener firstListener = new TestRequestFinishedListe ner(testExecutor); 157 TestRequestFinishedListener firstListener = new TestRequestFinishedListe ner(testExecutor);
140 TestRequestFinishedListener secondListener = new TestRequestFinishedList ener(testExecutor); 158 TestRequestFinishedListener secondListener = new TestRequestFinishedList ener(testExecutor);
141 mTestFramework.mCronetEngine.addRequestFinishedListener(firstListener); 159 mTestFramework.mCronetEngine.addRequestFinishedListener(firstListener);
142 mTestFramework.mCronetEngine.addRequestFinishedListener(secondListener); 160 mTestFramework.mCronetEngine.addRequestFinishedListener(secondListener);
143 TestUrlRequestCallback callback = new TestUrlRequestCallback(); 161 TestUrlRequestCallback callback = new TestUrlRequestCallback();
144 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( 162 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(
145 mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEn gine); 163 mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEn gine);
164 Date startTime = new Date();
146 urlRequestBuilder.addRequestAnnotation("request annotation") 165 urlRequestBuilder.addRequestAnnotation("request annotation")
147 .addRequestAnnotation(this) 166 .addRequestAnnotation(this)
148 .build() 167 .build()
149 .start(); 168 .start();
150 callback.blockForDone(); 169 callback.blockForDone();
170 Date endTime = new Date();
171 Thread.sleep(1000);
151 testExecutor.joinAll(); 172 testExecutor.joinAll();
152 173
153 RequestFinishedInfo firstRequestInfo = firstListener.getRequestInfo(); 174 RequestFinishedInfo firstRequestInfo = firstListener.getRequestInfo();
154 RequestFinishedInfo secondRequestInfo = secondListener.getRequestInfo(); 175 RequestFinishedInfo secondRequestInfo = secondListener.getRequestInfo();
155 assertNotNull("First RequestFinishedInfo.Listener must be called", first RequestInfo); 176 assertNotNull("First RequestFinishedInfo.Listener must be called", first RequestInfo);
156 assertNotNull("Second RequestFinishedInfo.Listener must be called", seco ndRequestInfo); 177 assertNotNull("Second RequestFinishedInfo.Listener must be called", seco ndRequestInfo);
157 assertEquals(mUrl, firstRequestInfo.getUrl()); 178 assertEquals(mUrl, firstRequestInfo.getUrl());
158 assertEquals(mUrl, secondRequestInfo.getUrl()); 179 assertEquals(mUrl, secondRequestInfo.getUrl());
159 assertNotNull(firstRequestInfo.getResponseInfo()); 180 assertNotNull(firstRequestInfo.getResponseInfo());
160 assertNotNull(secondRequestInfo.getResponseInfo()); 181 assertNotNull(secondRequestInfo.getResponseInfo());
161 assertEquals(newHashSet("request annotation", this), // Use sets for uno rdered comparison. 182 assertEquals(newHashSet("request annotation", this), // Use sets for uno rdered comparison.
162 new HashSet<Object>(firstRequestInfo.getAnnotations())); 183 new HashSet<Object>(firstRequestInfo.getAnnotations()));
163 assertEquals(newHashSet("request annotation", this), 184 assertEquals(newHashSet("request annotation", this),
164 new HashSet<Object>(secondRequestInfo.getAnnotations())); 185 new HashSet<Object>(secondRequestInfo.getAnnotations()));
165 RequestFinishedInfo.Metrics firstMetrics = firstRequestInfo.getMetrics() ; 186 RequestFinishedInfo.Metrics firstMetrics = firstRequestInfo.getMetrics() ;
166 assertNotNull("RequestFinishedInfo.getMetrics() must not be null", first Metrics); 187 assertNotNull("RequestFinishedInfo.getMetrics() must not be null", first Metrics);
167 assertTrue(firstMetrics.getTotalTimeMs() > 0); 188 assertTrue(firstMetrics.getTotalTimeMs() > 0);
168 assertTrue(firstMetrics.getTotalTimeMs() >= firstMetrics.getTtfbMs()); 189 assertTrue(firstMetrics.getTotalTimeMs() >= firstMetrics.getTtfbMs());
190 MetricsTestUtil.checkTimingMetrics(firstMetrics, startTime, endTime);
191 MetricsTestUtil.checkHasConnectTiming(firstMetrics, startTime, endTime, false);
169 assertTrue(firstMetrics.getReceivedBytesCount() > 0); 192 assertTrue(firstMetrics.getReceivedBytesCount() > 0);
170 RequestFinishedInfo.Metrics secondMetrics = secondRequestInfo.getMetrics (); 193 RequestFinishedInfo.Metrics secondMetrics = secondRequestInfo.getMetrics ();
171 assertNotNull("RequestFinishedInfo.getMetrics() must not be null", secon dMetrics); 194 assertNotNull("RequestFinishedInfo.getMetrics() must not be null", secon dMetrics);
172 assertTrue(secondMetrics.getTotalTimeMs() > 0); 195 assertTrue(secondMetrics.getTotalTimeMs() > 0);
173 assertTrue(secondMetrics.getTotalTimeMs() >= secondMetrics.getTtfbMs()); 196 assertTrue(secondMetrics.getTotalTimeMs() >= secondMetrics.getTtfbMs());
197 MetricsTestUtil.checkTimingMetrics(secondMetrics, startTime, endTime);
198 MetricsTestUtil.checkHasConnectTiming(secondMetrics, startTime, endTime, false);
174 assertTrue(secondMetrics.getReceivedBytesCount() > 0); 199 assertTrue(secondMetrics.getReceivedBytesCount() > 0);
175 mTestFramework.mCronetEngine.shutdown(); 200 mTestFramework.mCronetEngine.shutdown();
176 } 201 }
177 202
178 @SmallTest 203 @SmallTest
204 @OnlyRunNativeCronet
179 @Feature({"Cronet"}) 205 @Feature({"Cronet"})
180 @SuppressWarnings("deprecation") 206 @SuppressWarnings("deprecation")
181 public void testRequestFinishedListenerFailedRequest() throws Exception { 207 public void testRequestFinishedListenerFailedRequest() throws Exception {
182 String connectionRefusedUrl = "http://127.0.0.1:3"; 208 String connectionRefusedUrl = "http://127.0.0.1:3";
183 mTestFramework = startCronetTestFramework(); 209 mTestFramework = startCronetTestFramework();
184 TestExecutor testExecutor = new TestExecutor(); 210 TestExecutor testExecutor = new TestExecutor();
185 TestRequestFinishedListener requestFinishedListener = 211 TestRequestFinishedListener requestFinishedListener =
186 new TestRequestFinishedListener(testExecutor); 212 new TestRequestFinishedListener(testExecutor);
187 mTestFramework.mCronetEngine.addRequestFinishedListener(requestFinishedL istener); 213 mTestFramework.mCronetEngine.addRequestFinishedListener(requestFinishedL istener);
188 TestUrlRequestCallback callback = new TestUrlRequestCallback(); 214 TestUrlRequestCallback callback = new TestUrlRequestCallback();
189 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(connection RefusedUrl, 215 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(connection RefusedUrl,
190 callback, callback.getExecutor(), mTestFramework.mCronetEngine); 216 callback, callback.getExecutor(), mTestFramework.mCronetEngine);
217 Date startTime = new Date();
191 urlRequestBuilder.build().start(); 218 urlRequestBuilder.build().start();
192 callback.blockForDone(); 219 callback.blockForDone();
220 Date endTime = new Date();
193 assertTrue(callback.mOnErrorCalled); 221 assertTrue(callback.mOnErrorCalled);
222 Thread.sleep(1000);
194 testExecutor.runAllTasks(); 223 testExecutor.runAllTasks();
195 224
196 RequestFinishedInfo requestInfo = requestFinishedListener.getRequestInfo (); 225 RequestFinishedInfo requestInfo = requestFinishedListener.getRequestInfo ();
197 assertNotNull("RequestFinishedInfo.Listener must be called", requestInfo ); 226 assertNotNull("RequestFinishedInfo.Listener must be called", requestInfo );
198 assertEquals(connectionRefusedUrl, requestInfo.getUrl()); 227 assertEquals(connectionRefusedUrl, requestInfo.getUrl());
199 assertTrue(requestInfo.getAnnotations().isEmpty()); 228 assertTrue(requestInfo.getAnnotations().isEmpty());
200 RequestFinishedInfo.Metrics metrics = requestInfo.getMetrics(); 229 RequestFinishedInfo.Metrics metrics = requestInfo.getMetrics();
201 assertNotNull("RequestFinishedInfo.getMetrics() must not be null", metri cs); 230 assertNotNull("RequestFinishedInfo.getMetrics() must not be null", metri cs);
202 // The failure is occasionally fast enough that time reported is 0, so j ust check for null 231 // The failure is occasionally fast enough that time reported is 0, so j ust check for null
203 assertNotNull(metrics.getTotalTimeMs()); 232 assertNotNull(metrics.getTotalTimeMs());
204 assertNull(metrics.getTtfbMs()); 233 assertNull(metrics.getTtfbMs());
234
235 // Check the timing metrics
236 assertNotNull(metrics.getRequestStart());
237 assertTrue(metrics.getRequestStart().after(startTime));
238 MetricsTestUtil.checkNoConnectTiming(metrics);
239 assertNull(metrics.getSendingStart());
240 assertNull(metrics.getSendingEnd());
241 assertNull(metrics.getResponseStart());
242 assertNotNull(metrics.getResponseEnd());
243 assertTrue(metrics.getResponseEnd().before(endTime));
244 // Entire request should take more than 0 ms
245 assertTrue(metrics.getResponseEnd().getTime() - metrics.getRequestStart( ).getTime() > 0);
246
205 assertTrue(metrics.getReceivedBytesCount() == null || metrics.getReceive dBytesCount() == 0); 247 assertTrue(metrics.getReceivedBytesCount() == null || metrics.getReceive dBytesCount() == 0);
206 mTestFramework.mCronetEngine.shutdown(); 248 mTestFramework.mCronetEngine.shutdown();
207 } 249 }
208 250
209 @SmallTest 251 @SmallTest
252 @OnlyRunNativeCronet
210 @Feature({"Cronet"}) 253 @Feature({"Cronet"})
211 @SuppressWarnings("deprecation") 254 @SuppressWarnings("deprecation")
212 public void testRequestFinishedListenerRemoved() throws Exception { 255 public void testRequestFinishedListenerRemoved() throws Exception {
213 mTestFramework = startCronetTestFramework(); 256 mTestFramework = startCronetTestFramework();
214 TestExecutor testExecutor = new TestExecutor(); 257 TestExecutor testExecutor = new TestExecutor();
215 TestRequestFinishedListener requestFinishedListener = 258 TestRequestFinishedListener requestFinishedListener =
216 new TestRequestFinishedListener(testExecutor); 259 new TestRequestFinishedListener(testExecutor);
217 mTestFramework.mCronetEngine.addRequestFinishedListener(requestFinishedL istener); 260 mTestFramework.mCronetEngine.addRequestFinishedListener(requestFinishedL istener);
218 mTestFramework.mCronetEngine.removeRequestFinishedListener(requestFinish edListener);
219 TestUrlRequestCallback callback = new TestUrlRequestCallback(); 261 TestUrlRequestCallback callback = new TestUrlRequestCallback();
220 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( 262 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(
221 mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEn gine); 263 mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEn gine);
222 urlRequestBuilder.build().start(); 264 UrlRequest request = urlRequestBuilder.build();
265 mTestFramework.mCronetEngine.removeRequestFinishedListener(requestFinish edListener);
266 request.start();
223 callback.blockForDone(); 267 callback.blockForDone();
224 testExecutor.runAllTasks(); 268 testExecutor.runAllTasks();
225 269
226 assertNull("RequestFinishedInfo.Listener must not be called", 270 assertNull("RequestFinishedInfo.Listener must not be called",
227 requestFinishedListener.getRequestInfo()); 271 requestFinishedListener.getRequestInfo());
228 mTestFramework.mCronetEngine.shutdown(); 272 mTestFramework.mCronetEngine.shutdown();
229 } 273 }
230 274
231 @SmallTest 275 @SmallTest
276 @OnlyRunNativeCronet
277 @Feature({"Cronet"})
278 public void testRequestFinishedListenerCanceledRequest() throws Exception {
279 mTestFramework = startCronetTestFramework();
280 TestExecutor testExecutor = new TestExecutor();
281 TestRequestFinishedListener requestFinishedListener =
282 new TestRequestFinishedListener(testExecutor);
283 mTestFramework.mCronetEngine.addRequestFinishedListener(requestFinishedL istener);
284 TestUrlRequestCallback callback = new TestUrlRequestCallback() {
285 @Override
286 public void onResponseStarted(UrlRequest request, UrlResponseInfo in fo) {
287 super.onResponseStarted(request, info);
288 request.cancel();
289 }
290 };
291 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(
292 mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEn gine);
293 Date startTime = new Date();
294 urlRequestBuilder.addRequestAnnotation("request annotation")
295 .addRequestAnnotation(this)
296 .build()
297 .start();
298 callback.blockForDone();
299 Date endTime = new Date();
300 testExecutor.runAllTasks();
301 Thread.sleep(1000);
302
303 RequestFinishedInfo requestInfo = requestFinishedListener.getRequestInfo ();
304 assertNotNull("RequestFinishedInfo.Listener must be called", requestInfo );
305 assertEquals(mUrl, requestInfo.getUrl());
306 assertNotNull(requestInfo.getResponseInfo());
307 assertEquals(newHashSet("request annotation", this), // Use sets for uno rdered comparison.
308 new HashSet<Object>(requestInfo.getAnnotations()));
309 RequestFinishedInfo.Metrics metrics = requestInfo.getMetrics();
310 assertNotNull("RequestFinishedInfo.getMetrics() must not be null", metri cs);
311 // Check old (deprecated) timing metrics
312 assertTrue(metrics.getTotalTimeMs() > 0);
313 assertTrue(metrics.getTotalTimeMs() >= metrics.getTtfbMs());
314 // Check new timing metrics
315 MetricsTestUtil.checkTimingMetrics(metrics, startTime, endTime);
316 MetricsTestUtil.checkHasConnectTiming(metrics, startTime, endTime, false );
317 assertNull(metrics.getPushStart());
318 assertNull(metrics.getPushEnd());
319 // Check data use metrics
320 assertTrue(metrics.getReceivedBytesCount() > 0);
321 mTestFramework.mCronetEngine.shutdown();
322 }
323
324 @SmallTest
232 @Feature({"Cronet"}) 325 @Feature({"Cronet"})
233 public void testMetricsGetters() throws Exception { 326 public void testMetricsGetters() throws Exception {
234 long requestStart = 1; 327 long requestStart = 1;
235 long dnsStart = 2; 328 long dnsStart = 2;
236 long dnsEnd = -1; 329 long dnsEnd = -1;
237 long connectStart = 4; 330 long connectStart = 4;
238 long connectEnd = 5; 331 long connectEnd = 5;
239 long sslStart = 6; 332 long sslStart = 6;
240 long sslEnd = 7; 333 long sslEnd = 7;
241 long sendingStart = 8; 334 long sendingStart = 8;
(...skipping 20 matching lines...) Expand all
262 assertEquals(new Date(sslEnd), metrics.getSslEnd()); 355 assertEquals(new Date(sslEnd), metrics.getSslEnd());
263 assertEquals(new Date(pushStart), metrics.getPushStart()); 356 assertEquals(new Date(pushStart), metrics.getPushStart());
264 assertEquals(new Date(pushEnd), metrics.getPushEnd()); 357 assertEquals(new Date(pushEnd), metrics.getPushEnd());
265 assertEquals(new Date(responseStart), metrics.getResponseStart()); 358 assertEquals(new Date(responseStart), metrics.getResponseStart());
266 assertEquals(new Date(responseEnd), metrics.getResponseEnd()); 359 assertEquals(new Date(responseEnd), metrics.getResponseEnd());
267 assertEquals(socketReused, metrics.getSocketReused()); 360 assertEquals(socketReused, metrics.getSocketReused());
268 assertEquals(sentBytesCount, (long) metrics.getSentBytesCount()); 361 assertEquals(sentBytesCount, (long) metrics.getSentBytesCount());
269 assertEquals(receivedBytesCount, (long) metrics.getReceivedBytesCount()) ; 362 assertEquals(receivedBytesCount, (long) metrics.getReceivedBytesCount()) ;
270 } 363 }
271 } 364 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698