| Index: components/cronet/android/test/javatests/src/org/chromium/net/QuicTest.java
|
| diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/QuicTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/QuicTest.java
|
| index 55bb669a4533d577e9cc1e6155183aa7dfe494fd..6584737a013bf9c6ed28322d006273be9eefde2e 100644
|
| --- a/components/cronet/android/test/javatests/src/org/chromium/net/QuicTest.java
|
| +++ b/components/cronet/android/test/javatests/src/org/chromium/net/QuicTest.java
|
| @@ -18,6 +18,7 @@ import java.io.File;
|
| import java.io.FileInputStream;
|
| import java.io.FileNotFoundException;
|
| import java.io.IOException;
|
| +import java.util.Date;
|
| import java.util.HashMap;
|
| import java.util.concurrent.Executors;
|
|
|
| @@ -231,4 +232,62 @@ public class QuicTest extends CronetTestBase {
|
|
|
| mTestFramework.mCronetEngine.shutdown();
|
| }
|
| +
|
| + @SmallTest
|
| + @OnlyRunNativeCronet
|
| + @Feature({"Cronet"})
|
| + public void testMetricsWithQuic() throws Exception {
|
| + mTestFramework = startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, mBuilder);
|
| + RequestFinishedInfoTest.TestExecutor testExecutor =
|
| + new RequestFinishedInfoTest.TestExecutor();
|
| + RequestFinishedInfoTest.TestRequestFinishedListener requestFinishedListener =
|
| + new RequestFinishedInfoTest.TestRequestFinishedListener(testExecutor);
|
| + mTestFramework.mCronetEngine.addRequestFinishedListener(requestFinishedListener);
|
| +
|
| + String quicURL = QuicTestServer.getServerURL() + "/simple.txt";
|
| + TestUrlRequestCallback callback = new TestUrlRequestCallback();
|
| +
|
| + UrlRequest.Builder requestBuilder = new UrlRequest.Builder(
|
| + quicURL, callback, callback.getExecutor(), mTestFramework.mCronetEngine);
|
| + Date startTime = new Date();
|
| + requestBuilder.build().start();
|
| + callback.blockForDone();
|
| + Date endTime = new Date();
|
| + testExecutor.runAllTasks();
|
| +
|
| + assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
|
| + assertEquals("quic/1+spdy/3", callback.mResponseInfo.getNegotiatedProtocol());
|
| +
|
| + RequestFinishedInfo requestInfo = requestFinishedListener.mRequestInfo;
|
| + assertNotNull(requestInfo);
|
| + RequestFinishedInfo.Metrics metrics = requestInfo.getMetrics();
|
| + assertNotNull(metrics);
|
| +
|
| + RequestFinishedInfoTest.checkTimingMetrics(metrics, startTime, endTime);
|
| + RequestFinishedInfoTest.checkHasConnectTiming(metrics, startTime, endTime, true);
|
| +
|
| + // Second request should use the same connection and not have ConnectTiming numbers
|
| + callback = new TestUrlRequestCallback();
|
| + requestFinishedListener.reset();
|
| + requestBuilder = new UrlRequest.Builder(
|
| + quicURL, callback, callback.getExecutor(), mTestFramework.mCronetEngine);
|
| + startTime = new Date();
|
| + requestBuilder.build().start();
|
| + callback.blockForDone();
|
| + endTime = new Date();
|
| + testExecutor.runAllTasks();
|
| +
|
| + assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
|
| + assertEquals("quic/1+spdy/3", callback.mResponseInfo.getNegotiatedProtocol());
|
| +
|
| + requestInfo = requestFinishedListener.mRequestInfo;
|
| + assertNotNull(requestInfo);
|
| + metrics = requestInfo.getMetrics();
|
| + assertNotNull(metrics);
|
| +
|
| + RequestFinishedInfoTest.checkTimingMetrics(metrics, startTime, endTime);
|
| + RequestFinishedInfoTest.checkNoConnectTiming(metrics);
|
| +
|
| + mTestFramework.mCronetEngine.shutdown();
|
| + }
|
| }
|
|
|