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

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

Issue 2339223002: Cronet API Refactoring (Closed)
Patch Set: Rebased onto Charles change + Paul's Comments Created 4 years, 3 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 12 matching lines...) Expand all
23 public class BidirectionalStreamQuicTest extends CronetTestBase { 23 public class BidirectionalStreamQuicTest extends CronetTestBase {
24 private CronetTestFramework mTestFramework; 24 private CronetTestFramework mTestFramework;
25 private enum QuicBidirectionalStreams { 25 private enum QuicBidirectionalStreams {
26 ENABLED, 26 ENABLED,
27 DISABLED, 27 DISABLED,
28 } 28 }
29 29
30 private void setUp(QuicBidirectionalStreams enabled) throws Exception { 30 private void setUp(QuicBidirectionalStreams enabled) throws Exception {
31 // Load library first to create MockCertVerifier. 31 // Load library first to create MockCertVerifier.
32 System.loadLibrary("cronet_tests"); 32 System.loadLibrary("cronet_tests");
33 CronetEngine.Builder builder = new CronetEngine.Builder(getContext()); 33 ExperimentalCronetEngine.Builder builder =
34 new ExperimentalCronetEngine.Builder(getContext());
34 35
35 QuicTestServer.startQuicTestServer(getContext()); 36 QuicTestServer.startQuicTestServer(getContext());
36 37
37 builder.enableQuic(true); 38 builder.enableQuic(true);
38 JSONObject quicParams = new JSONObject().put("host_whitelist", "test.exa mple.com"); 39 JSONObject quicParams = new JSONObject().put("host_whitelist", "test.exa mple.com");
39 if (enabled == QuicBidirectionalStreams.DISABLED) { 40 if (enabled == QuicBidirectionalStreams.DISABLED) {
40 quicParams.put("quic_disable_bidirectional_streams", true); 41 quicParams.put("quic_disable_bidirectional_streams", true);
41 } 42 }
42 JSONObject hostResolverParams = CronetTestUtil.generateHostResolverRules (); 43 JSONObject hostResolverParams = CronetTestUtil.generateHostResolverRules ();
43 JSONObject experimentalOptions = new JSONObject() 44 JSONObject experimentalOptions = new JSONObject()
44 .put("QUIC", quicParams) 45 .put("QUIC", quicParams)
45 .put("HostResolverRules", hostR esolverParams); 46 .put("HostResolverRules", hostR esolverParams);
46 builder.setExperimentalOptions(experimentalOptions.toString()); 47 builder.setExperimentalOptions(experimentalOptions.toString());
47 48
48 builder.addQuicHint(QuicTestServer.getServerHost(), QuicTestServer.getSe rverPort(), 49 builder.addQuicHint(QuicTestServer.getServerHost(), QuicTestServer.getSe rverPort(),
49 QuicTestServer.getServerPort()); 50 QuicTestServer.getServerPort());
50 51
51 builder.setMockCertVerifierForTesting(QuicTestServer.createMockCertVerif ier()); 52 CronetTestUtil.setMockCertVerifierForTesting(
53 builder, QuicTestServer.createMockCertVerifier());
52 54
53 mTestFramework = startCronetTestFrameworkWithUrlAndCronetEngineBuilder(n ull, builder); 55 mTestFramework = startCronetTestFrameworkWithUrlAndCronetEngineBuilder(n ull, builder);
54 } 56 }
55 57
56 @Override 58 @Override
57 protected void tearDown() throws Exception { 59 protected void tearDown() throws Exception {
58 QuicTestServer.shutdownQuicTestServer(); 60 QuicTestServer.shutdownQuicTestServer();
59 super.tearDown(); 61 super.tearDown();
60 } 62 }
61 63
62 @SmallTest 64 @SmallTest
63 @Feature({"Cronet"}) 65 @Feature({"Cronet"})
64 @OnlyRunNativeCronet 66 @OnlyRunNativeCronet
65 // Test that QUIC is negotiated. 67 // Test that QUIC is negotiated.
66 public void testSimpleGet() throws Exception { 68 public void testSimpleGet() throws Exception {
67 setUp(QuicBidirectionalStreams.ENABLED); 69 setUp(QuicBidirectionalStreams.ENABLED);
68 String path = "/simple.txt"; 70 String path = "/simple.txt";
69 String quicURL = QuicTestServer.getServerURL() + path; 71 String quicURL = QuicTestServer.getServerURL() + path;
70 TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCa llback(); 72 TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCa llback();
71 BidirectionalStream stream = new BidirectionalStream 73 BidirectionalStream stream =
72 .Builder(quicURL, callback, callbac k.getExecutor(), 74 mTestFramework.mCronetEngine
73 mTestFramework.mCronetEngin e) 75 .newBidirectionalStreamBuilder(quicURL, callback, callba ck.getExecutor())
74 .setHttpMethod("GET") 76 .setHttpMethod("GET")
75 .build(); 77 .build();
76 stream.start(); 78 stream.start();
77 callback.blockForDone(); 79 callback.blockForDone();
78 assertTrue(stream.isDone()); 80 assertTrue(stream.isDone());
79 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); 81 assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
80 assertEquals("This is a simple text file served by QUIC.\n", callback.mR esponseAsString); 82 assertEquals("This is a simple text file served by QUIC.\n", callback.mR esponseAsString);
81 assertEquals("quic/1+spdy/3", callback.mResponseInfo.getNegotiatedProtoc ol()); 83 assertEquals("quic/1+spdy/3", callback.mResponseInfo.getNegotiatedProtoc ol());
82 } 84 }
83 85
84 @SmallTest 86 @SmallTest
85 @Feature({"Cronet"}) 87 @Feature({"Cronet"})
86 @OnlyRunNativeCronet 88 @OnlyRunNativeCronet
87 public void testSimplePost() throws Exception { 89 public void testSimplePost() throws Exception {
88 setUp(QuicBidirectionalStreams.ENABLED); 90 setUp(QuicBidirectionalStreams.ENABLED);
89 String path = "/simple.txt"; 91 String path = "/simple.txt";
90 String quicURL = QuicTestServer.getServerURL() + path; 92 String quicURL = QuicTestServer.getServerURL() + path;
91 TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCa llback(); 93 TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCa llback();
92 // Although we have no way to verify data sent at this point, this test 94 // Although we have no way to verify data sent at this point, this test
93 // can make sure that onWriteCompleted is invoked appropriately. 95 // can make sure that onWriteCompleted is invoked appropriately.
94 callback.addWriteData("Test String".getBytes()); 96 callback.addWriteData("Test String".getBytes());
95 callback.addWriteData("1234567890".getBytes()); 97 callback.addWriteData("1234567890".getBytes());
96 callback.addWriteData("woot!".getBytes()); 98 callback.addWriteData("woot!".getBytes());
97 TestExecutor testExecutor = new TestExecutor(); 99 TestExecutor testExecutor = new TestExecutor();
98 TestRequestFinishedListener requestFinishedListener = 100 TestRequestFinishedListener requestFinishedListener =
99 new TestRequestFinishedListener(testExecutor); 101 new TestRequestFinishedListener(testExecutor);
100 mTestFramework.mCronetEngine.addRequestFinishedListener(requestFinishedL istener); 102 mTestFramework.mCronetEngine.addRequestFinishedListener(requestFinishedL istener);
101 BidirectionalStream stream = new BidirectionalStream 103 BidirectionalStream stream =
102 .Builder(quicURL, callback, callbac k.getExecutor(), 104 mTestFramework.mCronetEngine
103 mTestFramework.mCronetEngin e) 105 .newBidirectionalStreamBuilder(quicURL, callback, callba ck.getExecutor())
104 .addHeader("foo", "bar") 106 .addRequestAnnotation("request annotation")
105 .addHeader("empty", "") 107 .addRequestAnnotation(this)
106 .addHeader("Content-Type", "zebra") 108 .addHeader("foo", "bar")
107 .addRequestAnnotation("request anno tation") 109 .addHeader("empty", "")
108 .addRequestAnnotation(this) 110 .addHeader("Content-Type", "zebra")
109 .build(); 111 .build();
110 stream.start(); 112 stream.start();
111 callback.blockForDone(); 113 callback.blockForDone();
112 testExecutor.runAllTasks(); 114 testExecutor.runAllTasks();
113 assertTrue(stream.isDone()); 115 assertTrue(stream.isDone());
114 RequestFinishedInfo finishedInfo = requestFinishedListener.getRequestInf o(); 116 RequestFinishedInfo finishedInfo = requestFinishedListener.getRequestInf o();
115 assertNotNull("RequestFinishedInfo.Listener must be called", finishedInf o); 117 assertNotNull("RequestFinishedInfo.Listener must be called", finishedInf o);
116 assertEquals(quicURL, finishedInfo.getUrl()); 118 assertEquals(quicURL, finishedInfo.getUrl());
117 assertEquals(newHashSet("request annotation", this), 119 assertEquals(newHashSet("request annotation", this),
118 new HashSet<Object>(finishedInfo.getAnnotations())); 120 new HashSet<Object>(finishedInfo.getAnnotations()));
119 assertNotNull(finishedInfo.getResponseInfo()); 121 assertNotNull(finishedInfo.getResponseInfo());
(...skipping 11 matching lines...) Expand all
131 // TODO(xunjieli): Use ParameterizedTest instead of the loop. 133 // TODO(xunjieli): Use ParameterizedTest instead of the loop.
132 for (int i = 0; i < 2; i++) { 134 for (int i = 0; i < 2; i++) {
133 String path = "/simple.txt"; 135 String path = "/simple.txt";
134 String quicURL = QuicTestServer.getServerURL() + path; 136 String quicURL = QuicTestServer.getServerURL() + path;
135 TestBidirectionalStreamCallback callback = new TestBidirectionalStre amCallback(); 137 TestBidirectionalStreamCallback callback = new TestBidirectionalStre amCallback();
136 // Although we have no way to verify data sent at this point, this t est 138 // Although we have no way to verify data sent at this point, this t est
137 // can make sure that onWriteCompleted is invoked appropriately. 139 // can make sure that onWriteCompleted is invoked appropriately.
138 callback.addWriteData("Test String".getBytes(), false); 140 callback.addWriteData("Test String".getBytes(), false);
139 callback.addWriteData("1234567890".getBytes(), false); 141 callback.addWriteData("1234567890".getBytes(), false);
140 callback.addWriteData("woot!".getBytes(), true); 142 callback.addWriteData("woot!".getBytes(), true);
141 BidirectionalStream stream = new BidirectionalStream 143 BidirectionalStream stream = mTestFramework.mCronetEngine
142 .Builder(quicURL, callback, cal lback.getExecutor(), 144 .newBidirectionalStreamBuilder(
143 mTestFramework.mCronetE ngine) 145 quicURL, callback, call back.getExecutor())
144 .delayRequestHeadersUntilFirstF lush(i == 0) 146 .delayRequestHeadersUntilFirstF lush(i == 0)
145 .addHeader("foo", "bar") 147 .addHeader("foo", "bar")
146 .addHeader("empty", "") 148 .addHeader("empty", "")
147 .addHeader("Content-Type", "zeb ra") 149 .addHeader("Content-Type", "zeb ra")
148 .build(); 150 .build();
149 stream.start(); 151 stream.start();
150 callback.blockForDone(); 152 callback.blockForDone();
151 assertTrue(stream.isDone()); 153 assertTrue(stream.isDone());
152 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); 154 assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
153 assertEquals( 155 assertEquals(
(...skipping 13 matching lines...) Expand all
167 String quicURL = QuicTestServer.getServerURL() + path; 169 String quicURL = QuicTestServer.getServerURL() + path;
168 TestBidirectionalStreamCallback callback = new TestBidirectionalStre amCallback(); 170 TestBidirectionalStreamCallback callback = new TestBidirectionalStre amCallback();
169 // Although we have no way to verify data sent at this point, this t est 171 // Although we have no way to verify data sent at this point, this t est
170 // can make sure that onWriteCompleted is invoked appropriately. 172 // can make sure that onWriteCompleted is invoked appropriately.
171 callback.addWriteData("Test String".getBytes(), false); 173 callback.addWriteData("Test String".getBytes(), false);
172 callback.addWriteData("1234567890".getBytes(), false); 174 callback.addWriteData("1234567890".getBytes(), false);
173 callback.addWriteData("woot!".getBytes(), true); 175 callback.addWriteData("woot!".getBytes(), true);
174 callback.addWriteData("Test String".getBytes(), false); 176 callback.addWriteData("Test String".getBytes(), false);
175 callback.addWriteData("1234567890".getBytes(), false); 177 callback.addWriteData("1234567890".getBytes(), false);
176 callback.addWriteData("woot!".getBytes(), true); 178 callback.addWriteData("woot!".getBytes(), true);
177 BidirectionalStream stream = new BidirectionalStream 179 BidirectionalStream stream = mTestFramework.mCronetEngine
178 .Builder(quicURL, callback, cal lback.getExecutor(), 180 .newBidirectionalStreamBuilder(
179 mTestFramework.mCronetE ngine) 181 quicURL, callback, call back.getExecutor())
180 .delayRequestHeadersUntilFirstF lush(i == 0) 182 .delayRequestHeadersUntilFirstF lush(i == 0)
181 .addHeader("foo", "bar") 183 .addHeader("foo", "bar")
182 .addHeader("empty", "") 184 .addHeader("empty", "")
183 .addHeader("Content-Type", "zeb ra") 185 .addHeader("Content-Type", "zeb ra")
184 .build(); 186 .build();
185 stream.start(); 187 stream.start();
186 callback.blockForDone(); 188 callback.blockForDone();
187 assertTrue(stream.isDone()); 189 assertTrue(stream.isDone());
188 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); 190 assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
189 assertEquals( 191 assertEquals(
(...skipping 13 matching lines...) Expand all
203 String url = QuicTestServer.getServerURL() + path; 205 String url = QuicTestServer.getServerURL() + path;
204 206
205 TestBidirectionalStreamCallback callback = new TestBidirectionalStre amCallback() { 207 TestBidirectionalStreamCallback callback = new TestBidirectionalStre amCallback() {
206 @Override 208 @Override
207 public void onStreamReady(BidirectionalStream stream) { 209 public void onStreamReady(BidirectionalStream stream) {
208 // This flush should send the delayed headers. 210 // This flush should send the delayed headers.
209 stream.flush(); 211 stream.flush();
210 super.onStreamReady(stream); 212 super.onStreamReady(stream);
211 } 213 }
212 }; 214 };
213 BidirectionalStream stream = new BidirectionalStream 215 BidirectionalStream stream =
214 .Builder(url, callback, callbac k.getExecutor(), 216 mTestFramework.mCronetEngine
215 mTestFramework.mCronetE ngine) 217 .newBidirectionalStreamBuilder(url, callback, callba ck.getExecutor())
216 .setHttpMethod("GET") 218 .setHttpMethod("GET")
217 .delayRequestHeadersUntilFirstF lush(i == 0) 219 .delayRequestHeadersUntilFirstFlush(i == 0)
218 .addHeader("foo", "bar") 220 .addHeader("foo", "bar")
219 .addHeader("empty", "") 221 .addHeader("empty", "")
220 .build(); 222 .build();
221 // Flush before stream is started should not crash. 223 // Flush before stream is started should not crash.
222 stream.flush(); 224 stream.flush();
223 225
224 stream.start(); 226 stream.start();
225 callback.blockForDone(); 227 callback.blockForDone();
226 assertTrue(stream.isDone()); 228 assertTrue(stream.isDone());
227 229
228 // Flush after stream is completed is no-op. It shouldn't call into the destroyed 230 // Flush after stream is completed is no-op. It shouldn't call into the destroyed
229 // adapter. 231 // adapter.
230 stream.flush(); 232 stream.flush();
(...skipping 10 matching lines...) Expand all
241 @OnlyRunNativeCronet 243 @OnlyRunNativeCronet
242 public void testSimplePostWithFlushAfterOneWrite() throws Exception { 244 public void testSimplePostWithFlushAfterOneWrite() throws Exception {
243 setUp(QuicBidirectionalStreams.ENABLED); 245 setUp(QuicBidirectionalStreams.ENABLED);
244 // TODO(xunjieli): Use ParameterizedTest instead of the loop. 246 // TODO(xunjieli): Use ParameterizedTest instead of the loop.
245 for (int i = 0; i < 2; i++) { 247 for (int i = 0; i < 2; i++) {
246 String path = "/simple.txt"; 248 String path = "/simple.txt";
247 String url = QuicTestServer.getServerURL() + path; 249 String url = QuicTestServer.getServerURL() + path;
248 250
249 TestBidirectionalStreamCallback callback = new TestBidirectionalStre amCallback(); 251 TestBidirectionalStreamCallback callback = new TestBidirectionalStre amCallback();
250 callback.addWriteData("Test String".getBytes(), true); 252 callback.addWriteData("Test String".getBytes(), true);
251 BidirectionalStream stream = new BidirectionalStream 253 BidirectionalStream stream =
252 .Builder(url, callback, callbac k.getExecutor(), 254 mTestFramework.mCronetEngine
253 mTestFramework.mCronetE ngine) 255 .newBidirectionalStreamBuilder(url, callback, callba ck.getExecutor())
254 .delayRequestHeadersUntilFirstF lush(i == 0) 256 .delayRequestHeadersUntilFirstFlush(i == 0)
255 .addHeader("foo", "bar") 257 .addHeader("foo", "bar")
256 .addHeader("empty", "") 258 .addHeader("empty", "")
257 .addHeader("Content-Type", "zeb ra") 259 .addHeader("Content-Type", "zebra")
258 .build(); 260 .build();
259 stream.start(); 261 stream.start();
260 callback.blockForDone(); 262 callback.blockForDone();
261 assertTrue(stream.isDone()); 263 assertTrue(stream.isDone());
262 264
263 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); 265 assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
264 assertEquals( 266 assertEquals(
265 "This is a simple text file served by QUIC.\n", callback.mRe sponseAsString); 267 "This is a simple text file served by QUIC.\n", callback.mRe sponseAsString);
266 assertEquals("quic/1+spdy/3", callback.mResponseInfo.getNegotiatedPr otocol()); 268 assertEquals("quic/1+spdy/3", callback.mResponseInfo.getNegotiatedPr otocol());
267 } 269 }
268 } 270 }
269 271
270 @SmallTest 272 @SmallTest
271 @Feature({"Cronet"}) 273 @Feature({"Cronet"})
272 @OnlyRunNativeCronet 274 @OnlyRunNativeCronet
273 public void testQuicBidirectionalStreamDisabled() throws Exception { 275 public void testQuicBidirectionalStreamDisabled() throws Exception {
274 setUp(QuicBidirectionalStreams.DISABLED); 276 setUp(QuicBidirectionalStreams.DISABLED);
275 String path = "/simple.txt"; 277 String path = "/simple.txt";
276 String quicURL = QuicTestServer.getServerURL() + path; 278 String quicURL = QuicTestServer.getServerURL() + path;
277 279
278 TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCa llback(); 280 TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCa llback();
279 BidirectionalStream stream = new BidirectionalStream 281 BidirectionalStream stream =
280 .Builder(quicURL, callback, callbac k.getExecutor(), 282 mTestFramework.mCronetEngine
281 mTestFramework.mCronetEngin e) 283 .newBidirectionalStreamBuilder(quicURL, callback, callba ck.getExecutor())
282 .setHttpMethod("GET") 284 .setHttpMethod("GET")
283 .build(); 285 .build();
284 stream.start(); 286 stream.start();
285 callback.blockForDone(); 287 callback.blockForDone();
286 assertTrue(stream.isDone()); 288 assertTrue(stream.isDone());
287 assertTrue(callback.mOnErrorCalled); 289 assertTrue(callback.mOnErrorCalled);
288 assertNull(callback.mResponseInfo); 290 assertNull(callback.mResponseInfo);
289 } 291 }
290 292
291 @SmallTest 293 @SmallTest
292 @Feature({"Cronet"}) 294 @Feature({"Cronet"})
293 @OnlyRunNativeCronet 295 @OnlyRunNativeCronet
(...skipping 15 matching lines...) Expand all
309 // Shut down the server, and the stream should error out. 311 // Shut down the server, and the stream should error out.
310 // The second call to shutdownQuicTestServer is no-op. 312 // The second call to shutdownQuicTestServer is no-op.
311 QuicTestServer.shutdownQuicTestServer(); 313 QuicTestServer.shutdownQuicTestServer();
312 } 314 }
313 }; 315 };
314 316
315 callback.addWriteData("Test String".getBytes()); 317 callback.addWriteData("Test String".getBytes());
316 callback.addWriteData("1234567890".getBytes()); 318 callback.addWriteData("1234567890".getBytes());
317 callback.addWriteData("woot!".getBytes()); 319 callback.addWriteData("woot!".getBytes());
318 320
319 BidirectionalStream stream = new BidirectionalStream 321 BidirectionalStream stream =
320 .Builder(quicURL, callback, callbac k.getExecutor(), 322 mTestFramework.mCronetEngine
321 mTestFramework.mCronetEngin e) 323 .newBidirectionalStreamBuilder(quicURL, callback, callba ck.getExecutor())
322 .addHeader("foo", "bar") 324 .addHeader("foo", "bar")
323 .addHeader("empty", "") 325 .addHeader("empty", "")
324 .addHeader("Content-Type", "zebra") 326 .addHeader("Content-Type", "zebra")
325 .build(); 327 .build();
326 stream.start(); 328 stream.start();
327 callback.blockForDone(); 329 callback.blockForDone();
328 assertTrue(stream.isDone()); 330 assertTrue(stream.isDone());
329 // Server terminated on us, so the stream must fail. 331 // Server terminated on us, so the stream must fail.
330 // QUIC reports this as ERR_QUIC_PROTOCOL_ERROR. Sometimes we get ERR_CO NNECTION_REFUSED. 332 // QUIC reports this as ERR_QUIC_PROTOCOL_ERROR. Sometimes we get ERR_CO NNECTION_REFUSED.
331 assertNotNull(callback.mError); 333 assertNotNull(callback.mError);
332 assertTrue(NetError.ERR_QUIC_PROTOCOL_ERROR == callback.mError.getCronet InternalErrorCode() 334 assertTrue(NetError.ERR_QUIC_PROTOCOL_ERROR == callback.mError.getCronet InternalErrorCode()
333 || NetError.ERR_CONNECTION_REFUSED == callback.mError.getCronetI nternalErrorCode()); 335 || NetError.ERR_CONNECTION_REFUSED == callback.mError.getCronetI nternalErrorCode());
334 } 336 }
335 337
336 @SmallTest 338 @SmallTest
337 @Feature({"Cronet"}) 339 @Feature({"Cronet"})
338 @OnlyRunNativeCronet 340 @OnlyRunNativeCronet
339 // Test that certificate verify results are serialized and deserialized corr ectly. 341 // Test that certificate verify results are serialized and deserialized corr ectly.
340 public void testSerializeDeserialize() throws Exception { 342 public void testSerializeDeserialize() throws Exception {
341 setUp(QuicBidirectionalStreams.ENABLED); 343 setUp(QuicBidirectionalStreams.ENABLED);
342 String path = "/simple.txt"; 344 String path = "/simple.txt";
343 String quicURL = QuicTestServer.getServerURL() + path; 345 String quicURL = QuicTestServer.getServerURL() + path;
344 TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCa llback(); 346 TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCa llback();
345 BidirectionalStream stream = new BidirectionalStream 347 BidirectionalStream stream =
346 .Builder(quicURL, callback, callbac k.getExecutor(), 348 mTestFramework.mCronetEngine
347 mTestFramework.mCronetEngin e) 349 .newBidirectionalStreamBuilder(quicURL, callback, callba ck.getExecutor())
348 .setHttpMethod("GET") 350 .setHttpMethod("GET")
349 .build(); 351 .build();
350 stream.start(); 352 stream.start();
351 callback.blockForDone(); 353 callback.blockForDone();
352 assertTrue(stream.isDone()); 354 assertTrue(stream.isDone());
353 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); 355 assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
354 assertEquals("This is a simple text file served by QUIC.\n", callback.mR esponseAsString); 356 assertEquals("This is a simple text file served by QUIC.\n", callback.mR esponseAsString);
355 assertEquals("quic/1+spdy/3", callback.mResponseInfo.getNegotiatedProtoc ol()); 357 assertEquals("quic/1+spdy/3", callback.mResponseInfo.getNegotiatedProtoc ol());
356 358
357 String serialized_data = mTestFramework.mCronetEngine.getCertVerifierDat a(100); 359 String serialized_data = mTestFramework.mCronetEngine.getCertVerifierDat a(100);
358 assertFalse(serialized_data.isEmpty()); 360 assertFalse(serialized_data.isEmpty());
359 361
360 // Create a new builder and verify that the |serialized_data| is deseria lized correctly. 362 // Create a new builder and verify that the |serialized_data| is deseria lized correctly.
361 CronetEngine.Builder builder = new CronetEngine.Builder(getContext()); 363 ExperimentalCronetEngine.Builder builder =
364 new ExperimentalCronetEngine.Builder(getContext());
362 builder.enableQuic(true); 365 builder.enableQuic(true);
363 builder.setMockCertVerifierForTesting(QuicTestServer.createMockCertVerif ier()); 366 CronetTestUtil.setMockCertVerifierForTesting(
367 builder, QuicTestServer.createMockCertVerifier());
364 builder.setCertVerifierData(serialized_data); 368 builder.setCertVerifierData(serialized_data);
365 369
366 CronetTestFramework testFramework = 370 CronetTestFramework testFramework =
367 startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, buil der); 371 startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, buil der);
368 String deserialized_data = testFramework.mCronetEngine.getCertVerifierDa ta(100); 372 String deserialized_data = testFramework.mCronetEngine.getCertVerifierDa ta(100);
369 assertEquals(deserialized_data, serialized_data); 373 assertEquals(deserialized_data, serialized_data);
370 } 374 }
371 } 375 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698