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

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

Issue 2360813003: [Cronet] Pass metrics information from C++ BidirectionalStream to Java (Closed)
Patch Set: self review 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
11 import org.chromium.base.test.util.Feature; 11 import org.chromium.base.test.util.Feature;
12 import org.chromium.net.CronetTestBase.OnlyRunNativeCronet; 12 import org.chromium.net.CronetTestBase.OnlyRunNativeCronet;
13 import org.chromium.net.MetricsTestUtil.TestExecutor;
14 import org.chromium.net.MetricsTestUtil.TestRequestFinishedListener; 13 import org.chromium.net.MetricsTestUtil.TestRequestFinishedListener;
xunjieli 2016/10/05 19:00:28 Any idea on why presubmit script gives the followi
mgersh 2016/10/05 19:36:47 I think this must have been a recent change to the
xunjieli 2016/10/06 03:51:47 Done. That's good to know. Thanks!
15 import org.json.JSONObject; 14 import org.json.JSONObject;
16 15
17 import java.nio.ByteBuffer; 16 import java.nio.ByteBuffer;
18 import java.util.HashSet; 17 import java.util.HashSet;
19 18
20 /** 19 /**
21 * Tests functionality of BidirectionalStream's QUIC implementation. 20 * Tests functionality of BidirectionalStream's QUIC implementation.
22 */ 21 */
23 public class BidirectionalStreamQuicTest extends CronetTestBase { 22 public class BidirectionalStreamQuicTest extends CronetTestBase {
24 private CronetTestFramework mTestFramework; 23 private CronetTestFramework mTestFramework;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 public void testSimplePost() throws Exception { 86 public void testSimplePost() throws Exception {
88 setUp(QuicBidirectionalStreams.ENABLED); 87 setUp(QuicBidirectionalStreams.ENABLED);
89 String path = "/simple.txt"; 88 String path = "/simple.txt";
90 String quicURL = QuicTestServer.getServerURL() + path; 89 String quicURL = QuicTestServer.getServerURL() + path;
91 TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCa llback(); 90 TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCa llback();
92 // Although we have no way to verify data sent at this point, this test 91 // Although we have no way to verify data sent at this point, this test
93 // can make sure that onWriteCompleted is invoked appropriately. 92 // can make sure that onWriteCompleted is invoked appropriately.
94 callback.addWriteData("Test String".getBytes()); 93 callback.addWriteData("Test String".getBytes());
95 callback.addWriteData("1234567890".getBytes()); 94 callback.addWriteData("1234567890".getBytes());
96 callback.addWriteData("woot!".getBytes()); 95 callback.addWriteData("woot!".getBytes());
97 TestExecutor testExecutor = new TestExecutor(); 96 TestRequestFinishedListener requestFinishedListener = new TestRequestFin ishedListener();
98 TestRequestFinishedListener requestFinishedListener =
99 new TestRequestFinishedListener(testExecutor);
100 mTestFramework.mCronetEngine.addRequestFinishedListener(requestFinishedL istener); 97 mTestFramework.mCronetEngine.addRequestFinishedListener(requestFinishedL istener);
101 BidirectionalStream stream = new BidirectionalStream 98 BidirectionalStream stream = new BidirectionalStream
102 .Builder(quicURL, callback, callbac k.getExecutor(), 99 .Builder(quicURL, callback, callbac k.getExecutor(),
103 mTestFramework.mCronetEngin e) 100 mTestFramework.mCronetEngin e)
104 .addHeader("foo", "bar") 101 .addHeader("foo", "bar")
105 .addHeader("empty", "") 102 .addHeader("empty", "")
106 .addHeader("Content-Type", "zebra") 103 .addHeader("Content-Type", "zebra")
107 .addRequestAnnotation("request anno tation") 104 .addRequestAnnotation("request anno tation")
108 .addRequestAnnotation(this) 105 .addRequestAnnotation(this)
109 .build(); 106 .build();
110 stream.start(); 107 stream.start();
111 callback.blockForDone(); 108 callback.blockForDone();
112 testExecutor.runAllTasks();
113 assertTrue(stream.isDone()); 109 assertTrue(stream.isDone());
110 requestFinishedListener.blockUntilDone();
mgersh 2016/10/05 19:36:47 Can we also do some checks on the timing metrics h
xunjieli 2016/10/06 03:51:47 Done.
114 RequestFinishedInfo finishedInfo = requestFinishedListener.getRequestInf o(); 111 RequestFinishedInfo finishedInfo = requestFinishedListener.getRequestInf o();
115 assertNotNull("RequestFinishedInfo.Listener must be called", finishedInf o); 112 assertNotNull("RequestFinishedInfo.Listener must be called", finishedInf o);
116 assertEquals(quicURL, finishedInfo.getUrl()); 113 assertEquals(quicURL, finishedInfo.getUrl());
117 assertEquals(newHashSet("request annotation", this), 114 assertEquals(newHashSet("request annotation", this),
118 new HashSet<Object>(finishedInfo.getAnnotations())); 115 new HashSet<Object>(finishedInfo.getAnnotations()));
119 assertNotNull(finishedInfo.getResponseInfo()); 116 assertNotNull(finishedInfo.getResponseInfo());
120 // TODO(xunjieli): Check other fields once metrics support is in crbug.c om/648346. 117 // TODO(xunjieli): Check other fields once metrics support is in crbug.c om/648346.
121 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); 118 assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
122 assertEquals("This is a simple text file served by QUIC.\n", callback.mR esponseAsString); 119 assertEquals("This is a simple text file served by QUIC.\n", callback.mR esponseAsString);
123 assertEquals("quic/1+spdy/3", callback.mResponseInfo.getNegotiatedProtoc ol()); 120 assertEquals("quic/1+spdy/3", callback.mResponseInfo.getNegotiatedProtoc ol());
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 builder.enableQuic(true); 359 builder.enableQuic(true);
363 builder.setMockCertVerifierForTesting(QuicTestServer.createMockCertVerif ier()); 360 builder.setMockCertVerifierForTesting(QuicTestServer.createMockCertVerif ier());
364 builder.setCertVerifierData(serialized_data); 361 builder.setCertVerifierData(serialized_data);
365 362
366 CronetTestFramework testFramework = 363 CronetTestFramework testFramework =
367 startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, buil der); 364 startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, buil der);
368 String deserialized_data = testFramework.mCronetEngine.getCertVerifierDa ta(100); 365 String deserialized_data = testFramework.mCronetEngine.getCertVerifierDa ta(100);
369 assertEquals(deserialized_data, serialized_data); 366 assertEquals(deserialized_data, serialized_data);
370 } 367 }
371 } 368 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698