OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 android.os.ConditionVariable; | 7 import android.os.ConditionVariable; |
8 import android.test.suitebuilder.annotation.SmallTest; | 8 import android.test.suitebuilder.annotation.SmallTest; |
9 import android.util.Pair; | 9 import android.util.Pair; |
10 | 10 |
(...skipping 26 matching lines...) Expand all Loading... |
37 mActivity = launchCronetTestApp(); | 37 mActivity = launchCronetTestApp(); |
38 assertTrue(NativeTestServer.startNativeTestServer( | 38 assertTrue(NativeTestServer.startNativeTestServer( |
39 getInstrumentation().getTargetContext())); | 39 getInstrumentation().getTargetContext())); |
40 // Add url interceptors after native application context is initialized. | 40 // Add url interceptors after native application context is initialized. |
41 MockUrlRequestJobFactory.setUp(); | 41 MockUrlRequestJobFactory.setUp(); |
42 } | 42 } |
43 | 43 |
44 @Override | 44 @Override |
45 protected void tearDown() throws Exception { | 45 protected void tearDown() throws Exception { |
46 NativeTestServer.shutdownNativeTestServer(); | 46 NativeTestServer.shutdownNativeTestServer(); |
47 mActivity.mUrlRequestContext.shutdown(); | 47 mActivity.mCronetEngine.shutdown(); |
48 super.tearDown(); | 48 super.tearDown(); |
49 } | 49 } |
50 | 50 |
51 private TestUrlRequestListener startAndWaitForComplete(String url) | 51 private TestUrlRequestListener startAndWaitForComplete(String url) |
52 throws Exception { | 52 throws Exception { |
53 TestUrlRequestListener listener = new TestUrlRequestListener(); | 53 TestUrlRequestListener listener = new TestUrlRequestListener(); |
54 // Create request. | 54 // Create request. |
55 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 55 UrlRequest.Builder builder = new UrlRequest.Builder( |
56 url, listener, listener.getExecutor()); | 56 url, listener, listener.getExecutor(), mActivity.mCronetEngine); |
| 57 UrlRequest urlRequest = builder.build(); |
57 urlRequest.start(); | 58 urlRequest.start(); |
58 listener.blockForDone(); | 59 listener.blockForDone(); |
59 assertTrue(urlRequest.isDone()); | 60 assertTrue(urlRequest.isDone()); |
60 return listener; | 61 return listener; |
61 } | 62 } |
62 | 63 |
63 private void checkResponseInfo(ResponseInfo responseInfo, | 64 private void checkResponseInfo(ResponseInfo responseInfo, |
64 String expectedUrl, int expectedHttpStatusCode, | 65 String expectedUrl, int expectedHttpStatusCode, |
65 String expectedHttpStatusText) { | 66 String expectedHttpStatusText) { |
66 assertEquals(expectedUrl, responseInfo.getUrl()); | 67 assertEquals(expectedUrl, responseInfo.getUrl()); |
67 assertEquals(expectedUrl, responseInfo.getUrlChain()[ | 68 assertEquals(expectedUrl, responseInfo.getUrlChain()[ |
68 responseInfo.getUrlChain().length - 1]); | 69 responseInfo.getUrlChain().length - 1]); |
69 assertEquals(expectedHttpStatusCode, responseInfo.getHttpStatusCode()); | 70 assertEquals(expectedHttpStatusCode, responseInfo.getHttpStatusCode()); |
70 assertEquals(expectedHttpStatusText, responseInfo.getHttpStatusText()); | 71 assertEquals(expectedHttpStatusText, responseInfo.getHttpStatusText()); |
71 assertFalse(responseInfo.wasCached()); | 72 assertFalse(responseInfo.wasCached()); |
72 } | 73 } |
73 | 74 |
74 private void checkResponseInfoHeader(ResponseInfo responseInfo, | 75 private void checkResponseInfoHeader(ResponseInfo responseInfo, |
75 String headerName, String headerValue) { | 76 String headerName, String headerValue) { |
76 Map<String, List<String>> responseHeaders = | 77 Map<String, List<String>> responseHeaders = |
77 responseInfo.getAllHeaders(); | 78 responseInfo.getAllHeaders(); |
78 List<String> header = responseHeaders.get(headerName); | 79 List<String> header = responseHeaders.get(headerName); |
79 assertNotNull(header); | 80 assertNotNull(header); |
80 assertTrue(header.contains(headerValue)); | 81 assertTrue(header.contains(headerValue)); |
81 } | 82 } |
82 | 83 |
83 @SmallTest | 84 @SmallTest |
84 @Feature({"Cronet"}) | 85 @Feature({"Cronet"}) |
| 86 public void testBuilderChecks() throws Exception { |
| 87 TestUrlRequestListener listener = new TestUrlRequestListener(); |
| 88 try { |
| 89 new UrlRequest.Builder(null, listener, listener.getExecutor(), mActi
vity.mCronetEngine); |
| 90 fail("URL not null-checked"); |
| 91 } catch (NullPointerException e) { |
| 92 assertEquals("URL is required.", e.getMessage()); |
| 93 } |
| 94 try { |
| 95 new UrlRequest.Builder(NativeTestServer.getRedirectURL(), null, list
ener.getExecutor(), |
| 96 mActivity.mCronetEngine); |
| 97 fail("Listener not null-checked"); |
| 98 } catch (NullPointerException e) { |
| 99 assertEquals("Listener is required.", e.getMessage()); |
| 100 } |
| 101 try { |
| 102 new UrlRequest.Builder( |
| 103 NativeTestServer.getRedirectURL(), listener, null, mActivity
.mCronetEngine); |
| 104 fail("Executor not null-checked"); |
| 105 } catch (NullPointerException e) { |
| 106 assertEquals("Executor is required.", e.getMessage()); |
| 107 } |
| 108 try { |
| 109 new UrlRequest.Builder( |
| 110 NativeTestServer.getRedirectURL(), listener, listener.getExe
cutor(), null); |
| 111 fail("CronetEngine not null-checked"); |
| 112 } catch (NullPointerException e) { |
| 113 assertEquals("CronetEngine is required.", e.getMessage()); |
| 114 } |
| 115 // Verify successful creation doesn't throw. |
| 116 new UrlRequest.Builder(NativeTestServer.getRedirectURL(), listener, list
ener.getExecutor(), |
| 117 mActivity.mCronetEngine); |
| 118 } |
| 119 |
| 120 @SmallTest |
| 121 @Feature({"Cronet"}) |
85 public void testSimpleGet() throws Exception { | 122 public void testSimpleGet() throws Exception { |
86 TestUrlRequestListener listener = startAndWaitForComplete( | 123 TestUrlRequestListener listener = startAndWaitForComplete( |
87 NativeTestServer.getEchoMethodURL()); | 124 NativeTestServer.getEchoMethodURL()); |
88 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); | 125 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); |
89 // Default method is 'GET'. | 126 // Default method is 'GET'. |
90 assertEquals("GET", listener.mResponseAsString); | 127 assertEquals("GET", listener.mResponseAsString); |
91 assertEquals(0, listener.mRedirectCount); | 128 assertEquals(0, listener.mRedirectCount); |
92 assertEquals(listener.mResponseStep, ResponseStep.ON_SUCCEEDED); | 129 assertEquals(listener.mResponseStep, ResponseStep.ON_SUCCEEDED); |
93 checkResponseInfo(listener.mResponseInfo, | 130 checkResponseInfo(listener.mResponseInfo, |
94 NativeTestServer.getEchoMethodURL(), 200, "OK"); | 131 NativeTestServer.getEchoMethodURL(), 200, "OK"); |
95 checkResponseInfo(listener.mExtendedResponseInfo.getResponseInfo(), | 132 checkResponseInfo(listener.mExtendedResponseInfo.getResponseInfo(), |
96 NativeTestServer.getEchoMethodURL(), 200, "OK"); | 133 NativeTestServer.getEchoMethodURL(), 200, "OK"); |
97 } | 134 } |
98 | 135 |
99 /** | 136 /** |
100 * Tests a redirect by running it step-by-step. Also tests that delaying a | 137 * Tests a redirect by running it step-by-step. Also tests that delaying a |
101 * request works as expected. To make sure there are no unexpected pending | 138 * request works as expected. To make sure there are no unexpected pending |
102 * messages, does a GET between UrlRequestListener callbacks. | 139 * messages, does a GET between UrlRequestListener callbacks. |
103 */ | 140 */ |
104 @SmallTest | 141 @SmallTest |
105 @Feature({"Cronet"}) | 142 @Feature({"Cronet"}) |
106 public void testRedirectAsync() throws Exception { | 143 public void testRedirectAsync() throws Exception { |
107 // Start the request and wait to see the redirect. | 144 // Start the request and wait to see the redirect. |
108 TestUrlRequestListener listener = new TestUrlRequestListener(); | 145 TestUrlRequestListener listener = new TestUrlRequestListener(); |
109 listener.setAutoAdvance(false); | 146 listener.setAutoAdvance(false); |
110 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 147 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
RedirectURL(), |
111 NativeTestServer.getRedirectURL(), listener, listener.getExecuto
r()); | 148 listener, listener.getExecutor(), mActivity.mCronetEngine); |
| 149 UrlRequest urlRequest = builder.build(); |
112 urlRequest.start(); | 150 urlRequest.start(); |
113 listener.waitForNextStep(); | 151 listener.waitForNextStep(); |
114 | 152 |
115 // Check the redirect. | 153 // Check the redirect. |
116 assertEquals(ResponseStep.ON_RECEIVED_REDIRECT, listener.mResponseStep); | 154 assertEquals(ResponseStep.ON_RECEIVED_REDIRECT, listener.mResponseStep); |
117 assertEquals(1, listener.mRedirectResponseInfoList.size()); | 155 assertEquals(1, listener.mRedirectResponseInfoList.size()); |
118 checkResponseInfo(listener.mRedirectResponseInfoList.get(0), | 156 checkResponseInfo(listener.mRedirectResponseInfoList.get(0), |
119 NativeTestServer.getRedirectURL(), 302, "Found"); | 157 NativeTestServer.getRedirectURL(), 302, "Found"); |
120 assertEquals(1, | 158 assertEquals(1, |
121 listener.mRedirectResponseInfoList.get(0).getUrlChain().length); | 159 listener.mRedirectResponseInfoList.get(0).getUrlChain().length); |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 // onFailed messages. This test relies on checks in | 248 // onFailed messages. This test relies on checks in |
211 // TestUrlRequestListener catching a second onFailed call. | 249 // TestUrlRequestListener catching a second onFailed call. |
212 testSimpleGet(); | 250 testSimpleGet(); |
213 } | 251 } |
214 | 252 |
215 @SmallTest | 253 @SmallTest |
216 @Feature({"Cronet"}) | 254 @Feature({"Cronet"}) |
217 public void testSetHttpMethod() throws Exception { | 255 public void testSetHttpMethod() throws Exception { |
218 TestUrlRequestListener listener = new TestUrlRequestListener(); | 256 TestUrlRequestListener listener = new TestUrlRequestListener(); |
219 String methodName = "HEAD"; | 257 String methodName = "HEAD"; |
220 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 258 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoMethodURL(), |
221 NativeTestServer.getEchoMethodURL(), listener, | 259 listener, listener.getExecutor(), mActivity.mCronetEngine); |
222 listener.getExecutor()); | |
223 // Try to set 'null' method. | 260 // Try to set 'null' method. |
224 try { | 261 try { |
225 urlRequest.setHttpMethod(null); | 262 builder.setHttpMethod(null); |
226 fail("Exception not thrown"); | 263 fail("Exception not thrown"); |
227 } catch (NullPointerException e) { | 264 } catch (NullPointerException e) { |
228 assertEquals("Method is required.", e.getMessage()); | 265 assertEquals("Method is required.", e.getMessage()); |
229 } | 266 } |
230 | 267 |
231 urlRequest.setHttpMethod(methodName); | 268 builder.setHttpMethod(methodName); |
232 urlRequest.start(); | 269 builder.build().start(); |
233 try { | |
234 urlRequest.setHttpMethod("toolate"); | |
235 fail("Exception not thrown"); | |
236 } catch (IllegalStateException e) { | |
237 assertEquals("Request is already started.", e.getMessage()); | |
238 } | |
239 listener.blockForDone(); | 270 listener.blockForDone(); |
240 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); | 271 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); |
241 assertEquals(0, listener.mHttpResponseDataLength); | 272 assertEquals(0, listener.mHttpResponseDataLength); |
242 } | 273 } |
243 | 274 |
244 @SmallTest | 275 @SmallTest |
245 @Feature({"Cronet"}) | 276 @Feature({"Cronet"}) |
246 public void testBadMethod() throws Exception { | 277 public void testBadMethod() throws Exception { |
247 TestUrlRequestListener listener = new TestUrlRequestListener(); | 278 TestUrlRequestListener listener = new TestUrlRequestListener(); |
248 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 279 UrlRequest.Builder builder = new UrlRequest.Builder( |
249 TEST_URL, listener, listener.getExecutor()); | 280 TEST_URL, listener, listener.getExecutor(), mActivity.mCronetEng
ine); |
250 try { | 281 try { |
251 urlRequest.setHttpMethod("bad:method!"); | 282 builder.setHttpMethod("bad:method!"); |
252 urlRequest.start(); | 283 builder.build().start(); |
253 fail("IllegalArgumentException not thrown."); | 284 fail("IllegalArgumentException not thrown."); |
254 } catch (IllegalArgumentException e) { | 285 } catch (IllegalArgumentException e) { |
255 assertEquals("Invalid http method bad:method!", | 286 assertEquals("Invalid http method bad:method!", |
256 e.getMessage()); | 287 e.getMessage()); |
257 } | 288 } |
258 } | 289 } |
259 | 290 |
260 @SmallTest | 291 @SmallTest |
261 @Feature({"Cronet"}) | 292 @Feature({"Cronet"}) |
262 public void testBadHeaderName() throws Exception { | 293 public void testBadHeaderName() throws Exception { |
263 TestUrlRequestListener listener = new TestUrlRequestListener(); | 294 TestUrlRequestListener listener = new TestUrlRequestListener(); |
264 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 295 UrlRequest.Builder builder = new UrlRequest.Builder( |
265 TEST_URL, listener, listener.getExecutor()); | 296 TEST_URL, listener, listener.getExecutor(), mActivity.mCronetEng
ine); |
266 try { | 297 try { |
267 urlRequest.addHeader("header:name", "headervalue"); | 298 builder.addHeader("header:name", "headervalue"); |
268 urlRequest.start(); | 299 builder.build().start(); |
269 fail("IllegalArgumentException not thrown."); | 300 fail("IllegalArgumentException not thrown."); |
270 } catch (IllegalArgumentException e) { | 301 } catch (IllegalArgumentException e) { |
271 assertEquals("Invalid header header:name=headervalue", | 302 assertEquals("Invalid header header:name=headervalue", |
272 e.getMessage()); | 303 e.getMessage()); |
273 } | 304 } |
274 } | 305 } |
275 | 306 |
276 @SmallTest | 307 @SmallTest |
277 @Feature({"Cronet"}) | 308 @Feature({"Cronet"}) |
278 public void testBadHeaderValue() throws Exception { | 309 public void testBadHeaderValue() throws Exception { |
279 TestUrlRequestListener listener = new TestUrlRequestListener(); | 310 TestUrlRequestListener listener = new TestUrlRequestListener(); |
280 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 311 UrlRequest.Builder builder = new UrlRequest.Builder( |
281 TEST_URL, listener, listener.getExecutor()); | 312 TEST_URL, listener, listener.getExecutor(), mActivity.mCronetEng
ine); |
282 try { | 313 try { |
283 urlRequest.addHeader("headername", "bad header\r\nvalue"); | 314 builder.addHeader("headername", "bad header\r\nvalue"); |
284 urlRequest.start(); | 315 builder.build().start(); |
285 fail("IllegalArgumentException not thrown."); | 316 fail("IllegalArgumentException not thrown."); |
286 } catch (IllegalArgumentException e) { | 317 } catch (IllegalArgumentException e) { |
287 assertEquals("Invalid header headername=bad header\r\nvalue", | 318 assertEquals("Invalid header headername=bad header\r\nvalue", |
288 e.getMessage()); | 319 e.getMessage()); |
289 } | 320 } |
290 } | 321 } |
291 | 322 |
292 @SmallTest | 323 @SmallTest |
293 @Feature({"Cronet"}) | 324 @Feature({"Cronet"}) |
294 public void testAddHeader() throws Exception { | 325 public void testAddHeader() throws Exception { |
295 TestUrlRequestListener listener = new TestUrlRequestListener(); | 326 TestUrlRequestListener listener = new TestUrlRequestListener(); |
296 String headerName = "header-name"; | 327 String headerName = "header-name"; |
297 String headerValue = "header-value"; | 328 String headerValue = "header-value"; |
298 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 329 UrlRequest.Builder builder = |
299 NativeTestServer.getEchoHeaderURL(headerName), listener, | 330 new UrlRequest.Builder(NativeTestServer.getEchoHeaderURL(headerN
ame), listener, |
300 listener.getExecutor()); | 331 listener.getExecutor(), mActivity.mCronetEngine); |
301 | 332 |
302 urlRequest.addHeader(headerName, headerValue); | 333 builder.addHeader(headerName, headerValue); |
303 urlRequest.start(); | 334 builder.build().start(); |
304 try { | |
305 urlRequest.addHeader("header2", "value"); | |
306 fail("Exception not thrown"); | |
307 } catch (IllegalStateException e) { | |
308 assertEquals("Request is already started.", e.getMessage()); | |
309 } | |
310 listener.blockForDone(); | 335 listener.blockForDone(); |
311 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); | 336 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); |
312 assertEquals(headerValue, listener.mResponseAsString); | 337 assertEquals(headerValue, listener.mResponseAsString); |
313 } | 338 } |
314 | 339 |
315 @SmallTest | 340 @SmallTest |
316 @Feature({"Cronet"}) | 341 @Feature({"Cronet"}) |
317 public void testMultiRequestHeaders() throws Exception { | 342 public void testMultiRequestHeaders() throws Exception { |
318 TestUrlRequestListener listener = new TestUrlRequestListener(); | 343 TestUrlRequestListener listener = new TestUrlRequestListener(); |
319 String headerName = "header-name"; | 344 String headerName = "header-name"; |
320 String headerValue1 = "header-value1"; | 345 String headerValue1 = "header-value1"; |
321 String headerValue2 = "header-value2"; | 346 String headerValue2 = "header-value2"; |
322 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 347 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoAllHeadersURL(), |
323 NativeTestServer.getEchoAllHeadersURL(), listener, | 348 listener, listener.getExecutor(), mActivity.mCronetEngine); |
324 listener.getExecutor()); | 349 builder.addHeader(headerName, headerValue1); |
325 urlRequest.addHeader(headerName, headerValue1); | 350 builder.addHeader(headerName, headerValue2); |
326 urlRequest.addHeader(headerName, headerValue2); | 351 builder.build().start(); |
327 urlRequest.start(); | |
328 listener.blockForDone(); | 352 listener.blockForDone(); |
329 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); | 353 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); |
330 String headers = listener.mResponseAsString; | 354 String headers = listener.mResponseAsString; |
331 Pattern pattern = Pattern.compile(headerName + ":\\s(.*)\\r\\n"); | 355 Pattern pattern = Pattern.compile(headerName + ":\\s(.*)\\r\\n"); |
332 Matcher matcher = pattern.matcher(headers); | 356 Matcher matcher = pattern.matcher(headers); |
333 List<String> actualValues = new ArrayList<String>(); | 357 List<String> actualValues = new ArrayList<String>(); |
334 while (matcher.find()) { | 358 while (matcher.find()) { |
335 actualValues.add(matcher.group(1)); | 359 actualValues.add(matcher.group(1)); |
336 } | 360 } |
337 assertEquals(1, actualValues.size()); | 361 assertEquals(1, actualValues.size()); |
338 assertEquals("header-value2", actualValues.get(0)); | 362 assertEquals("header-value2", actualValues.get(0)); |
339 } | 363 } |
340 | 364 |
341 @SmallTest | 365 @SmallTest |
342 @Feature({"Cronet"}) | 366 @Feature({"Cronet"}) |
343 public void testCustomUserAgent() throws Exception { | 367 public void testCustomUserAgent() throws Exception { |
344 TestUrlRequestListener listener = new TestUrlRequestListener(); | 368 TestUrlRequestListener listener = new TestUrlRequestListener(); |
345 String userAgentName = "User-Agent"; | 369 String userAgentName = "User-Agent"; |
346 String userAgentValue = "User-Agent-Value"; | 370 String userAgentValue = "User-Agent-Value"; |
347 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 371 UrlRequest.Builder builder = |
348 NativeTestServer.getEchoHeaderURL(userAgentName), listener, | 372 new UrlRequest.Builder(NativeTestServer.getEchoHeaderURL(userAge
ntName), listener, |
349 listener.getExecutor()); | 373 listener.getExecutor(), mActivity.mCronetEngine); |
350 urlRequest.addHeader(userAgentName, userAgentValue); | 374 builder.addHeader(userAgentName, userAgentValue); |
351 urlRequest.start(); | 375 builder.build().start(); |
352 listener.blockForDone(); | 376 listener.blockForDone(); |
353 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); | 377 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); |
354 assertEquals(userAgentValue, listener.mResponseAsString); | 378 assertEquals(userAgentValue, listener.mResponseAsString); |
355 } | 379 } |
356 | 380 |
357 @SmallTest | 381 @SmallTest |
358 @Feature({"Cronet"}) | 382 @Feature({"Cronet"}) |
359 public void testDefaultUserAgent() throws Exception { | 383 public void testDefaultUserAgent() throws Exception { |
360 TestUrlRequestListener listener = new TestUrlRequestListener(); | 384 TestUrlRequestListener listener = new TestUrlRequestListener(); |
361 String headerName = "User-Agent"; | 385 String headerName = "User-Agent"; |
362 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 386 UrlRequest.Builder builder = |
363 NativeTestServer.getEchoHeaderURL(headerName), listener, | 387 new UrlRequest.Builder(NativeTestServer.getEchoHeaderURL(headerN
ame), listener, |
364 listener.getExecutor()); | 388 listener.getExecutor(), mActivity.mCronetEngine); |
365 urlRequest.start(); | 389 builder.build().start(); |
366 listener.blockForDone(); | 390 listener.blockForDone(); |
367 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); | 391 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); |
368 assertTrue("Default User-Agent should contain Cronet/n.n.n.n but is " | 392 assertTrue("Default User-Agent should contain Cronet/n.n.n.n but is " |
369 + listener.mResponseAsString, | 393 + listener.mResponseAsString, |
370 Pattern.matches(".+Cronet/\\d+\\.\\d+\\.\\d+\\.\\d+.+", | 394 Pattern.matches(".+Cronet/\\d+\\.\\d+\\.\\d+\\.\\d+.+", |
371 listener.mResponseAsString)); | 395 listener.mResponseAsString)); |
372 } | 396 } |
373 | 397 |
374 @SmallTest | 398 @SmallTest |
375 @Feature({"Cronet"}) | 399 @Feature({"Cronet"}) |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
533 * when using legacy read() API. | 557 * when using legacy read() API. |
534 */ | 558 */ |
535 @SmallTest | 559 @SmallTest |
536 @Feature({"Cronet"}) | 560 @Feature({"Cronet"}) |
537 public void testLegacySimpleGetBufferUpdates() throws Exception { | 561 public void testLegacySimpleGetBufferUpdates() throws Exception { |
538 TestUrlRequestListener listener = new TestUrlRequestListener(); | 562 TestUrlRequestListener listener = new TestUrlRequestListener(); |
539 listener.mLegacyReadByteBufferAdjustment = true; | 563 listener.mLegacyReadByteBufferAdjustment = true; |
540 listener.setAutoAdvance(false); | 564 listener.setAutoAdvance(false); |
541 // Since the default method is "GET", the expected response body is also | 565 // Since the default method is "GET", the expected response body is also |
542 // "GET". | 566 // "GET". |
543 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 567 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoMethodURL(), |
544 NativeTestServer.getEchoMethodURL(), | 568 listener, listener.getExecutor(), mActivity.mCronetEngine); |
545 listener, listener.getExecutor()); | 569 UrlRequest urlRequest = builder.build(); |
546 urlRequest.start(); | 570 urlRequest.start(); |
547 listener.waitForNextStep(); | 571 listener.waitForNextStep(); |
548 | 572 |
549 ByteBuffer readBuffer = ByteBuffer.allocateDirect(5); | 573 ByteBuffer readBuffer = ByteBuffer.allocateDirect(5); |
550 readBuffer.put("FOR".getBytes()); | 574 readBuffer.put("FOR".getBytes()); |
551 assertEquals(3, readBuffer.position()); | 575 assertEquals(3, readBuffer.position()); |
552 | 576 |
553 // Read first two characters of the response ("GE"). It's theoretically | 577 // Read first two characters of the response ("GE"). It's theoretically |
554 // possible to need one read per character, though in practice, | 578 // possible to need one read per character, though in practice, |
555 // shouldn't happen. | 579 // shouldn't happen. |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
620 /** | 644 /** |
621 * Checks that the buffer is updated correctly, when starting at an offset. | 645 * Checks that the buffer is updated correctly, when starting at an offset. |
622 */ | 646 */ |
623 @SmallTest | 647 @SmallTest |
624 @Feature({"Cronet"}) | 648 @Feature({"Cronet"}) |
625 public void testSimpleGetBufferUpdates() throws Exception { | 649 public void testSimpleGetBufferUpdates() throws Exception { |
626 TestUrlRequestListener listener = new TestUrlRequestListener(); | 650 TestUrlRequestListener listener = new TestUrlRequestListener(); |
627 listener.setAutoAdvance(false); | 651 listener.setAutoAdvance(false); |
628 // Since the default method is "GET", the expected response body is also | 652 // Since the default method is "GET", the expected response body is also |
629 // "GET". | 653 // "GET". |
630 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 654 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoMethodURL(), |
631 NativeTestServer.getEchoMethodURL(), listener, listener.getExecu
tor()); | 655 listener, listener.getExecutor(), mActivity.mCronetEngine); |
| 656 UrlRequest urlRequest = builder.build(); |
632 urlRequest.start(); | 657 urlRequest.start(); |
633 listener.waitForNextStep(); | 658 listener.waitForNextStep(); |
634 | 659 |
635 ByteBuffer readBuffer = ByteBuffer.allocateDirect(5); | 660 ByteBuffer readBuffer = ByteBuffer.allocateDirect(5); |
636 readBuffer.put("FOR".getBytes()); | 661 readBuffer.put("FOR".getBytes()); |
637 assertEquals(3, readBuffer.position()); | 662 assertEquals(3, readBuffer.position()); |
638 | 663 |
639 // Read first two characters of the response ("GE"). It's theoretically | 664 // Read first two characters of the response ("GE"). It's theoretically |
640 // possible to need one read per character, though in practice, | 665 // possible to need one read per character, though in practice, |
641 // shouldn't happen. | 666 // shouldn't happen. |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
701 // Make sure there are no other pending messages, which would trigger | 726 // Make sure there are no other pending messages, which would trigger |
702 // asserts in TestURLRequestListener. | 727 // asserts in TestURLRequestListener. |
703 testSimpleGet(); | 728 testSimpleGet(); |
704 } | 729 } |
705 | 730 |
706 @SmallTest | 731 @SmallTest |
707 @Feature({"Cronet"}) | 732 @Feature({"Cronet"}) |
708 public void testBadBuffers() throws Exception { | 733 public void testBadBuffers() throws Exception { |
709 TestUrlRequestListener listener = new TestUrlRequestListener(); | 734 TestUrlRequestListener listener = new TestUrlRequestListener(); |
710 listener.setAutoAdvance(false); | 735 listener.setAutoAdvance(false); |
711 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 736 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoMethodURL(), |
712 NativeTestServer.getEchoMethodURL(), listener, | 737 listener, listener.getExecutor(), mActivity.mCronetEngine); |
713 listener.getExecutor()); | 738 UrlRequest urlRequest = builder.build(); |
714 urlRequest.start(); | 739 urlRequest.start(); |
715 listener.waitForNextStep(); | 740 listener.waitForNextStep(); |
716 | 741 |
717 // Try to read using a full buffer. | 742 // Try to read using a full buffer. |
718 try { | 743 try { |
719 ByteBuffer readBuffer = ByteBuffer.allocateDirect(4); | 744 ByteBuffer readBuffer = ByteBuffer.allocateDirect(4); |
720 readBuffer.put("full".getBytes()); | 745 readBuffer.put("full".getBytes()); |
721 urlRequest.readNew(readBuffer); | 746 urlRequest.readNew(readBuffer); |
722 fail("Exception not thrown"); | 747 fail("Exception not thrown"); |
723 } catch (IllegalArgumentException e) { | 748 } catch (IllegalArgumentException e) { |
(...skipping 18 matching lines...) Expand all Loading... |
742 listener.blockForDone(); | 767 listener.blockForDone(); |
743 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); | 768 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); |
744 assertEquals("GET", listener.mResponseAsString); | 769 assertEquals("GET", listener.mResponseAsString); |
745 } | 770 } |
746 | 771 |
747 @SmallTest | 772 @SmallTest |
748 @Feature({"Cronet"}) | 773 @Feature({"Cronet"}) |
749 public void testUnexpectedReads() throws Exception { | 774 public void testUnexpectedReads() throws Exception { |
750 final TestUrlRequestListener listener = new TestUrlRequestListener(); | 775 final TestUrlRequestListener listener = new TestUrlRequestListener(); |
751 listener.setAutoAdvance(false); | 776 listener.setAutoAdvance(false); |
752 final UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest
( | 777 final UrlRequest urlRequest = |
753 NativeTestServer.getRedirectURL(), listener, listener.getExecuto
r()); | 778 new UrlRequest.Builder(NativeTestServer.getRedirectURL(), listen
er, |
| 779 listener.getExecutor(), mActivity.mCronetE
ngine) |
| 780 .build(); |
754 | 781 |
755 // Try to read before starting request. | 782 // Try to read before starting request. |
756 try { | 783 try { |
757 listener.startNextRead(urlRequest); | 784 listener.startNextRead(urlRequest); |
758 fail("Exception not thrown"); | 785 fail("Exception not thrown"); |
759 } catch (IllegalStateException e) { | 786 } catch (IllegalStateException e) { |
760 assertEquals("Unexpected read attempt.", | 787 assertEquals("Unexpected read attempt.", |
761 e.getMessage()); | 788 e.getMessage()); |
762 } | 789 } |
763 | 790 |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
825 assertEquals("Unexpected read attempt.", | 852 assertEquals("Unexpected read attempt.", |
826 e.getMessage()); | 853 e.getMessage()); |
827 } | 854 } |
828 } | 855 } |
829 | 856 |
830 @SmallTest | 857 @SmallTest |
831 @Feature({"Cronet"}) | 858 @Feature({"Cronet"}) |
832 public void testUnexpectedFollowRedirects() throws Exception { | 859 public void testUnexpectedFollowRedirects() throws Exception { |
833 final TestUrlRequestListener listener = new TestUrlRequestListener(); | 860 final TestUrlRequestListener listener = new TestUrlRequestListener(); |
834 listener.setAutoAdvance(false); | 861 listener.setAutoAdvance(false); |
835 final UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest
( | 862 final UrlRequest urlRequest = |
836 NativeTestServer.getRedirectURL(), listener, listener.getExecuto
r()); | 863 new UrlRequest.Builder(NativeTestServer.getRedirectURL(), listen
er, |
| 864 listener.getExecutor(), mActivity.mCronetE
ngine) |
| 865 .build(); |
837 | 866 |
838 // Try to follow a redirect before starting the request. | 867 // Try to follow a redirect before starting the request. |
839 try { | 868 try { |
840 urlRequest.followRedirect(); | 869 urlRequest.followRedirect(); |
841 fail("Exception not thrown"); | 870 fail("Exception not thrown"); |
842 } catch (IllegalStateException e) { | 871 } catch (IllegalStateException e) { |
843 assertEquals("No redirect to follow.", | 872 assertEquals("No redirect to follow.", |
844 e.getMessage()); | 873 e.getMessage()); |
845 } | 874 } |
846 | 875 |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
905 } catch (IllegalStateException e) { | 934 } catch (IllegalStateException e) { |
906 assertEquals("No redirect to follow.", | 935 assertEquals("No redirect to follow.", |
907 e.getMessage()); | 936 e.getMessage()); |
908 } | 937 } |
909 } | 938 } |
910 | 939 |
911 @SmallTest | 940 @SmallTest |
912 @Feature({"Cronet"}) | 941 @Feature({"Cronet"}) |
913 public void testUploadSetDataProvider() throws Exception { | 942 public void testUploadSetDataProvider() throws Exception { |
914 TestUrlRequestListener listener = new TestUrlRequestListener(); | 943 TestUrlRequestListener listener = new TestUrlRequestListener(); |
915 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 944 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), |
916 NativeTestServer.getEchoBodyURL(), listener, listener.getExecuto
r()); | 945 listener, listener.getExecutor(), mActivity.mCronetEngine); |
917 | 946 |
918 try { | 947 try { |
919 urlRequest.setUploadDataProvider(null, listener.getExecutor()); | 948 builder.setUploadDataProvider(null, listener.getExecutor()); |
920 fail("Exception not thrown"); | 949 fail("Exception not thrown"); |
921 } catch (NullPointerException e) { | 950 } catch (NullPointerException e) { |
922 assertEquals("Invalid UploadDataProvider.", e.getMessage()); | 951 assertEquals("Invalid UploadDataProvider.", e.getMessage()); |
923 } | 952 } |
924 | 953 |
925 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 954 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
926 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); | 955 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); |
927 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor()); | 956 builder.setUploadDataProvider(dataProvider, listener.getExecutor()); |
928 try { | 957 try { |
929 urlRequest.start(); | 958 builder.build().start(); |
930 fail("Exception not thrown"); | 959 fail("Exception not thrown"); |
931 } catch (IllegalArgumentException e) { | 960 } catch (IllegalArgumentException e) { |
932 assertEquals("Requests with upload data must have a Content-Type.",
e.getMessage()); | 961 assertEquals("Requests with upload data must have a Content-Type.",
e.getMessage()); |
933 } | 962 } |
934 } | 963 } |
935 | 964 |
936 @SmallTest | 965 @SmallTest |
937 @Feature({"Cronet"}) | 966 @Feature({"Cronet"}) |
938 public void testUploadEmptyBodySync() throws Exception { | 967 public void testUploadEmptyBodySync() throws Exception { |
939 TestUrlRequestListener listener = new TestUrlRequestListener(); | 968 TestUrlRequestListener listener = new TestUrlRequestListener(); |
940 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 969 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), |
941 NativeTestServer.getEchoBodyURL(), listener, listener.getExecuto
r()); | 970 listener, listener.getExecutor(), mActivity.mCronetEngine); |
942 | 971 |
943 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 972 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
944 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); | 973 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); |
945 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor()); | 974 builder.setUploadDataProvider(dataProvider, listener.getExecutor()); |
946 urlRequest.addHeader("Content-Type", "useless/string"); | 975 builder.addHeader("Content-Type", "useless/string"); |
947 urlRequest.start(); | 976 builder.build().start(); |
948 listener.blockForDone(); | 977 listener.blockForDone(); |
949 | 978 |
950 assertEquals(0, dataProvider.getLength()); | 979 assertEquals(0, dataProvider.getLength()); |
951 assertEquals(0, dataProvider.getNumReadCalls()); | 980 assertEquals(0, dataProvider.getNumReadCalls()); |
952 assertEquals(0, dataProvider.getNumRewindCalls()); | 981 assertEquals(0, dataProvider.getNumRewindCalls()); |
953 | 982 |
954 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); | 983 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); |
955 assertEquals("", listener.mResponseAsString); | 984 assertEquals("", listener.mResponseAsString); |
956 } | 985 } |
957 | 986 |
958 @SmallTest | 987 @SmallTest |
959 @Feature({"Cronet"}) | 988 @Feature({"Cronet"}) |
960 public void testUploadSync() throws Exception { | 989 public void testUploadSync() throws Exception { |
961 TestUrlRequestListener listener = new TestUrlRequestListener(); | 990 TestUrlRequestListener listener = new TestUrlRequestListener(); |
962 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 991 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), |
963 NativeTestServer.getEchoBodyURL(), listener, listener.getExecuto
r()); | 992 listener, listener.getExecutor(), mActivity.mCronetEngine); |
964 | 993 |
965 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 994 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
966 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); | 995 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); |
967 dataProvider.addRead("test".getBytes()); | 996 dataProvider.addRead("test".getBytes()); |
968 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor()); | 997 builder.setUploadDataProvider(dataProvider, listener.getExecutor()); |
969 urlRequest.addHeader("Content-Type", "useless/string"); | 998 builder.addHeader("Content-Type", "useless/string"); |
970 urlRequest.start(); | 999 builder.build().start(); |
971 listener.blockForDone(); | 1000 listener.blockForDone(); |
972 | 1001 |
973 assertEquals(4, dataProvider.getLength()); | 1002 assertEquals(4, dataProvider.getLength()); |
974 assertEquals(1, dataProvider.getNumReadCalls()); | 1003 assertEquals(1, dataProvider.getNumReadCalls()); |
975 assertEquals(0, dataProvider.getNumRewindCalls()); | 1004 assertEquals(0, dataProvider.getNumRewindCalls()); |
976 | 1005 |
977 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); | 1006 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); |
978 assertEquals("test", listener.mResponseAsString); | 1007 assertEquals("test", listener.mResponseAsString); |
979 } | 1008 } |
980 | 1009 |
981 @SmallTest | 1010 @SmallTest |
982 @Feature({"Cronet"}) | 1011 @Feature({"Cronet"}) |
983 public void testUploadMultiplePiecesSync() throws Exception { | 1012 public void testUploadMultiplePiecesSync() throws Exception { |
984 TestUrlRequestListener listener = new TestUrlRequestListener(); | 1013 TestUrlRequestListener listener = new TestUrlRequestListener(); |
985 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 1014 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), |
986 NativeTestServer.getEchoBodyURL(), listener, listener.getExecuto
r()); | 1015 listener, listener.getExecutor(), mActivity.mCronetEngine); |
987 | 1016 |
988 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1017 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
989 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); | 1018 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); |
990 dataProvider.addRead("Y".getBytes()); | 1019 dataProvider.addRead("Y".getBytes()); |
991 dataProvider.addRead("et ".getBytes()); | 1020 dataProvider.addRead("et ".getBytes()); |
992 dataProvider.addRead("another ".getBytes()); | 1021 dataProvider.addRead("another ".getBytes()); |
993 dataProvider.addRead("test".getBytes()); | 1022 dataProvider.addRead("test".getBytes()); |
994 | 1023 |
995 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor()); | 1024 builder.setUploadDataProvider(dataProvider, listener.getExecutor()); |
996 urlRequest.addHeader("Content-Type", "useless/string"); | 1025 builder.addHeader("Content-Type", "useless/string"); |
997 urlRequest.start(); | 1026 builder.build().start(); |
998 listener.blockForDone(); | 1027 listener.blockForDone(); |
999 | 1028 |
1000 assertEquals(16, dataProvider.getLength()); | 1029 assertEquals(16, dataProvider.getLength()); |
1001 assertEquals(4, dataProvider.getNumReadCalls()); | 1030 assertEquals(4, dataProvider.getNumReadCalls()); |
1002 assertEquals(0, dataProvider.getNumRewindCalls()); | 1031 assertEquals(0, dataProvider.getNumRewindCalls()); |
1003 | 1032 |
1004 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); | 1033 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); |
1005 assertEquals("Yet another test", listener.mResponseAsString); | 1034 assertEquals("Yet another test", listener.mResponseAsString); |
1006 } | 1035 } |
1007 | 1036 |
1008 @SmallTest | 1037 @SmallTest |
1009 @Feature({"Cronet"}) | 1038 @Feature({"Cronet"}) |
1010 public void testUploadMultiplePiecesAsync() throws Exception { | 1039 public void testUploadMultiplePiecesAsync() throws Exception { |
1011 TestUrlRequestListener listener = new TestUrlRequestListener(); | 1040 TestUrlRequestListener listener = new TestUrlRequestListener(); |
1012 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 1041 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), |
1013 NativeTestServer.getEchoBodyURL(), listener, listener.getExecuto
r()); | 1042 listener, listener.getExecutor(), mActivity.mCronetEngine); |
1014 | 1043 |
1015 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1044 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1016 TestUploadDataProvider.SuccessCallbackMode.ASYNC, listener.getEx
ecutor()); | 1045 TestUploadDataProvider.SuccessCallbackMode.ASYNC, listener.getEx
ecutor()); |
1017 dataProvider.addRead("Y".getBytes()); | 1046 dataProvider.addRead("Y".getBytes()); |
1018 dataProvider.addRead("et ".getBytes()); | 1047 dataProvider.addRead("et ".getBytes()); |
1019 dataProvider.addRead("another ".getBytes()); | 1048 dataProvider.addRead("another ".getBytes()); |
1020 dataProvider.addRead("test".getBytes()); | 1049 dataProvider.addRead("test".getBytes()); |
1021 | 1050 |
1022 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor()); | 1051 builder.setUploadDataProvider(dataProvider, listener.getExecutor()); |
1023 urlRequest.addHeader("Content-Type", "useless/string"); | 1052 builder.addHeader("Content-Type", "useless/string"); |
1024 urlRequest.start(); | 1053 builder.build().start(); |
1025 listener.blockForDone(); | 1054 listener.blockForDone(); |
1026 | 1055 |
1027 assertEquals(16, dataProvider.getLength()); | 1056 assertEquals(16, dataProvider.getLength()); |
1028 assertEquals(4, dataProvider.getNumReadCalls()); | 1057 assertEquals(4, dataProvider.getNumReadCalls()); |
1029 assertEquals(0, dataProvider.getNumRewindCalls()); | 1058 assertEquals(0, dataProvider.getNumRewindCalls()); |
1030 | 1059 |
1031 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); | 1060 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); |
1032 assertEquals("Yet another test", listener.mResponseAsString); | 1061 assertEquals("Yet another test", listener.mResponseAsString); |
1033 } | 1062 } |
1034 | 1063 |
1035 @SmallTest | 1064 @SmallTest |
1036 @Feature({"Cronet"}) | 1065 @Feature({"Cronet"}) |
1037 public void testUploadChangesDefaultMethod() throws Exception { | 1066 public void testUploadChangesDefaultMethod() throws Exception { |
1038 TestUrlRequestListener listener = new TestUrlRequestListener(); | 1067 TestUrlRequestListener listener = new TestUrlRequestListener(); |
1039 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 1068 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoMethodURL(), |
1040 NativeTestServer.getEchoMethodURL(), listener, listener.getExecu
tor()); | 1069 listener, listener.getExecutor(), mActivity.mCronetEngine); |
1041 | 1070 |
1042 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1071 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1043 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); | 1072 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); |
1044 dataProvider.addRead("test".getBytes()); | 1073 dataProvider.addRead("test".getBytes()); |
1045 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor()); | 1074 builder.setUploadDataProvider(dataProvider, listener.getExecutor()); |
1046 urlRequest.addHeader("Content-Type", "useless/string"); | 1075 builder.addHeader("Content-Type", "useless/string"); |
1047 urlRequest.start(); | 1076 builder.build().start(); |
1048 listener.blockForDone(); | 1077 listener.blockForDone(); |
1049 | 1078 |
1050 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); | 1079 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); |
1051 assertEquals("POST", listener.mResponseAsString); | 1080 assertEquals("POST", listener.mResponseAsString); |
1052 } | 1081 } |
1053 | 1082 |
1054 @SmallTest | 1083 @SmallTest |
1055 @Feature({"Cronet"}) | 1084 @Feature({"Cronet"}) |
1056 public void testUploadWithSetMethod() throws Exception { | 1085 public void testUploadWithSetMethod() throws Exception { |
1057 TestUrlRequestListener listener = new TestUrlRequestListener(); | 1086 TestUrlRequestListener listener = new TestUrlRequestListener(); |
1058 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 1087 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoMethodURL(), |
1059 NativeTestServer.getEchoMethodURL(), listener, listener.getExecu
tor()); | 1088 listener, listener.getExecutor(), mActivity.mCronetEngine); |
1060 | 1089 |
1061 final String method = "PUT"; | 1090 final String method = "PUT"; |
1062 urlRequest.setHttpMethod(method); | 1091 builder.setHttpMethod(method); |
1063 | 1092 |
1064 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1093 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1065 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); | 1094 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); |
1066 dataProvider.addRead("test".getBytes()); | 1095 dataProvider.addRead("test".getBytes()); |
1067 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor()); | 1096 builder.setUploadDataProvider(dataProvider, listener.getExecutor()); |
1068 urlRequest.addHeader("Content-Type", "useless/string"); | 1097 builder.addHeader("Content-Type", "useless/string"); |
1069 urlRequest.start(); | 1098 builder.build().start(); |
1070 listener.blockForDone(); | 1099 listener.blockForDone(); |
1071 | 1100 |
1072 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); | 1101 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); |
1073 assertEquals("PUT", listener.mResponseAsString); | 1102 assertEquals("PUT", listener.mResponseAsString); |
1074 } | 1103 } |
1075 | 1104 |
1076 @SmallTest | 1105 @SmallTest |
1077 @Feature({"Cronet"}) | 1106 @Feature({"Cronet"}) |
1078 public void testUploadRedirectSync() throws Exception { | 1107 public void testUploadRedirectSync() throws Exception { |
1079 TestUrlRequestListener listener = new TestUrlRequestListener(); | 1108 TestUrlRequestListener listener = new TestUrlRequestListener(); |
1080 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 1109 UrlRequest.Builder builder = |
1081 NativeTestServer.getRedirectToEchoBody(), listener, listener.get
Executor()); | 1110 new UrlRequest.Builder(NativeTestServer.getRedirectToEchoBody(),
listener, |
| 1111 listener.getExecutor(), mActivity.mCronetEngine); |
1082 | 1112 |
1083 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1113 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1084 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); | 1114 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); |
1085 dataProvider.addRead("test".getBytes()); | 1115 dataProvider.addRead("test".getBytes()); |
1086 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor()); | 1116 builder.setUploadDataProvider(dataProvider, listener.getExecutor()); |
1087 urlRequest.addHeader("Content-Type", "useless/string"); | 1117 builder.addHeader("Content-Type", "useless/string"); |
1088 urlRequest.start(); | 1118 builder.build().start(); |
1089 listener.blockForDone(); | 1119 listener.blockForDone(); |
1090 | 1120 |
1091 // 1 read call before the rewind, 1 after. | 1121 // 1 read call before the rewind, 1 after. |
1092 assertEquals(2, dataProvider.getNumReadCalls()); | 1122 assertEquals(2, dataProvider.getNumReadCalls()); |
1093 assertEquals(1, dataProvider.getNumRewindCalls()); | 1123 assertEquals(1, dataProvider.getNumRewindCalls()); |
1094 | 1124 |
1095 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); | 1125 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); |
1096 assertEquals("test", listener.mResponseAsString); | 1126 assertEquals("test", listener.mResponseAsString); |
1097 } | 1127 } |
1098 | 1128 |
1099 @SmallTest | 1129 @SmallTest |
1100 @Feature({"Cronet"}) | 1130 @Feature({"Cronet"}) |
1101 public void testUploadRedirectAsync() throws Exception { | 1131 public void testUploadRedirectAsync() throws Exception { |
1102 TestUrlRequestListener listener = new TestUrlRequestListener(); | 1132 TestUrlRequestListener listener = new TestUrlRequestListener(); |
1103 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 1133 UrlRequest.Builder builder = |
1104 NativeTestServer.getRedirectToEchoBody(), listener, listener.get
Executor()); | 1134 new UrlRequest.Builder(NativeTestServer.getRedirectToEchoBody(),
listener, |
| 1135 listener.getExecutor(), mActivity.mCronetEngine); |
1105 | 1136 |
1106 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1137 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1107 TestUploadDataProvider.SuccessCallbackMode.ASYNC, listener.getEx
ecutor()); | 1138 TestUploadDataProvider.SuccessCallbackMode.ASYNC, listener.getEx
ecutor()); |
1108 dataProvider.addRead("test".getBytes()); | 1139 dataProvider.addRead("test".getBytes()); |
1109 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor()); | 1140 builder.setUploadDataProvider(dataProvider, listener.getExecutor()); |
1110 urlRequest.addHeader("Content-Type", "useless/string"); | 1141 builder.addHeader("Content-Type", "useless/string"); |
1111 urlRequest.start(); | 1142 builder.build().start(); |
1112 listener.blockForDone(); | 1143 listener.blockForDone(); |
1113 | 1144 |
1114 // 1 read call before the rewind, 1 after. | 1145 // 1 read call before the rewind, 1 after. |
1115 assertEquals(2, dataProvider.getNumReadCalls()); | 1146 assertEquals(2, dataProvider.getNumReadCalls()); |
1116 assertEquals(1, dataProvider.getNumRewindCalls()); | 1147 assertEquals(1, dataProvider.getNumRewindCalls()); |
1117 | 1148 |
1118 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); | 1149 assertEquals(200, listener.mResponseInfo.getHttpStatusCode()); |
1119 assertEquals("test", listener.mResponseAsString); | 1150 assertEquals("test", listener.mResponseAsString); |
1120 } | 1151 } |
1121 | 1152 |
1122 @SmallTest | 1153 @SmallTest |
1123 @Feature({"Cronet"}) | 1154 @Feature({"Cronet"}) |
1124 public void testUploadReadFailSync() throws Exception { | 1155 public void testUploadReadFailSync() throws Exception { |
1125 TestUrlRequestListener listener = new TestUrlRequestListener(); | 1156 TestUrlRequestListener listener = new TestUrlRequestListener(); |
1126 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 1157 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), |
1127 NativeTestServer.getEchoBodyURL(), listener, listener.getExecuto
r()); | 1158 listener, listener.getExecutor(), mActivity.mCronetEngine); |
1128 | 1159 |
1129 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1160 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1130 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); | 1161 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); |
1131 dataProvider.setReadFailure(0, TestUploadDataProvider.FailMode.CALLBACK_
SYNC); | 1162 dataProvider.setReadFailure(0, TestUploadDataProvider.FailMode.CALLBACK_
SYNC); |
1132 // This will never be read, but if the length is 0, read may never be | 1163 // This will never be read, but if the length is 0, read may never be |
1133 // called. | 1164 // called. |
1134 dataProvider.addRead("test".getBytes()); | 1165 dataProvider.addRead("test".getBytes()); |
1135 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor()); | 1166 builder.setUploadDataProvider(dataProvider, listener.getExecutor()); |
1136 urlRequest.addHeader("Content-Type", "useless/string"); | 1167 builder.addHeader("Content-Type", "useless/string"); |
1137 urlRequest.start(); | 1168 builder.build().start(); |
1138 listener.blockForDone(); | 1169 listener.blockForDone(); |
1139 | 1170 |
1140 assertEquals(1, dataProvider.getNumReadCalls()); | 1171 assertEquals(1, dataProvider.getNumReadCalls()); |
1141 assertEquals(0, dataProvider.getNumRewindCalls()); | 1172 assertEquals(0, dataProvider.getNumRewindCalls()); |
1142 | 1173 |
1143 assertEquals("Exception received from UploadDataProvider", listener.mErr
or.getMessage()); | 1174 assertEquals("Exception received from UploadDataProvider", listener.mErr
or.getMessage()); |
1144 assertEquals("Sync read failure", listener.mError.getCause().getMessage(
)); | 1175 assertEquals("Sync read failure", listener.mError.getCause().getMessage(
)); |
1145 assertEquals(null, listener.mResponseInfo); | 1176 assertEquals(null, listener.mResponseInfo); |
1146 } | 1177 } |
1147 | 1178 |
1148 @SmallTest | 1179 @SmallTest |
1149 @Feature({"Cronet"}) | 1180 @Feature({"Cronet"}) |
1150 public void testUploadReadFailAsync() throws Exception { | 1181 public void testUploadReadFailAsync() throws Exception { |
1151 TestUrlRequestListener listener = new TestUrlRequestListener(); | 1182 TestUrlRequestListener listener = new TestUrlRequestListener(); |
1152 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 1183 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), |
1153 NativeTestServer.getEchoBodyURL(), listener, listener.getExecuto
r()); | 1184 listener, listener.getExecutor(), mActivity.mCronetEngine); |
1154 | 1185 |
1155 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1186 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1156 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); | 1187 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); |
1157 dataProvider.setReadFailure(0, TestUploadDataProvider.FailMode.CALLBACK_
ASYNC); | 1188 dataProvider.setReadFailure(0, TestUploadDataProvider.FailMode.CALLBACK_
ASYNC); |
1158 // This will never be read, but if the length is 0, read may never be | 1189 // This will never be read, but if the length is 0, read may never be |
1159 // called. | 1190 // called. |
1160 dataProvider.addRead("test".getBytes()); | 1191 dataProvider.addRead("test".getBytes()); |
1161 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor()); | 1192 builder.setUploadDataProvider(dataProvider, listener.getExecutor()); |
1162 urlRequest.addHeader("Content-Type", "useless/string"); | 1193 builder.addHeader("Content-Type", "useless/string"); |
1163 urlRequest.start(); | 1194 builder.build().start(); |
1164 listener.blockForDone(); | 1195 listener.blockForDone(); |
1165 | 1196 |
1166 assertEquals(1, dataProvider.getNumReadCalls()); | 1197 assertEquals(1, dataProvider.getNumReadCalls()); |
1167 assertEquals(0, dataProvider.getNumRewindCalls()); | 1198 assertEquals(0, dataProvider.getNumRewindCalls()); |
1168 | 1199 |
1169 assertEquals("Exception received from UploadDataProvider", listener.mErr
or.getMessage()); | 1200 assertEquals("Exception received from UploadDataProvider", listener.mErr
or.getMessage()); |
1170 assertEquals("Async read failure", listener.mError.getCause().getMessage
()); | 1201 assertEquals("Async read failure", listener.mError.getCause().getMessage
()); |
1171 assertEquals(null, listener.mResponseInfo); | 1202 assertEquals(null, listener.mResponseInfo); |
1172 } | 1203 } |
1173 | 1204 |
1174 @SmallTest | 1205 @SmallTest |
1175 @Feature({"Cronet"}) | 1206 @Feature({"Cronet"}) |
1176 public void testUploadReadFailThrown() throws Exception { | 1207 public void testUploadReadFailThrown() throws Exception { |
1177 TestUrlRequestListener listener = new TestUrlRequestListener(); | 1208 TestUrlRequestListener listener = new TestUrlRequestListener(); |
1178 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 1209 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), |
1179 NativeTestServer.getEchoBodyURL(), listener, listener.getExecuto
r()); | 1210 listener, listener.getExecutor(), mActivity.mCronetEngine); |
1180 | 1211 |
1181 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1212 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1182 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); | 1213 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); |
1183 dataProvider.setReadFailure(0, TestUploadDataProvider.FailMode.THROWN); | 1214 dataProvider.setReadFailure(0, TestUploadDataProvider.FailMode.THROWN); |
1184 // This will never be read, but if the length is 0, read may never be | 1215 // This will never be read, but if the length is 0, read may never be |
1185 // called. | 1216 // called. |
1186 dataProvider.addRead("test".getBytes()); | 1217 dataProvider.addRead("test".getBytes()); |
1187 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor()); | 1218 builder.setUploadDataProvider(dataProvider, listener.getExecutor()); |
1188 urlRequest.addHeader("Content-Type", "useless/string"); | 1219 builder.addHeader("Content-Type", "useless/string"); |
1189 urlRequest.start(); | 1220 builder.build().start(); |
1190 listener.blockForDone(); | 1221 listener.blockForDone(); |
1191 | 1222 |
1192 assertEquals(1, dataProvider.getNumReadCalls()); | 1223 assertEquals(1, dataProvider.getNumReadCalls()); |
1193 assertEquals(0, dataProvider.getNumRewindCalls()); | 1224 assertEquals(0, dataProvider.getNumRewindCalls()); |
1194 | 1225 |
1195 assertEquals("Exception received from UploadDataProvider", listener.mErr
or.getMessage()); | 1226 assertEquals("Exception received from UploadDataProvider", listener.mErr
or.getMessage()); |
1196 assertEquals("Thrown read failure", listener.mError.getCause().getMessag
e()); | 1227 assertEquals("Thrown read failure", listener.mError.getCause().getMessag
e()); |
1197 assertEquals(null, listener.mResponseInfo); | 1228 assertEquals(null, listener.mResponseInfo); |
1198 } | 1229 } |
1199 | 1230 |
1200 @SmallTest | 1231 @SmallTest |
1201 @Feature({"Cronet"}) | 1232 @Feature({"Cronet"}) |
1202 public void testUploadRewindFailSync() throws Exception { | 1233 public void testUploadRewindFailSync() throws Exception { |
1203 TestUrlRequestListener listener = new TestUrlRequestListener(); | 1234 TestUrlRequestListener listener = new TestUrlRequestListener(); |
1204 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 1235 UrlRequest.Builder builder = |
1205 NativeTestServer.getRedirectToEchoBody(), listener, listener.get
Executor()); | 1236 new UrlRequest.Builder(NativeTestServer.getRedirectToEchoBody(),
listener, |
| 1237 listener.getExecutor(), mActivity.mCronetEngine); |
1206 | 1238 |
1207 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1239 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1208 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); | 1240 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); |
1209 dataProvider.setRewindFailure(TestUploadDataProvider.FailMode.CALLBACK_S
YNC); | 1241 dataProvider.setRewindFailure(TestUploadDataProvider.FailMode.CALLBACK_S
YNC); |
1210 dataProvider.addRead("test".getBytes()); | 1242 dataProvider.addRead("test".getBytes()); |
1211 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor()); | 1243 builder.setUploadDataProvider(dataProvider, listener.getExecutor()); |
1212 urlRequest.addHeader("Content-Type", "useless/string"); | 1244 builder.addHeader("Content-Type", "useless/string"); |
1213 urlRequest.start(); | 1245 builder.build().start(); |
1214 listener.blockForDone(); | 1246 listener.blockForDone(); |
1215 | 1247 |
1216 assertEquals(1, dataProvider.getNumReadCalls()); | 1248 assertEquals(1, dataProvider.getNumReadCalls()); |
1217 assertEquals(1, dataProvider.getNumRewindCalls()); | 1249 assertEquals(1, dataProvider.getNumRewindCalls()); |
1218 | 1250 |
1219 assertEquals("Exception received from UploadDataProvider", listener.mErr
or.getMessage()); | 1251 assertEquals("Exception received from UploadDataProvider", listener.mErr
or.getMessage()); |
1220 assertEquals("Sync rewind failure", listener.mError.getCause().getMessag
e()); | 1252 assertEquals("Sync rewind failure", listener.mError.getCause().getMessag
e()); |
1221 assertEquals(null, listener.mResponseInfo); | 1253 assertEquals(null, listener.mResponseInfo); |
1222 } | 1254 } |
1223 | 1255 |
1224 @SmallTest | 1256 @SmallTest |
1225 @Feature({"Cronet"}) | 1257 @Feature({"Cronet"}) |
1226 public void testUploadRewindFailAsync() throws Exception { | 1258 public void testUploadRewindFailAsync() throws Exception { |
1227 TestUrlRequestListener listener = new TestUrlRequestListener(); | 1259 TestUrlRequestListener listener = new TestUrlRequestListener(); |
1228 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 1260 UrlRequest.Builder builder = |
1229 NativeTestServer.getRedirectToEchoBody(), listener, listener.get
Executor()); | 1261 new UrlRequest.Builder(NativeTestServer.getRedirectToEchoBody(),
listener, |
| 1262 listener.getExecutor(), mActivity.mCronetEngine); |
1230 | 1263 |
1231 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1264 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1232 TestUploadDataProvider.SuccessCallbackMode.ASYNC, listener.getEx
ecutor()); | 1265 TestUploadDataProvider.SuccessCallbackMode.ASYNC, listener.getEx
ecutor()); |
1233 dataProvider.setRewindFailure(TestUploadDataProvider.FailMode.CALLBACK_A
SYNC); | 1266 dataProvider.setRewindFailure(TestUploadDataProvider.FailMode.CALLBACK_A
SYNC); |
1234 dataProvider.addRead("test".getBytes()); | 1267 dataProvider.addRead("test".getBytes()); |
1235 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor()); | 1268 builder.setUploadDataProvider(dataProvider, listener.getExecutor()); |
1236 urlRequest.addHeader("Content-Type", "useless/string"); | 1269 builder.addHeader("Content-Type", "useless/string"); |
1237 urlRequest.start(); | 1270 builder.build().start(); |
1238 listener.blockForDone(); | 1271 listener.blockForDone(); |
1239 | 1272 |
1240 assertEquals(1, dataProvider.getNumReadCalls()); | 1273 assertEquals(1, dataProvider.getNumReadCalls()); |
1241 assertEquals(1, dataProvider.getNumRewindCalls()); | 1274 assertEquals(1, dataProvider.getNumRewindCalls()); |
1242 | 1275 |
1243 assertEquals("Exception received from UploadDataProvider", listener.mErr
or.getMessage()); | 1276 assertEquals("Exception received from UploadDataProvider", listener.mErr
or.getMessage()); |
1244 assertEquals("Async rewind failure", listener.mError.getCause().getMessa
ge()); | 1277 assertEquals("Async rewind failure", listener.mError.getCause().getMessa
ge()); |
1245 assertEquals(null, listener.mResponseInfo); | 1278 assertEquals(null, listener.mResponseInfo); |
1246 } | 1279 } |
1247 | 1280 |
1248 @SmallTest | 1281 @SmallTest |
1249 @Feature({"Cronet"}) | 1282 @Feature({"Cronet"}) |
1250 public void testUploadRewindFailThrown() throws Exception { | 1283 public void testUploadRewindFailThrown() throws Exception { |
1251 TestUrlRequestListener listener = new TestUrlRequestListener(); | 1284 TestUrlRequestListener listener = new TestUrlRequestListener(); |
1252 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 1285 UrlRequest.Builder builder = |
1253 NativeTestServer.getRedirectToEchoBody(), listener, listener.get
Executor()); | 1286 new UrlRequest.Builder(NativeTestServer.getRedirectToEchoBody(),
listener, |
| 1287 listener.getExecutor(), mActivity.mCronetEngine); |
1254 | 1288 |
1255 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1289 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1256 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); | 1290 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); |
1257 dataProvider.setRewindFailure(TestUploadDataProvider.FailMode.THROWN); | 1291 dataProvider.setRewindFailure(TestUploadDataProvider.FailMode.THROWN); |
1258 dataProvider.addRead("test".getBytes()); | 1292 dataProvider.addRead("test".getBytes()); |
1259 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor()); | 1293 builder.setUploadDataProvider(dataProvider, listener.getExecutor()); |
1260 urlRequest.addHeader("Content-Type", "useless/string"); | 1294 builder.addHeader("Content-Type", "useless/string"); |
1261 urlRequest.start(); | 1295 builder.build().start(); |
1262 listener.blockForDone(); | 1296 listener.blockForDone(); |
1263 | 1297 |
1264 assertEquals(1, dataProvider.getNumReadCalls()); | 1298 assertEquals(1, dataProvider.getNumReadCalls()); |
1265 assertEquals(1, dataProvider.getNumRewindCalls()); | 1299 assertEquals(1, dataProvider.getNumRewindCalls()); |
1266 | 1300 |
1267 assertEquals("Exception received from UploadDataProvider", listener.mErr
or.getMessage()); | 1301 assertEquals("Exception received from UploadDataProvider", listener.mErr
or.getMessage()); |
1268 assertEquals("Thrown rewind failure", listener.mError.getCause().getMess
age()); | 1302 assertEquals("Thrown rewind failure", listener.mError.getCause().getMess
age()); |
1269 assertEquals(null, listener.mResponseInfo); | 1303 assertEquals(null, listener.mResponseInfo); |
1270 } | 1304 } |
1271 | 1305 |
1272 @SmallTest | 1306 @SmallTest |
1273 @Feature({"Cronet"}) | 1307 @Feature({"Cronet"}) |
1274 public void testUploadChunked() throws Exception { | 1308 public void testUploadChunked() throws Exception { |
1275 TestUrlRequestListener listener = new TestUrlRequestListener(); | 1309 TestUrlRequestListener listener = new TestUrlRequestListener(); |
1276 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 1310 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), |
1277 NativeTestServer.getEchoBodyURL(), listener, listener.getExecuto
r()); | 1311 listener, listener.getExecutor(), mActivity.mCronetEngine); |
1278 | 1312 |
1279 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1313 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1280 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); | 1314 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); |
1281 dataProvider.addRead("test hello".getBytes()); | 1315 dataProvider.addRead("test hello".getBytes()); |
1282 dataProvider.setChunked(true); | 1316 dataProvider.setChunked(true); |
1283 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor()); | 1317 builder.setUploadDataProvider(dataProvider, listener.getExecutor()); |
1284 urlRequest.addHeader("Content-Type", "useless/string"); | 1318 builder.addHeader("Content-Type", "useless/string"); |
1285 | 1319 |
1286 assertEquals(-1, dataProvider.getLength()); | 1320 assertEquals(-1, dataProvider.getLength()); |
1287 | 1321 |
1288 urlRequest.start(); | 1322 builder.build().start(); |
1289 listener.blockForDone(); | 1323 listener.blockForDone(); |
1290 | 1324 |
1291 // 1 read call for one data chunk. | 1325 // 1 read call for one data chunk. |
1292 assertEquals(1, dataProvider.getNumReadCalls()); | 1326 assertEquals(1, dataProvider.getNumReadCalls()); |
1293 assertEquals("test hello", listener.mResponseAsString); | 1327 assertEquals("test hello", listener.mResponseAsString); |
1294 } | 1328 } |
1295 | 1329 |
1296 @SmallTest | 1330 @SmallTest |
1297 @Feature({"Cronet"}) | 1331 @Feature({"Cronet"}) |
1298 public void testUploadChunkedLastReadZeroLengthBody() throws Exception { | 1332 public void testUploadChunkedLastReadZeroLengthBody() throws Exception { |
1299 TestUrlRequestListener listener = new TestUrlRequestListener(); | 1333 TestUrlRequestListener listener = new TestUrlRequestListener(); |
1300 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 1334 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), |
1301 NativeTestServer.getEchoBodyURL(), listener, listener.getExecuto
r()); | 1335 listener, listener.getExecutor(), mActivity.mCronetEngine); |
1302 | 1336 |
1303 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1337 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1304 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); | 1338 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); |
1305 // Add 3 reads. The last read has a 0-length body. | 1339 // Add 3 reads. The last read has a 0-length body. |
1306 dataProvider.addRead("hello there".getBytes()); | 1340 dataProvider.addRead("hello there".getBytes()); |
1307 dataProvider.addRead("!".getBytes()); | 1341 dataProvider.addRead("!".getBytes()); |
1308 dataProvider.addRead("".getBytes()); | 1342 dataProvider.addRead("".getBytes()); |
1309 dataProvider.setChunked(true); | 1343 dataProvider.setChunked(true); |
1310 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor()); | 1344 builder.setUploadDataProvider(dataProvider, listener.getExecutor()); |
1311 urlRequest.addHeader("Content-Type", "useless/string"); | 1345 builder.addHeader("Content-Type", "useless/string"); |
1312 | 1346 |
1313 assertEquals(-1, dataProvider.getLength()); | 1347 assertEquals(-1, dataProvider.getLength()); |
1314 | 1348 |
1315 urlRequest.start(); | 1349 builder.build().start(); |
1316 listener.blockForDone(); | 1350 listener.blockForDone(); |
1317 | 1351 |
1318 // 2 read call for the first two data chunks, and 1 for final chunk. | 1352 // 2 read call for the first two data chunks, and 1 for final chunk. |
1319 assertEquals(3, dataProvider.getNumReadCalls()); | 1353 assertEquals(3, dataProvider.getNumReadCalls()); |
1320 assertEquals("hello there!", listener.mResponseAsString); | 1354 assertEquals("hello there!", listener.mResponseAsString); |
1321 } | 1355 } |
1322 | 1356 |
1323 // Test where an upload fails without ever initializing the | 1357 // Test where an upload fails without ever initializing the |
1324 // UploadDataStream, because it can't connect to the server. | 1358 // UploadDataStream, because it can't connect to the server. |
1325 @SmallTest | 1359 @SmallTest |
1326 @Feature({"Cronet"}) | 1360 @Feature({"Cronet"}) |
1327 public void testUploadFailsWithoutInitializingStream() throws Exception { | 1361 public void testUploadFailsWithoutInitializingStream() throws Exception { |
1328 TestUrlRequestListener listener = new TestUrlRequestListener(); | 1362 TestUrlRequestListener listener = new TestUrlRequestListener(); |
1329 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 1363 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), |
1330 NativeTestServer.getEchoBodyURL(), listener, listener.getExecuto
r()); | 1364 listener, listener.getExecutor(), mActivity.mCronetEngine); |
1331 // Shut down the test server, so connecting to it fails. Note that | 1365 // Shut down the test server, so connecting to it fails. Note that |
1332 // calling shutdown again during teardown is safe. | 1366 // calling shutdown again during teardown is safe. |
1333 NativeTestServer.shutdownNativeTestServer(); | 1367 NativeTestServer.shutdownNativeTestServer(); |
1334 | 1368 |
1335 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1369 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1336 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); | 1370 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe
cutor()); |
1337 dataProvider.addRead("test".getBytes()); | 1371 dataProvider.addRead("test".getBytes()); |
1338 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor()); | 1372 builder.setUploadDataProvider(dataProvider, listener.getExecutor()); |
1339 urlRequest.addHeader("Content-Type", "useless/string"); | 1373 builder.addHeader("Content-Type", "useless/string"); |
1340 urlRequest.start(); | 1374 builder.build().start(); |
1341 listener.blockForDone(); | 1375 listener.blockForDone(); |
1342 | 1376 |
1343 assertNull(listener.mResponseInfo); | 1377 assertNull(listener.mResponseInfo); |
1344 assertEquals("Exception in CronetUrlRequest: net::ERR_CONNECTION_REFUSED
", | 1378 assertEquals("Exception in CronetUrlRequest: net::ERR_CONNECTION_REFUSED
", |
1345 listener.mError.getMessage()); | 1379 listener.mError.getMessage()); |
1346 } | 1380 } |
1347 | 1381 |
1348 private void throwOrCancel(FailureType failureType, ResponseStep failureStep
, | 1382 private void throwOrCancel(FailureType failureType, ResponseStep failureStep
, |
1349 boolean expectResponseInfo, boolean expectError) { | 1383 boolean expectResponseInfo, boolean expectError) { |
1350 TestUrlRequestListener listener = new TestUrlRequestListener(); | 1384 TestUrlRequestListener listener = new TestUrlRequestListener(); |
1351 listener.setFailure(failureType, failureStep); | 1385 listener.setFailure(failureType, failureStep); |
1352 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 1386 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
RedirectURL(), |
1353 NativeTestServer.getRedirectURL(), listener, listener.getExecuto
r()); | 1387 listener, listener.getExecutor(), mActivity.mCronetEngine); |
| 1388 UrlRequest urlRequest = builder.build(); |
1354 urlRequest.start(); | 1389 urlRequest.start(); |
1355 listener.blockForDone(); | 1390 listener.blockForDone(); |
1356 assertEquals(1, listener.mRedirectCount); | 1391 assertEquals(1, listener.mRedirectCount); |
1357 assertEquals(listener.mResponseStep, failureStep); | 1392 assertEquals(listener.mResponseStep, failureStep); |
1358 assertTrue(urlRequest.isDone()); | 1393 assertTrue(urlRequest.isDone()); |
1359 assertEquals(expectResponseInfo, listener.mResponseInfo != null); | 1394 assertEquals(expectResponseInfo, listener.mResponseInfo != null); |
1360 assertEquals(expectError, listener.mError != null); | 1395 assertEquals(expectError, listener.mError != null); |
1361 assertEquals(expectError, listener.mOnErrorCalled); | 1396 assertEquals(expectError, listener.mOnErrorCalled); |
1362 } | 1397 } |
1363 | 1398 |
(...skipping 26 matching lines...) Expand all Loading... |
1390 true, false); | 1425 true, false); |
1391 throwOrCancel(FailureType.THROW_SYNC, ResponseStep.ON_READ_COMPLETED, | 1426 throwOrCancel(FailureType.THROW_SYNC, ResponseStep.ON_READ_COMPLETED, |
1392 true, true); | 1427 true, true); |
1393 } | 1428 } |
1394 | 1429 |
1395 @SmallTest | 1430 @SmallTest |
1396 @Feature({"Cronet"}) | 1431 @Feature({"Cronet"}) |
1397 public void testThrowON_SUCCEEDED() { | 1432 public void testThrowON_SUCCEEDED() { |
1398 TestUrlRequestListener listener = new TestUrlRequestListener(); | 1433 TestUrlRequestListener listener = new TestUrlRequestListener(); |
1399 listener.setFailure(FailureType.THROW_SYNC, ResponseStep.ON_SUCCEEDED); | 1434 listener.setFailure(FailureType.THROW_SYNC, ResponseStep.ON_SUCCEEDED); |
1400 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 1435 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
RedirectURL(), |
1401 NativeTestServer.getRedirectURL(), listener, listener.getExecuto
r()); | 1436 listener, listener.getExecutor(), mActivity.mCronetEngine); |
| 1437 UrlRequest urlRequest = builder.build(); |
1402 urlRequest.start(); | 1438 urlRequest.start(); |
1403 listener.blockForDone(); | 1439 listener.blockForDone(); |
1404 assertEquals(1, listener.mRedirectCount); | 1440 assertEquals(1, listener.mRedirectCount); |
1405 assertEquals(listener.mResponseStep, ResponseStep.ON_SUCCEEDED); | 1441 assertEquals(listener.mResponseStep, ResponseStep.ON_SUCCEEDED); |
1406 assertTrue(urlRequest.isDone()); | 1442 assertTrue(urlRequest.isDone()); |
1407 assertNotNull(listener.mResponseInfo); | 1443 assertNotNull(listener.mResponseInfo); |
1408 assertNull(listener.mError); | 1444 assertNull(listener.mError); |
1409 assertFalse(listener.mOnErrorCalled); | 1445 assertFalse(listener.mOnErrorCalled); |
1410 } | 1446 } |
1411 | 1447 |
1412 @SmallTest | 1448 @SmallTest |
1413 @Feature({"Cronet"}) | 1449 @Feature({"Cronet"}) |
1414 public void testExecutorShutdown() { | 1450 public void testExecutorShutdown() { |
1415 TestUrlRequestListener listener = new TestUrlRequestListener(); | 1451 TestUrlRequestListener listener = new TestUrlRequestListener(); |
1416 | 1452 |
1417 listener.setAutoAdvance(false); | 1453 listener.setAutoAdvance(false); |
1418 CronetUrlRequest urlRequest = | 1454 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), |
1419 (CronetUrlRequest) mActivity.mUrlRequestContext.createRequest( | 1455 listener, listener.getExecutor(), mActivity.mCronetEngine); |
1420 NativeTestServer.getEchoBodyURL(), listener, listener.getExecuto
r()); | 1456 CronetUrlRequest urlRequest = (CronetUrlRequest) builder.build(); |
1421 urlRequest.start(); | 1457 urlRequest.start(); |
1422 listener.waitForNextStep(); | 1458 listener.waitForNextStep(); |
1423 assertFalse(listener.isDone()); | 1459 assertFalse(listener.isDone()); |
1424 assertFalse(urlRequest.isDone()); | 1460 assertFalse(urlRequest.isDone()); |
1425 | 1461 |
1426 final ConditionVariable requestDestroyed = new ConditionVariable(false); | 1462 final ConditionVariable requestDestroyed = new ConditionVariable(false); |
1427 urlRequest.setOnDestroyedCallbackForTests(new Runnable() { | 1463 urlRequest.setOnDestroyedCallbackForTests(new Runnable() { |
1428 @Override | 1464 @Override |
1429 public void run() { | 1465 public void run() { |
1430 requestDestroyed.open(); | 1466 requestDestroyed.open(); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1463 mByteBuffer = byteBuffer; | 1499 mByteBuffer = byteBuffer; |
1464 mReadCalled.open(); | 1500 mReadCalled.open(); |
1465 } | 1501 } |
1466 | 1502 |
1467 @Override | 1503 @Override |
1468 public void rewind(final UploadDataSink uploadDataSink) { | 1504 public void rewind(final UploadDataSink uploadDataSink) { |
1469 } | 1505 } |
1470 } | 1506 } |
1471 | 1507 |
1472 TestUrlRequestListener listener = new TestUrlRequestListener(); | 1508 TestUrlRequestListener listener = new TestUrlRequestListener(); |
1473 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 1509 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), |
1474 NativeTestServer.getEchoBodyURL(), listener, listener.getExecuto
r()); | 1510 listener, listener.getExecutor(), mActivity.mCronetEngine); |
1475 | 1511 |
1476 ExecutorService uploadExecutor = Executors.newSingleThreadExecutor(); | 1512 ExecutorService uploadExecutor = Executors.newSingleThreadExecutor(); |
1477 HangingUploadDataProvider dataProvider = new HangingUploadDataProvider()
; | 1513 HangingUploadDataProvider dataProvider = new HangingUploadDataProvider()
; |
1478 urlRequest.setUploadDataProvider(dataProvider, uploadExecutor); | 1514 builder.setUploadDataProvider(dataProvider, uploadExecutor); |
1479 urlRequest.addHeader("Content-Type", "useless/string"); | 1515 builder.addHeader("Content-Type", "useless/string"); |
| 1516 UrlRequest urlRequest = builder.build(); |
1480 urlRequest.start(); | 1517 urlRequest.start(); |
1481 // Wait for read to be called on executor. | 1518 // Wait for read to be called on executor. |
1482 dataProvider.mReadCalled.block(); | 1519 dataProvider.mReadCalled.block(); |
1483 // Shutdown the executor, so posting next task will throw an exception. | 1520 // Shutdown the executor, so posting next task will throw an exception. |
1484 uploadExecutor.shutdown(); | 1521 uploadExecutor.shutdown(); |
1485 // Continue the upload. | 1522 // Continue the upload. |
1486 dataProvider.mByteBuffer.putInt(42); | 1523 dataProvider.mByteBuffer.putInt(42); |
1487 dataProvider.mUploadDataSink.onReadSucceeded(false); | 1524 dataProvider.mUploadDataSink.onReadSucceeded(false); |
1488 // Listener.onFailed will be called on request executor even though uplo
ad | 1525 // Listener.onFailed will be called on request executor even though uplo
ad |
1489 // executor is shutdown. | 1526 // executor is shutdown. |
(...skipping 10 matching lines...) Expand all Loading... |
1500 int end) { | 1537 int end) { |
1501 // Use a duplicate to avoid modifying byteBuffer. | 1538 // Use a duplicate to avoid modifying byteBuffer. |
1502 ByteBuffer duplicate = byteBuffer.duplicate(); | 1539 ByteBuffer duplicate = byteBuffer.duplicate(); |
1503 duplicate.position(start); | 1540 duplicate.position(start); |
1504 duplicate.limit(end); | 1541 duplicate.limit(end); |
1505 byte[] contents = new byte[duplicate.remaining()]; | 1542 byte[] contents = new byte[duplicate.remaining()]; |
1506 duplicate.get(contents); | 1543 duplicate.get(contents); |
1507 return new String(contents); | 1544 return new String(contents); |
1508 } | 1545 } |
1509 } | 1546 } |
OLD | NEW |