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.os.StrictMode; | 8 import android.os.StrictMode; |
9 import android.test.MoreAsserts; | 9 import android.test.MoreAsserts; |
10 import android.test.suitebuilder.annotation.SmallTest; | 10 import android.test.suitebuilder.annotation.SmallTest; |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 @Override | 52 @Override |
53 protected void tearDown() throws Exception { | 53 protected void tearDown() throws Exception { |
54 NativeTestServer.shutdownNativeTestServer(); | 54 NativeTestServer.shutdownNativeTestServer(); |
55 mTestFramework.mCronetEngine.shutdown(); | 55 mTestFramework.mCronetEngine.shutdown(); |
56 super.tearDown(); | 56 super.tearDown(); |
57 } | 57 } |
58 | 58 |
59 private TestUrlRequestCallback startAndWaitForComplete(String url) throws Ex
ception { | 59 private TestUrlRequestCallback startAndWaitForComplete(String url) throws Ex
ception { |
60 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 60 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
61 // Create request. | 61 // Create request. |
62 UrlRequest.Builder builder = new UrlRequest.Builder( | 62 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
63 url, callback, callback.getExecutor(), mTestFramework.mCronetEng
ine); | 63 url, callback, callback.getExecutor()); |
64 UrlRequest urlRequest = builder.build(); | 64 UrlRequest urlRequest = builder.build(); |
65 urlRequest.start(); | 65 urlRequest.start(); |
66 callback.blockForDone(); | 66 callback.blockForDone(); |
67 // Wait for all posted tasks to be executed to ensure there is no unhand
led exception. | 67 // Wait for all posted tasks to be executed to ensure there is no unhand
led exception. |
68 callback.shutdownExecutorAndWait(); | 68 callback.shutdownExecutorAndWait(); |
69 assertTrue(urlRequest.isDone()); | 69 assertTrue(urlRequest.isDone()); |
70 return callback; | 70 return callback; |
71 } | 71 } |
72 | 72 |
73 private void checkResponseInfo(UrlResponseInfo responseInfo, String expected
Url, | 73 private void checkResponseInfo(UrlResponseInfo responseInfo, String expected
Url, |
(...skipping 14 matching lines...) Expand all Loading... |
88 List<String> header = responseHeaders.get(headerName); | 88 List<String> header = responseHeaders.get(headerName); |
89 assertNotNull(header); | 89 assertNotNull(header); |
90 assertTrue(header.contains(headerValue)); | 90 assertTrue(header.contains(headerValue)); |
91 } | 91 } |
92 | 92 |
93 @SmallTest | 93 @SmallTest |
94 @Feature({"Cronet"}) | 94 @Feature({"Cronet"}) |
95 public void testBuilderChecks() throws Exception { | 95 public void testBuilderChecks() throws Exception { |
96 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 96 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
97 try { | 97 try { |
98 new UrlRequest.Builder( | 98 mTestFramework.mCronetEngine.newUrlRequestBuilder( |
99 null, callback, callback.getExecutor(), mTestFramework.mCron
etEngine); | 99 null, callback, callback.getExecutor()); |
100 fail("URL not null-checked"); | 100 fail("URL not null-checked"); |
101 } catch (NullPointerException e) { | 101 } catch (NullPointerException e) { |
102 assertEquals("URL is required.", e.getMessage()); | 102 assertEquals("URL is required.", e.getMessage()); |
103 } | 103 } |
104 try { | 104 try { |
105 new UrlRequest.Builder(NativeTestServer.getRedirectURL(), null, call
back.getExecutor(), | 105 mTestFramework.mCronetEngine.newUrlRequestBuilder( |
106 mTestFramework.mCronetEngine); | 106 NativeTestServer.getRedirectURL(), null, callback.getExecuto
r()); |
107 fail("Callback not null-checked"); | 107 fail("Callback not null-checked"); |
108 } catch (NullPointerException e) { | 108 } catch (NullPointerException e) { |
109 assertEquals("Callback is required.", e.getMessage()); | 109 assertEquals("Callback is required.", e.getMessage()); |
110 } | 110 } |
111 try { | 111 try { |
112 new UrlRequest.Builder(NativeTestServer.getRedirectURL(), callback,
null, | 112 mTestFramework.mCronetEngine.newUrlRequestBuilder( |
113 mTestFramework.mCronetEngine); | 113 NativeTestServer.getRedirectURL(), callback, null); |
114 fail("Executor not null-checked"); | 114 fail("Executor not null-checked"); |
115 } catch (NullPointerException e) { | 115 } catch (NullPointerException e) { |
116 assertEquals("Executor is required.", e.getMessage()); | 116 assertEquals("Executor is required.", e.getMessage()); |
117 } | 117 } |
118 try { | |
119 new UrlRequest.Builder( | |
120 NativeTestServer.getRedirectURL(), callback, callback.getExe
cutor(), null); | |
121 fail("CronetEngine not null-checked"); | |
122 } catch (NullPointerException e) { | |
123 assertEquals("CronetEngine is required.", e.getMessage()); | |
124 } | |
125 // Verify successful creation doesn't throw. | 118 // Verify successful creation doesn't throw. |
126 new UrlRequest.Builder(NativeTestServer.getRedirectURL(), callback, call
back.getExecutor(), | 119 mTestFramework.mCronetEngine.newUrlRequestBuilder( |
127 mTestFramework.mCronetEngine); | 120 NativeTestServer.getRedirectURL(), callback, callback.getExecuto
r()); |
128 } | 121 } |
129 | 122 |
130 @SmallTest | 123 @SmallTest |
131 @Feature({"Cronet"}) | 124 @Feature({"Cronet"}) |
132 public void testSimpleGet() throws Exception { | 125 public void testSimpleGet() throws Exception { |
133 String url = NativeTestServer.getEchoMethodURL(); | 126 String url = NativeTestServer.getEchoMethodURL(); |
134 TestUrlRequestCallback callback = startAndWaitForComplete(url); | 127 TestUrlRequestCallback callback = startAndWaitForComplete(url); |
135 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 128 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
136 // Default method is 'GET'. | 129 // Default method is 'GET'. |
137 assertEquals("GET", callback.mResponseAsString); | 130 assertEquals("GET", callback.mResponseAsString); |
(...skipping 17 matching lines...) Expand all Loading... |
155 unknown.setReceivedBytesCount(receivedBytes); | 148 unknown.setReceivedBytesCount(receivedBytes); |
156 return unknown; | 149 return unknown; |
157 } | 150 } |
158 | 151 |
159 void runConnectionMigrationTest(boolean disableConnectionMigration) { | 152 void runConnectionMigrationTest(boolean disableConnectionMigration) { |
160 // URLRequest load flags at net/base/load_flags_list.h. | 153 // URLRequest load flags at net/base/load_flags_list.h. |
161 int connectionMigrationLoadFlag = 1 << 18; | 154 int connectionMigrationLoadFlag = 1 << 18; |
162 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 155 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
163 callback.setAutoAdvance(false); | 156 callback.setAutoAdvance(false); |
164 // Create builder, start a request, and check if default load_flags are
set correctly. | 157 // Create builder, start a request, and check if default load_flags are
set correctly. |
165 UrlRequest.Builder builder = | 158 ExperimentalUrlRequest.Builder builder = |
166 new UrlRequest.Builder(NativeTestServer.getFileURL("/success.txt
"), callback, | 159 (ExperimentalUrlRequest.Builder) mTestFramework.mCronetEngine.ne
wUrlRequestBuilder( |
167 callback.getExecutor(), mTestFramework.mCronetEngine); | 160 NativeTestServer.getFileURL("/success.txt"), callback, |
| 161 callback.getExecutor()); |
168 // Disable connection migration. | 162 // Disable connection migration. |
169 if (disableConnectionMigration) builder.disableConnectionMigration(); | 163 if (disableConnectionMigration) builder.disableConnectionMigration(); |
170 UrlRequest urlRequest = builder.build(); | 164 UrlRequest urlRequest = builder.build(); |
171 urlRequest.start(); | 165 urlRequest.start(); |
172 callback.waitForNextStep(); | 166 callback.waitForNextStep(); |
173 int loadFlags = CronetTestUtil.getLoadFlags(urlRequest); | 167 int loadFlags = CronetTestUtil.getLoadFlags(urlRequest); |
174 if (disableConnectionMigration) { | 168 if (disableConnectionMigration) { |
175 assertEquals(connectionMigrationLoadFlag, loadFlags & connectionMigr
ationLoadFlag); | 169 assertEquals(connectionMigrationLoadFlag, loadFlags & connectionMigr
ationLoadFlag); |
176 } else { | 170 } else { |
177 assertEquals(0, loadFlags & connectionMigrationLoadFlag); | 171 assertEquals(0, loadFlags & connectionMigrationLoadFlag); |
(...skipping 18 matching lines...) Expand all Loading... |
196 * Tests a redirect by running it step-by-step. Also tests that delaying a | 190 * Tests a redirect by running it step-by-step. Also tests that delaying a |
197 * request works as expected. To make sure there are no unexpected pending | 191 * request works as expected. To make sure there are no unexpected pending |
198 * messages, does a GET between UrlRequest.Callback callbacks. | 192 * messages, does a GET between UrlRequest.Callback callbacks. |
199 */ | 193 */ |
200 @SmallTest | 194 @SmallTest |
201 @Feature({"Cronet"}) | 195 @Feature({"Cronet"}) |
202 public void testRedirectAsync() throws Exception { | 196 public void testRedirectAsync() throws Exception { |
203 // Start the request and wait to see the redirect. | 197 // Start the request and wait to see the redirect. |
204 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 198 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
205 callback.setAutoAdvance(false); | 199 callback.setAutoAdvance(false); |
206 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
RedirectURL(), | 200 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
207 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 201 NativeTestServer.getRedirectURL(), callback, callback.getExecuto
r()); |
208 UrlRequest urlRequest = builder.build(); | 202 UrlRequest urlRequest = builder.build(); |
209 urlRequest.start(); | 203 urlRequest.start(); |
210 callback.waitForNextStep(); | 204 callback.waitForNextStep(); |
211 | 205 |
212 // Check the redirect. | 206 // Check the redirect. |
213 assertEquals(ResponseStep.ON_RECEIVED_REDIRECT, callback.mResponseStep); | 207 assertEquals(ResponseStep.ON_RECEIVED_REDIRECT, callback.mResponseStep); |
214 assertEquals(1, callback.mRedirectResponseInfoList.size()); | 208 assertEquals(1, callback.mRedirectResponseInfoList.size()); |
215 checkResponseInfo(callback.mRedirectResponseInfoList.get(0), | 209 checkResponseInfo(callback.mRedirectResponseInfoList.get(0), |
216 NativeTestServer.getRedirectURL(), 302, "Found"); | 210 NativeTestServer.getRedirectURL(), 302, "Found"); |
217 assertEquals(1, callback.mRedirectResponseInfoList.get(0).getUrlChain().
size()); | 211 assertEquals(1, callback.mRedirectResponseInfoList.get(0).getUrlChain().
size()); |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
324 } | 318 } |
325 | 319 |
326 @Override | 320 @Override |
327 public void onCanceled(UrlRequest request, UrlResponseInfo info) { | 321 public void onCanceled(UrlRequest request, UrlResponseInfo info) { |
328 assertEquals(1, mRedirectCount); | 322 assertEquals(1, mRedirectCount); |
329 failedExpectation.compareAndSet(false, 1 != mRedirectCount); | 323 failedExpectation.compareAndSet(false, 1 != mRedirectCount); |
330 super.onCanceled(request, info); | 324 super.onCanceled(request, info); |
331 } | 325 } |
332 }; | 326 }; |
333 | 327 |
334 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
MultiRedirectURL(), | 328 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
335 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 329 NativeTestServer.getMultiRedirectURL(), callback, callback.getEx
ecutor()); |
336 | 330 |
337 final UrlRequest urlRequest = builder.build(); | 331 final UrlRequest urlRequest = builder.build(); |
338 urlRequest.start(); | 332 urlRequest.start(); |
339 callback.blockForDone(); | 333 callback.blockForDone(); |
340 assertFalse(failedExpectation.get()); | 334 assertFalse(failedExpectation.get()); |
341 // Check that only one redirect is received. | 335 // Check that only one redirect is received. |
342 assertEquals(1, callback.mRedirectCount); | 336 assertEquals(1, callback.mRedirectCount); |
343 // Check that onCanceled is called. | 337 // Check that onCanceled is called. |
344 assertTrue(callback.mOnCanceledCalled); | 338 assertTrue(callback.mOnCanceledCalled); |
345 } | 339 } |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
380 // onFailed messages. This test relies on checks in | 374 // onFailed messages. This test relies on checks in |
381 // TestUrlRequestCallback catching a second onFailed call. | 375 // TestUrlRequestCallback catching a second onFailed call. |
382 testSimpleGet(); | 376 testSimpleGet(); |
383 } | 377 } |
384 | 378 |
385 @SmallTest | 379 @SmallTest |
386 @Feature({"Cronet"}) | 380 @Feature({"Cronet"}) |
387 public void testSetHttpMethod() throws Exception { | 381 public void testSetHttpMethod() throws Exception { |
388 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 382 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
389 String methodName = "HEAD"; | 383 String methodName = "HEAD"; |
390 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoMethodURL(), | 384 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
391 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 385 NativeTestServer.getEchoMethodURL(), callback, callback.getExecu
tor()); |
392 // Try to set 'null' method. | 386 // Try to set 'null' method. |
393 try { | 387 try { |
394 builder.setHttpMethod(null); | 388 builder.setHttpMethod(null); |
395 fail("Exception not thrown"); | 389 fail("Exception not thrown"); |
396 } catch (NullPointerException e) { | 390 } catch (NullPointerException e) { |
397 assertEquals("Method is required.", e.getMessage()); | 391 assertEquals("Method is required.", e.getMessage()); |
398 } | 392 } |
399 | 393 |
400 builder.setHttpMethod(methodName); | 394 builder.setHttpMethod(methodName); |
401 builder.build().start(); | 395 builder.build().start(); |
402 callback.blockForDone(); | 396 callback.blockForDone(); |
403 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 397 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
404 assertEquals(0, callback.mHttpResponseDataLength); | 398 assertEquals(0, callback.mHttpResponseDataLength); |
405 } | 399 } |
406 | 400 |
407 @SmallTest | 401 @SmallTest |
408 @Feature({"Cronet"}) | 402 @Feature({"Cronet"}) |
409 public void testBadMethod() throws Exception { | 403 public void testBadMethod() throws Exception { |
410 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 404 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
411 UrlRequest.Builder builder = new UrlRequest.Builder( | 405 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
412 TEST_URL, callback, callback.getExecutor(), mTestFramework.mCron
etEngine); | 406 TEST_URL, callback, callback.getExecutor()); |
413 try { | 407 try { |
414 builder.setHttpMethod("bad:method!"); | 408 builder.setHttpMethod("bad:method!"); |
415 builder.build().start(); | 409 builder.build().start(); |
416 fail("IllegalArgumentException not thrown."); | 410 fail("IllegalArgumentException not thrown."); |
417 } catch (IllegalArgumentException e) { | 411 } catch (IllegalArgumentException e) { |
418 assertEquals("Invalid http method bad:method!", | 412 assertEquals("Invalid http method bad:method!", |
419 e.getMessage()); | 413 e.getMessage()); |
420 } | 414 } |
421 } | 415 } |
422 | 416 |
423 @SmallTest | 417 @SmallTest |
424 @Feature({"Cronet"}) | 418 @Feature({"Cronet"}) |
425 public void testBadHeaderName() throws Exception { | 419 public void testBadHeaderName() throws Exception { |
426 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 420 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
427 UrlRequest.Builder builder = new UrlRequest.Builder( | 421 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
428 TEST_URL, callback, callback.getExecutor(), mTestFramework.mCron
etEngine); | 422 TEST_URL, callback, callback.getExecutor()); |
429 try { | 423 try { |
430 builder.addHeader("header:name", "headervalue"); | 424 builder.addHeader("header:name", "headervalue"); |
431 builder.build().start(); | 425 builder.build().start(); |
432 fail("IllegalArgumentException not thrown."); | 426 fail("IllegalArgumentException not thrown."); |
433 } catch (IllegalArgumentException e) { | 427 } catch (IllegalArgumentException e) { |
434 assertEquals("Invalid header header:name=headervalue", | 428 assertEquals("Invalid header header:name=headervalue", |
435 e.getMessage()); | 429 e.getMessage()); |
436 } | 430 } |
437 } | 431 } |
438 | 432 |
439 @SmallTest | 433 @SmallTest |
440 @Feature({"Cronet"}) | 434 @Feature({"Cronet"}) |
441 public void testAcceptEncodingIgnored() throws Exception { | 435 public void testAcceptEncodingIgnored() throws Exception { |
442 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 436 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
443 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoAllHeadersURL(), | 437 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
444 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 438 NativeTestServer.getEchoAllHeadersURL(), callback, callback.getE
xecutor()); |
445 // This line should eventually throw an exception, once callers have mig
rated | 439 // This line should eventually throw an exception, once callers have mig
rated |
446 builder.addHeader("accept-encoding", "foozip"); | 440 builder.addHeader("accept-encoding", "foozip"); |
447 builder.build().start(); | 441 builder.build().start(); |
448 callback.blockForDone(); | 442 callback.blockForDone(); |
449 assertFalse(callback.mResponseAsString.contains("foozip")); | 443 assertFalse(callback.mResponseAsString.contains("foozip")); |
450 } | 444 } |
451 | 445 |
452 @SmallTest | 446 @SmallTest |
453 @Feature({"Cronet"}) | 447 @Feature({"Cronet"}) |
454 public void testBadHeaderValue() throws Exception { | 448 public void testBadHeaderValue() throws Exception { |
455 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 449 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
456 UrlRequest.Builder builder = new UrlRequest.Builder( | 450 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
457 TEST_URL, callback, callback.getExecutor(), mTestFramework.mCron
etEngine); | 451 TEST_URL, callback, callback.getExecutor()); |
458 try { | 452 try { |
459 builder.addHeader("headername", "bad header\r\nvalue"); | 453 builder.addHeader("headername", "bad header\r\nvalue"); |
460 builder.build().start(); | 454 builder.build().start(); |
461 fail("IllegalArgumentException not thrown."); | 455 fail("IllegalArgumentException not thrown."); |
462 } catch (IllegalArgumentException e) { | 456 } catch (IllegalArgumentException e) { |
463 assertEquals("Invalid header headername=bad header\r\nvalue", | 457 assertEquals("Invalid header headername=bad header\r\nvalue", |
464 e.getMessage()); | 458 e.getMessage()); |
465 } | 459 } |
466 } | 460 } |
467 | 461 |
468 @SmallTest | 462 @SmallTest |
469 @Feature({"Cronet"}) | 463 @Feature({"Cronet"}) |
470 public void testAddHeader() throws Exception { | 464 public void testAddHeader() throws Exception { |
471 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 465 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
472 String headerName = "header-name"; | 466 String headerName = "header-name"; |
473 String headerValue = "header-value"; | 467 String headerValue = "header-value"; |
474 UrlRequest.Builder builder = | 468 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
475 new UrlRequest.Builder(NativeTestServer.getEchoHeaderURL(headerN
ame), callback, | 469 NativeTestServer.getEchoHeaderURL(headerName), callback, callbac
k.getExecutor()); |
476 callback.getExecutor(), mTestFramework.mCronetEngine); | |
477 | 470 |
478 builder.addHeader(headerName, headerValue); | 471 builder.addHeader(headerName, headerValue); |
479 builder.build().start(); | 472 builder.build().start(); |
480 callback.blockForDone(); | 473 callback.blockForDone(); |
481 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 474 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
482 assertEquals(headerValue, callback.mResponseAsString); | 475 assertEquals(headerValue, callback.mResponseAsString); |
483 } | 476 } |
484 | 477 |
485 @SmallTest | 478 @SmallTest |
486 @Feature({"Cronet"}) | 479 @Feature({"Cronet"}) |
487 public void testMultiRequestHeaders() throws Exception { | 480 public void testMultiRequestHeaders() throws Exception { |
488 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 481 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
489 String headerName = "header-name"; | 482 String headerName = "header-name"; |
490 String headerValue1 = "header-value1"; | 483 String headerValue1 = "header-value1"; |
491 String headerValue2 = "header-value2"; | 484 String headerValue2 = "header-value2"; |
492 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoAllHeadersURL(), | 485 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
493 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 486 NativeTestServer.getEchoAllHeadersURL(), callback, callback.getE
xecutor()); |
494 builder.addHeader(headerName, headerValue1); | 487 builder.addHeader(headerName, headerValue1); |
495 builder.addHeader(headerName, headerValue2); | 488 builder.addHeader(headerName, headerValue2); |
496 builder.build().start(); | 489 builder.build().start(); |
497 callback.blockForDone(); | 490 callback.blockForDone(); |
498 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 491 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
499 String headers = callback.mResponseAsString; | 492 String headers = callback.mResponseAsString; |
500 Pattern pattern = Pattern.compile(headerName + ":\\s(.*)\\r\\n"); | 493 Pattern pattern = Pattern.compile(headerName + ":\\s(.*)\\r\\n"); |
501 Matcher matcher = pattern.matcher(headers); | 494 Matcher matcher = pattern.matcher(headers); |
502 List<String> actualValues = new ArrayList<String>(); | 495 List<String> actualValues = new ArrayList<String>(); |
503 while (matcher.find()) { | 496 while (matcher.find()) { |
504 actualValues.add(matcher.group(1)); | 497 actualValues.add(matcher.group(1)); |
505 } | 498 } |
506 assertEquals(1, actualValues.size()); | 499 assertEquals(1, actualValues.size()); |
507 assertEquals("header-value2", actualValues.get(0)); | 500 assertEquals("header-value2", actualValues.get(0)); |
508 } | 501 } |
509 | 502 |
510 @SmallTest | 503 @SmallTest |
511 @Feature({"Cronet"}) | 504 @Feature({"Cronet"}) |
512 public void testCustomUserAgent() throws Exception { | 505 public void testCustomUserAgent() throws Exception { |
513 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 506 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
514 String userAgentName = "User-Agent"; | 507 String userAgentName = "User-Agent"; |
515 String userAgentValue = "User-Agent-Value"; | 508 String userAgentValue = "User-Agent-Value"; |
516 UrlRequest.Builder builder = | 509 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
517 new UrlRequest.Builder(NativeTestServer.getEchoHeaderURL(userAge
ntName), callback, | 510 NativeTestServer.getEchoHeaderURL(userAgentName), callback, call
back.getExecutor()); |
518 callback.getExecutor(), mTestFramework.mCronetEngine); | |
519 builder.addHeader(userAgentName, userAgentValue); | 511 builder.addHeader(userAgentName, userAgentValue); |
520 builder.build().start(); | 512 builder.build().start(); |
521 callback.blockForDone(); | 513 callback.blockForDone(); |
522 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 514 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
523 assertEquals(userAgentValue, callback.mResponseAsString); | 515 assertEquals(userAgentValue, callback.mResponseAsString); |
524 } | 516 } |
525 | 517 |
526 @SmallTest | 518 @SmallTest |
527 @Feature({"Cronet"}) | 519 @Feature({"Cronet"}) |
528 public void testDefaultUserAgent() throws Exception { | 520 public void testDefaultUserAgent() throws Exception { |
529 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 521 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
530 String headerName = "User-Agent"; | 522 String headerName = "User-Agent"; |
531 UrlRequest.Builder builder = | 523 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
532 new UrlRequest.Builder(NativeTestServer.getEchoHeaderURL(headerN
ame), callback, | 524 NativeTestServer.getEchoHeaderURL(headerName), callback, callbac
k.getExecutor()); |
533 callback.getExecutor(), mTestFramework.mCronetEngine); | |
534 builder.build().start(); | 525 builder.build().start(); |
535 callback.blockForDone(); | 526 callback.blockForDone(); |
536 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 527 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
537 assertTrue("Default User-Agent should contain Cronet/n.n.n.n but is " | 528 assertTrue("Default User-Agent should contain Cronet/n.n.n.n but is " |
538 + callback.mResponseAsString, | 529 + callback.mResponseAsString, |
539 Pattern.matches( | 530 Pattern.matches( |
540 ".+Cronet/\\d+\\.\\d+\\.\\d+\\.\\d+.+", callback.mRespon
seAsString)); | 531 ".+Cronet/\\d+\\.\\d+\\.\\d+\\.\\d+.+", callback.mRespon
seAsString)); |
541 } | 532 } |
542 | 533 |
543 @SmallTest | 534 @SmallTest |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
678 MockUrlRequestJobFactory.getMockUrlForClientCertificateRequest()
); | 669 MockUrlRequestJobFactory.getMockUrlForClientCertificateRequest()
); |
679 assertNotNull(callback.mResponseInfo); | 670 assertNotNull(callback.mResponseInfo); |
680 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 671 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
681 assertEquals("data", callback.mResponseAsString); | 672 assertEquals("data", callback.mResponseAsString); |
682 assertEquals(0, callback.mRedirectCount); | 673 assertEquals(0, callback.mRedirectCount); |
683 assertNull(callback.mError); | 674 assertNull(callback.mError); |
684 assertFalse(callback.mOnErrorCalled); | 675 assertFalse(callback.mOnErrorCalled); |
685 } | 676 } |
686 | 677 |
687 /** | 678 /** |
688 * Tests that an SSL cert error will be reported via {@link UrlRequest#onFai
led}. | 679 * Tests that an SSL cert error will be reported via {@link UrlRequest.Callb
ack#onFailed}. |
689 */ | 680 */ |
690 @SmallTest | 681 @SmallTest |
691 @Feature({"Cronet"}) | 682 @Feature({"Cronet"}) |
692 @OnlyRunNativeCronet // Java impl doesn't support MockUrlRequestJobFactory | 683 @OnlyRunNativeCronet // Java impl doesn't support MockUrlRequestJobFactory |
693 public void testMockSSLCertificateError() throws Exception { | 684 public void testMockSSLCertificateError() throws Exception { |
694 TestUrlRequestCallback callback = startAndWaitForComplete( | 685 TestUrlRequestCallback callback = startAndWaitForComplete( |
695 MockUrlRequestJobFactory.getMockUrlForSSLCertificateError()); | 686 MockUrlRequestJobFactory.getMockUrlForSSLCertificateError()); |
696 assertNull(callback.mResponseInfo); | 687 assertNull(callback.mResponseInfo); |
697 assertNotNull(callback.mError); | 688 assertNotNull(callback.mError); |
698 assertTrue(callback.mOnErrorCalled); | 689 assertTrue(callback.mOnErrorCalled); |
699 assertEquals(-201, callback.mError.getCronetInternalErrorCode()); | 690 assertEquals(-201, callback.mError.getCronetInternalErrorCode()); |
700 assertEquals("Exception in CronetUrlRequest: net::ERR_CERT_DATE_INVALID"
, | 691 assertEquals("Exception in CronetUrlRequest: net::ERR_CERT_DATE_INVALID"
, |
701 callback.mError.getMessage()); | 692 callback.mError.getMessage()); |
702 assertEquals(ResponseStep.ON_FAILED, callback.mResponseStep); | 693 assertEquals(ResponseStep.ON_FAILED, callback.mResponseStep); |
703 } | 694 } |
704 | 695 |
705 /** | 696 /** |
706 * Checks that the buffer is updated correctly, when starting at an offset. | 697 * Checks that the buffer is updated correctly, when starting at an offset. |
707 */ | 698 */ |
708 @SmallTest | 699 @SmallTest |
709 @Feature({"Cronet"}) | 700 @Feature({"Cronet"}) |
710 public void testSimpleGetBufferUpdates() throws Exception { | 701 public void testSimpleGetBufferUpdates() throws Exception { |
711 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 702 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
712 callback.setAutoAdvance(false); | 703 callback.setAutoAdvance(false); |
713 // Since the default method is "GET", the expected response body is also | 704 // Since the default method is "GET", the expected response body is also |
714 // "GET". | 705 // "GET". |
715 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoMethodURL(), | 706 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
716 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 707 NativeTestServer.getEchoMethodURL(), callback, callback.getExecu
tor()); |
717 UrlRequest urlRequest = builder.build(); | 708 UrlRequest urlRequest = builder.build(); |
718 urlRequest.start(); | 709 urlRequest.start(); |
719 callback.waitForNextStep(); | 710 callback.waitForNextStep(); |
720 | 711 |
721 ByteBuffer readBuffer = ByteBuffer.allocateDirect(5); | 712 ByteBuffer readBuffer = ByteBuffer.allocateDirect(5); |
722 readBuffer.put("FOR".getBytes()); | 713 readBuffer.put("FOR".getBytes()); |
723 assertEquals(3, readBuffer.position()); | 714 assertEquals(3, readBuffer.position()); |
724 | 715 |
725 // Read first two characters of the response ("GE"). It's theoretically | 716 // Read first two characters of the response ("GE"). It's theoretically |
726 // possible to need one read per character, though in practice, | 717 // possible to need one read per character, though in practice, |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
787 // Make sure there are no other pending messages, which would trigger | 778 // Make sure there are no other pending messages, which would trigger |
788 // asserts in TestUrlRequestCallback. | 779 // asserts in TestUrlRequestCallback. |
789 testSimpleGet(); | 780 testSimpleGet(); |
790 } | 781 } |
791 | 782 |
792 @SmallTest | 783 @SmallTest |
793 @Feature({"Cronet"}) | 784 @Feature({"Cronet"}) |
794 public void testBadBuffers() throws Exception { | 785 public void testBadBuffers() throws Exception { |
795 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 786 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
796 callback.setAutoAdvance(false); | 787 callback.setAutoAdvance(false); |
797 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoMethodURL(), | 788 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
798 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 789 NativeTestServer.getEchoMethodURL(), callback, callback.getExecu
tor()); |
799 UrlRequest urlRequest = builder.build(); | 790 UrlRequest urlRequest = builder.build(); |
800 urlRequest.start(); | 791 urlRequest.start(); |
801 callback.waitForNextStep(); | 792 callback.waitForNextStep(); |
802 | 793 |
803 // Try to read using a full buffer. | 794 // Try to read using a full buffer. |
804 try { | 795 try { |
805 ByteBuffer readBuffer = ByteBuffer.allocateDirect(4); | 796 ByteBuffer readBuffer = ByteBuffer.allocateDirect(4); |
806 readBuffer.put("full".getBytes()); | 797 readBuffer.put("full".getBytes()); |
807 urlRequest.read(readBuffer); | 798 urlRequest.read(readBuffer); |
808 fail("Exception not thrown"); | 799 fail("Exception not thrown"); |
(...skipping 20 matching lines...) Expand all Loading... |
829 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 820 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
830 assertEquals("GET", callback.mResponseAsString); | 821 assertEquals("GET", callback.mResponseAsString); |
831 } | 822 } |
832 | 823 |
833 @SmallTest | 824 @SmallTest |
834 @Feature({"Cronet"}) | 825 @Feature({"Cronet"}) |
835 public void testNoIoInCancel() throws Exception { | 826 public void testNoIoInCancel() throws Exception { |
836 final TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 827 final TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
837 callback.setAutoAdvance(false); | 828 callback.setAutoAdvance(false); |
838 final UrlRequest urlRequest = | 829 final UrlRequest urlRequest = |
839 new UrlRequest | 830 mTestFramework.mCronetEngine |
840 .Builder(NativeTestServer.getEchoHeaderURL("blah-header"
), callback, | 831 .newUrlRequestBuilder(NativeTestServer.getEchoHeaderURL(
"blah-header"), |
841 callback.getExecutor(), mTestFramework.mCronetEn
gine) | 832 callback, callback.getExecutor()) |
842 .addHeader("blah-header", "blahblahblah") | 833 .addHeader("blah-header", "blahblahblah") |
843 .build(); | 834 .build(); |
844 urlRequest.start(); | 835 urlRequest.start(); |
845 callback.waitForNextStep(); | 836 callback.waitForNextStep(); |
846 callback.startNextRead(urlRequest, ByteBuffer.allocateDirect(4)); | 837 callback.startNextRead(urlRequest, ByteBuffer.allocateDirect(4)); |
847 callback.waitForNextStep(); | 838 callback.waitForNextStep(); |
848 StrictMode.ThreadPolicy oldPolicy = StrictMode.getThreadPolicy(); | 839 StrictMode.ThreadPolicy oldPolicy = StrictMode.getThreadPolicy(); |
849 StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() | 840 StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() |
850 .detectAll() | 841 .detectAll() |
851 .penaltyDeath() | 842 .penaltyDeath() |
852 .penaltyLog() | 843 .penaltyLog() |
853 .build()); | 844 .build()); |
854 try { | 845 try { |
855 urlRequest.cancel(); | 846 urlRequest.cancel(); |
856 } finally { | 847 } finally { |
857 StrictMode.setThreadPolicy(oldPolicy); | 848 StrictMode.setThreadPolicy(oldPolicy); |
858 } | 849 } |
859 callback.blockForDone(); | 850 callback.blockForDone(); |
860 assertEquals(true, callback.mOnCanceledCalled); | 851 assertEquals(true, callback.mOnCanceledCalled); |
861 } | 852 } |
862 | 853 |
863 @SmallTest | 854 @SmallTest |
864 @Feature({"Cronet"}) | 855 @Feature({"Cronet"}) |
865 public void testUnexpectedReads() throws Exception { | 856 public void testUnexpectedReads() throws Exception { |
866 final TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 857 final TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
867 callback.setAutoAdvance(false); | 858 callback.setAutoAdvance(false); |
868 final UrlRequest urlRequest = | 859 final UrlRequest urlRequest = |
869 new UrlRequest.Builder(NativeTestServer.getRedirectURL(), callba
ck, | 860 mTestFramework.mCronetEngine |
870 callback.getExecutor(), mTestFramework.mCr
onetEngine) | 861 .newUrlRequestBuilder( |
| 862 NativeTestServer.getRedirectURL(), callback, cal
lback.getExecutor()) |
871 .build(); | 863 .build(); |
872 | 864 |
873 // Try to read before starting request. | 865 // Try to read before starting request. |
874 try { | 866 try { |
875 callback.startNextRead(urlRequest); | 867 callback.startNextRead(urlRequest); |
876 fail("Exception not thrown"); | 868 fail("Exception not thrown"); |
877 } catch (IllegalStateException e) { | 869 } catch (IllegalStateException e) { |
878 } | 870 } |
879 | 871 |
880 // Verify reading right after start throws an assertion. Both must be | 872 // Verify reading right after start throws an assertion. Both must be |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
934 } catch (IllegalStateException e) { | 926 } catch (IllegalStateException e) { |
935 } | 927 } |
936 } | 928 } |
937 | 929 |
938 @SmallTest | 930 @SmallTest |
939 @Feature({"Cronet"}) | 931 @Feature({"Cronet"}) |
940 public void testUnexpectedFollowRedirects() throws Exception { | 932 public void testUnexpectedFollowRedirects() throws Exception { |
941 final TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 933 final TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
942 callback.setAutoAdvance(false); | 934 callback.setAutoAdvance(false); |
943 final UrlRequest urlRequest = | 935 final UrlRequest urlRequest = |
944 new UrlRequest.Builder(NativeTestServer.getRedirectURL(), callba
ck, | 936 mTestFramework.mCronetEngine |
945 callback.getExecutor(), mTestFramework.mCr
onetEngine) | 937 .newUrlRequestBuilder( |
| 938 NativeTestServer.getRedirectURL(), callback, cal
lback.getExecutor()) |
946 .build(); | 939 .build(); |
947 | 940 |
948 // Try to follow a redirect before starting the request. | 941 // Try to follow a redirect before starting the request. |
949 try { | 942 try { |
950 urlRequest.followRedirect(); | 943 urlRequest.followRedirect(); |
951 fail("Exception not thrown"); | 944 fail("Exception not thrown"); |
952 } catch (IllegalStateException e) { | 945 } catch (IllegalStateException e) { |
953 } | 946 } |
954 | 947 |
955 // Try to follow a redirect just after starting the request. Has to be | 948 // Try to follow a redirect just after starting the request. Has to be |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1005 urlRequest.followRedirect(); | 998 urlRequest.followRedirect(); |
1006 fail("Exception not thrown"); | 999 fail("Exception not thrown"); |
1007 } catch (IllegalStateException e) { | 1000 } catch (IllegalStateException e) { |
1008 } | 1001 } |
1009 } | 1002 } |
1010 | 1003 |
1011 @SmallTest | 1004 @SmallTest |
1012 @Feature({"Cronet"}) | 1005 @Feature({"Cronet"}) |
1013 public void testUploadSetDataProvider() throws Exception { | 1006 public void testUploadSetDataProvider() throws Exception { |
1014 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1007 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1015 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), | 1008 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1016 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 1009 NativeTestServer.getEchoBodyURL(), callback, callback.getExecuto
r()); |
1017 | 1010 |
1018 try { | 1011 try { |
1019 builder.setUploadDataProvider(null, callback.getExecutor()); | 1012 builder.setUploadDataProvider(null, callback.getExecutor()); |
1020 fail("Exception not thrown"); | 1013 fail("Exception not thrown"); |
1021 } catch (NullPointerException e) { | 1014 } catch (NullPointerException e) { |
1022 assertEquals("Invalid UploadDataProvider.", e.getMessage()); | 1015 assertEquals("Invalid UploadDataProvider.", e.getMessage()); |
1023 } | 1016 } |
1024 | 1017 |
1025 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1018 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1026 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); | 1019 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); |
1027 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); | 1020 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); |
1028 try { | 1021 try { |
1029 builder.build().start(); | 1022 builder.build().start(); |
1030 fail("Exception not thrown"); | 1023 fail("Exception not thrown"); |
1031 } catch (IllegalArgumentException e) { | 1024 } catch (IllegalArgumentException e) { |
1032 } | 1025 } |
1033 } | 1026 } |
1034 | 1027 |
1035 @SmallTest | 1028 @SmallTest |
1036 @Feature({"Cronet"}) | 1029 @Feature({"Cronet"}) |
1037 public void testUploadEmptyBodySync() throws Exception { | 1030 public void testUploadEmptyBodySync() throws Exception { |
1038 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1031 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1039 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), | 1032 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1040 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 1033 NativeTestServer.getEchoBodyURL(), callback, callback.getExecuto
r()); |
1041 | 1034 |
1042 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1035 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1043 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); | 1036 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); |
1044 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); | 1037 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); |
1045 builder.addHeader("Content-Type", "useless/string"); | 1038 builder.addHeader("Content-Type", "useless/string"); |
1046 builder.build().start(); | 1039 builder.build().start(); |
1047 callback.blockForDone(); | 1040 callback.blockForDone(); |
1048 | 1041 |
1049 assertEquals(0, dataProvider.getUploadedLength()); | 1042 assertEquals(0, dataProvider.getUploadedLength()); |
1050 assertEquals(0, dataProvider.getNumReadCalls()); | 1043 assertEquals(0, dataProvider.getNumReadCalls()); |
1051 assertEquals(0, dataProvider.getNumRewindCalls()); | 1044 assertEquals(0, dataProvider.getNumRewindCalls()); |
1052 | 1045 |
1053 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 1046 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
1054 assertEquals("", callback.mResponseAsString); | 1047 assertEquals("", callback.mResponseAsString); |
1055 dataProvider.assertClosed(); | 1048 dataProvider.assertClosed(); |
1056 } | 1049 } |
1057 | 1050 |
1058 @SmallTest | 1051 @SmallTest |
1059 @Feature({"Cronet"}) | 1052 @Feature({"Cronet"}) |
1060 public void testUploadSync() throws Exception { | 1053 public void testUploadSync() throws Exception { |
1061 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1054 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1062 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), | 1055 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1063 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 1056 NativeTestServer.getEchoBodyURL(), callback, callback.getExecuto
r()); |
1064 | 1057 |
1065 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1058 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1066 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); | 1059 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); |
1067 dataProvider.addRead("test".getBytes()); | 1060 dataProvider.addRead("test".getBytes()); |
1068 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); | 1061 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); |
1069 builder.addHeader("Content-Type", "useless/string"); | 1062 builder.addHeader("Content-Type", "useless/string"); |
1070 builder.build().start(); | 1063 builder.build().start(); |
1071 callback.blockForDone(); | 1064 callback.blockForDone(); |
1072 dataProvider.assertClosed(); | 1065 dataProvider.assertClosed(); |
1073 | 1066 |
1074 assertEquals(4, dataProvider.getUploadedLength()); | 1067 assertEquals(4, dataProvider.getUploadedLength()); |
1075 assertEquals(1, dataProvider.getNumReadCalls()); | 1068 assertEquals(1, dataProvider.getNumReadCalls()); |
1076 assertEquals(0, dataProvider.getNumRewindCalls()); | 1069 assertEquals(0, dataProvider.getNumRewindCalls()); |
1077 | 1070 |
1078 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 1071 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
1079 assertEquals("test", callback.mResponseAsString); | 1072 assertEquals("test", callback.mResponseAsString); |
1080 } | 1073 } |
1081 | 1074 |
1082 @SmallTest | 1075 @SmallTest |
1083 @Feature({"Cronet"}) | 1076 @Feature({"Cronet"}) |
1084 public void testUploadMultiplePiecesSync() throws Exception { | 1077 public void testUploadMultiplePiecesSync() throws Exception { |
1085 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1078 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1086 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), | 1079 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1087 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 1080 NativeTestServer.getEchoBodyURL(), callback, callback.getExecuto
r()); |
1088 | 1081 |
1089 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1082 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1090 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); | 1083 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); |
1091 dataProvider.addRead("Y".getBytes()); | 1084 dataProvider.addRead("Y".getBytes()); |
1092 dataProvider.addRead("et ".getBytes()); | 1085 dataProvider.addRead("et ".getBytes()); |
1093 dataProvider.addRead("another ".getBytes()); | 1086 dataProvider.addRead("another ".getBytes()); |
1094 dataProvider.addRead("test".getBytes()); | 1087 dataProvider.addRead("test".getBytes()); |
1095 | 1088 |
1096 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); | 1089 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); |
1097 builder.addHeader("Content-Type", "useless/string"); | 1090 builder.addHeader("Content-Type", "useless/string"); |
1098 builder.build().start(); | 1091 builder.build().start(); |
1099 callback.blockForDone(); | 1092 callback.blockForDone(); |
1100 dataProvider.assertClosed(); | 1093 dataProvider.assertClosed(); |
1101 | 1094 |
1102 assertEquals(16, dataProvider.getUploadedLength()); | 1095 assertEquals(16, dataProvider.getUploadedLength()); |
1103 assertEquals(4, dataProvider.getNumReadCalls()); | 1096 assertEquals(4, dataProvider.getNumReadCalls()); |
1104 assertEquals(0, dataProvider.getNumRewindCalls()); | 1097 assertEquals(0, dataProvider.getNumRewindCalls()); |
1105 | 1098 |
1106 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 1099 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
1107 assertEquals("Yet another test", callback.mResponseAsString); | 1100 assertEquals("Yet another test", callback.mResponseAsString); |
1108 } | 1101 } |
1109 | 1102 |
1110 @SmallTest | 1103 @SmallTest |
1111 @Feature({"Cronet"}) | 1104 @Feature({"Cronet"}) |
1112 public void testUploadMultiplePiecesAsync() throws Exception { | 1105 public void testUploadMultiplePiecesAsync() throws Exception { |
1113 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1106 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1114 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), | 1107 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1115 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 1108 NativeTestServer.getEchoBodyURL(), callback, callback.getExecuto
r()); |
1116 | 1109 |
1117 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1110 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1118 TestUploadDataProvider.SuccessCallbackMode.ASYNC, callback.getEx
ecutor()); | 1111 TestUploadDataProvider.SuccessCallbackMode.ASYNC, callback.getEx
ecutor()); |
1119 dataProvider.addRead("Y".getBytes()); | 1112 dataProvider.addRead("Y".getBytes()); |
1120 dataProvider.addRead("et ".getBytes()); | 1113 dataProvider.addRead("et ".getBytes()); |
1121 dataProvider.addRead("another ".getBytes()); | 1114 dataProvider.addRead("another ".getBytes()); |
1122 dataProvider.addRead("test".getBytes()); | 1115 dataProvider.addRead("test".getBytes()); |
1123 | 1116 |
1124 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); | 1117 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); |
1125 builder.addHeader("Content-Type", "useless/string"); | 1118 builder.addHeader("Content-Type", "useless/string"); |
1126 builder.build().start(); | 1119 builder.build().start(); |
1127 callback.blockForDone(); | 1120 callback.blockForDone(); |
1128 dataProvider.assertClosed(); | 1121 dataProvider.assertClosed(); |
1129 | 1122 |
1130 assertEquals(16, dataProvider.getUploadedLength()); | 1123 assertEquals(16, dataProvider.getUploadedLength()); |
1131 assertEquals(4, dataProvider.getNumReadCalls()); | 1124 assertEquals(4, dataProvider.getNumReadCalls()); |
1132 assertEquals(0, dataProvider.getNumRewindCalls()); | 1125 assertEquals(0, dataProvider.getNumRewindCalls()); |
1133 | 1126 |
1134 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 1127 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
1135 assertEquals("Yet another test", callback.mResponseAsString); | 1128 assertEquals("Yet another test", callback.mResponseAsString); |
1136 } | 1129 } |
1137 | 1130 |
1138 @SmallTest | 1131 @SmallTest |
1139 @Feature({"Cronet"}) | 1132 @Feature({"Cronet"}) |
1140 public void testUploadChangesDefaultMethod() throws Exception { | 1133 public void testUploadChangesDefaultMethod() throws Exception { |
1141 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1134 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1142 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoMethodURL(), | 1135 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1143 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 1136 NativeTestServer.getEchoMethodURL(), callback, callback.getExecu
tor()); |
1144 | 1137 |
1145 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1138 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1146 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); | 1139 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); |
1147 dataProvider.addRead("test".getBytes()); | 1140 dataProvider.addRead("test".getBytes()); |
1148 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); | 1141 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); |
1149 builder.addHeader("Content-Type", "useless/string"); | 1142 builder.addHeader("Content-Type", "useless/string"); |
1150 builder.build().start(); | 1143 builder.build().start(); |
1151 callback.blockForDone(); | 1144 callback.blockForDone(); |
1152 dataProvider.assertClosed(); | 1145 dataProvider.assertClosed(); |
1153 | 1146 |
1154 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 1147 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
1155 assertEquals("POST", callback.mResponseAsString); | 1148 assertEquals("POST", callback.mResponseAsString); |
1156 } | 1149 } |
1157 | 1150 |
1158 @SmallTest | 1151 @SmallTest |
1159 @Feature({"Cronet"}) | 1152 @Feature({"Cronet"}) |
1160 public void testUploadWithSetMethod() throws Exception { | 1153 public void testUploadWithSetMethod() throws Exception { |
1161 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1154 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1162 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoMethodURL(), | 1155 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1163 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 1156 NativeTestServer.getEchoMethodURL(), callback, callback.getExecu
tor()); |
1164 | 1157 |
1165 final String method = "PUT"; | 1158 final String method = "PUT"; |
1166 builder.setHttpMethod(method); | 1159 builder.setHttpMethod(method); |
1167 | 1160 |
1168 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1161 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1169 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); | 1162 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); |
1170 dataProvider.addRead("test".getBytes()); | 1163 dataProvider.addRead("test".getBytes()); |
1171 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); | 1164 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); |
1172 builder.addHeader("Content-Type", "useless/string"); | 1165 builder.addHeader("Content-Type", "useless/string"); |
1173 builder.build().start(); | 1166 builder.build().start(); |
1174 callback.blockForDone(); | 1167 callback.blockForDone(); |
1175 dataProvider.assertClosed(); | 1168 dataProvider.assertClosed(); |
1176 | 1169 |
1177 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 1170 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
1178 assertEquals("PUT", callback.mResponseAsString); | 1171 assertEquals("PUT", callback.mResponseAsString); |
1179 } | 1172 } |
1180 | 1173 |
1181 @SmallTest | 1174 @SmallTest |
1182 @Feature({"Cronet"}) | 1175 @Feature({"Cronet"}) |
1183 public void testUploadRedirectSync() throws Exception { | 1176 public void testUploadRedirectSync() throws Exception { |
1184 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1177 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1185 UrlRequest.Builder builder = | 1178 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1186 new UrlRequest.Builder(NativeTestServer.getRedirectToEchoBody(),
callback, | 1179 NativeTestServer.getRedirectToEchoBody(), callback, callback.get
Executor()); |
1187 callback.getExecutor(), mTestFramework.mCronetEngine); | |
1188 | 1180 |
1189 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1181 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1190 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); | 1182 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); |
1191 dataProvider.addRead("test".getBytes()); | 1183 dataProvider.addRead("test".getBytes()); |
1192 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); | 1184 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); |
1193 builder.addHeader("Content-Type", "useless/string"); | 1185 builder.addHeader("Content-Type", "useless/string"); |
1194 builder.build().start(); | 1186 builder.build().start(); |
1195 callback.blockForDone(); | 1187 callback.blockForDone(); |
1196 dataProvider.assertClosed(); | 1188 dataProvider.assertClosed(); |
1197 | 1189 |
1198 // 1 read call before the rewind, 1 after. | 1190 // 1 read call before the rewind, 1 after. |
1199 assertEquals(2, dataProvider.getNumReadCalls()); | 1191 assertEquals(2, dataProvider.getNumReadCalls()); |
1200 assertEquals(1, dataProvider.getNumRewindCalls()); | 1192 assertEquals(1, dataProvider.getNumRewindCalls()); |
1201 | 1193 |
1202 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 1194 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
1203 assertEquals("test", callback.mResponseAsString); | 1195 assertEquals("test", callback.mResponseAsString); |
1204 } | 1196 } |
1205 | 1197 |
1206 @SmallTest | 1198 @SmallTest |
1207 @Feature({"Cronet"}) | 1199 @Feature({"Cronet"}) |
1208 public void testUploadRedirectAsync() throws Exception { | 1200 public void testUploadRedirectAsync() throws Exception { |
1209 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1201 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1210 UrlRequest.Builder builder = | 1202 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1211 new UrlRequest.Builder(NativeTestServer.getRedirectToEchoBody(),
callback, | 1203 NativeTestServer.getRedirectToEchoBody(), callback, callback.get
Executor()); |
1212 callback.getExecutor(), mTestFramework.mCronetEngine); | |
1213 | 1204 |
1214 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1205 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1215 TestUploadDataProvider.SuccessCallbackMode.ASYNC, callback.getEx
ecutor()); | 1206 TestUploadDataProvider.SuccessCallbackMode.ASYNC, callback.getEx
ecutor()); |
1216 dataProvider.addRead("test".getBytes()); | 1207 dataProvider.addRead("test".getBytes()); |
1217 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); | 1208 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); |
1218 builder.addHeader("Content-Type", "useless/string"); | 1209 builder.addHeader("Content-Type", "useless/string"); |
1219 builder.build().start(); | 1210 builder.build().start(); |
1220 dataProvider.assertClosed(); | 1211 dataProvider.assertClosed(); |
1221 callback.blockForDone(); | 1212 callback.blockForDone(); |
1222 | 1213 |
1223 // 1 read call before the rewind, 1 after. | 1214 // 1 read call before the rewind, 1 after. |
1224 assertEquals(2, dataProvider.getNumReadCalls()); | 1215 assertEquals(2, dataProvider.getNumReadCalls()); |
1225 assertEquals(1, dataProvider.getNumRewindCalls()); | 1216 assertEquals(1, dataProvider.getNumRewindCalls()); |
1226 | 1217 |
1227 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 1218 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
1228 assertEquals("test", callback.mResponseAsString); | 1219 assertEquals("test", callback.mResponseAsString); |
1229 } | 1220 } |
1230 | 1221 |
1231 @SmallTest | 1222 @SmallTest |
1232 @Feature({"Cronet"}) | 1223 @Feature({"Cronet"}) |
1233 public void testUploadWithBadLength() throws Exception { | 1224 public void testUploadWithBadLength() throws Exception { |
1234 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1225 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1235 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), | 1226 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1236 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 1227 NativeTestServer.getEchoBodyURL(), callback, callback.getExecuto
r()); |
1237 | 1228 |
1238 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1229 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1239 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()) { | 1230 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()) { |
1240 @Override | 1231 @Override |
1241 public long getLength() throws IOException { | 1232 public long getLength() throws IOException { |
1242 return 1; | 1233 return 1; |
1243 } | 1234 } |
1244 | 1235 |
1245 @Override | 1236 @Override |
1246 public void read(UploadDataSink uploadDataSink, ByteBuffer byteBuffe
r) | 1237 public void read(UploadDataSink uploadDataSink, ByteBuffer byteBuffe
r) |
(...skipping 11 matching lines...) Expand all Loading... |
1258 assertEquals("Exception received from UploadDataProvider", callback.mErr
or.getMessage()); | 1249 assertEquals("Exception received from UploadDataProvider", callback.mErr
or.getMessage()); |
1259 assertEquals("Read upload data length 2 exceeds expected length 1", | 1250 assertEquals("Read upload data length 2 exceeds expected length 1", |
1260 callback.mError.getCause().getMessage()); | 1251 callback.mError.getCause().getMessage()); |
1261 assertEquals(null, callback.mResponseInfo); | 1252 assertEquals(null, callback.mResponseInfo); |
1262 } | 1253 } |
1263 | 1254 |
1264 @SmallTest | 1255 @SmallTest |
1265 @Feature({"Cronet"}) | 1256 @Feature({"Cronet"}) |
1266 public void testUploadWithBadLengthBufferAligned() throws Exception { | 1257 public void testUploadWithBadLengthBufferAligned() throws Exception { |
1267 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1258 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1268 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), | 1259 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1269 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 1260 NativeTestServer.getEchoBodyURL(), callback, callback.getExecuto
r()); |
1270 | 1261 |
1271 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1262 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1272 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()) { | 1263 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()) { |
1273 @Override | 1264 @Override |
1274 public long getLength() throws IOException { | 1265 public long getLength() throws IOException { |
1275 return 8191; | 1266 return 8191; |
1276 } | 1267 } |
1277 | 1268 |
1278 @Override | 1269 @Override |
1279 public void read(UploadDataSink uploadDataSink, ByteBuffer byteBuffe
r) | 1270 public void read(UploadDataSink uploadDataSink, ByteBuffer byteBuffe
r) |
(...skipping 11 matching lines...) Expand all Loading... |
1291 assertEquals("Exception received from UploadDataProvider", callback.mErr
or.getMessage()); | 1282 assertEquals("Exception received from UploadDataProvider", callback.mErr
or.getMessage()); |
1292 assertEquals("Read upload data length 8192 exceeds expected length 8191"
, | 1283 assertEquals("Read upload data length 8192 exceeds expected length 8191"
, |
1293 callback.mError.getCause().getMessage()); | 1284 callback.mError.getCause().getMessage()); |
1294 assertEquals(null, callback.mResponseInfo); | 1285 assertEquals(null, callback.mResponseInfo); |
1295 } | 1286 } |
1296 | 1287 |
1297 @SmallTest | 1288 @SmallTest |
1298 @Feature({"Cronet"}) | 1289 @Feature({"Cronet"}) |
1299 public void testUploadReadFailSync() throws Exception { | 1290 public void testUploadReadFailSync() throws Exception { |
1300 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1291 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1301 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), | 1292 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1302 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 1293 NativeTestServer.getEchoBodyURL(), callback, callback.getExecuto
r()); |
1303 | 1294 |
1304 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1295 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1305 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); | 1296 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); |
1306 dataProvider.setReadFailure(0, TestUploadDataProvider.FailMode.CALLBACK_
SYNC); | 1297 dataProvider.setReadFailure(0, TestUploadDataProvider.FailMode.CALLBACK_
SYNC); |
1307 // This will never be read, but if the length is 0, read may never be | 1298 // This will never be read, but if the length is 0, read may never be |
1308 // called. | 1299 // called. |
1309 dataProvider.addRead("test".getBytes()); | 1300 dataProvider.addRead("test".getBytes()); |
1310 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); | 1301 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); |
1311 builder.addHeader("Content-Type", "useless/string"); | 1302 builder.addHeader("Content-Type", "useless/string"); |
1312 builder.build().start(); | 1303 builder.build().start(); |
1313 callback.blockForDone(); | 1304 callback.blockForDone(); |
1314 dataProvider.assertClosed(); | 1305 dataProvider.assertClosed(); |
1315 | 1306 |
1316 assertEquals(1, dataProvider.getNumReadCalls()); | 1307 assertEquals(1, dataProvider.getNumReadCalls()); |
1317 assertEquals(0, dataProvider.getNumRewindCalls()); | 1308 assertEquals(0, dataProvider.getNumRewindCalls()); |
1318 | 1309 |
1319 assertEquals("Exception received from UploadDataProvider", callback.mErr
or.getMessage()); | 1310 assertEquals("Exception received from UploadDataProvider", callback.mErr
or.getMessage()); |
1320 assertEquals("Sync read failure", callback.mError.getCause().getMessage(
)); | 1311 assertEquals("Sync read failure", callback.mError.getCause().getMessage(
)); |
1321 assertEquals(null, callback.mResponseInfo); | 1312 assertEquals(null, callback.mResponseInfo); |
1322 } | 1313 } |
1323 | 1314 |
1324 @SmallTest | 1315 @SmallTest |
1325 @Feature({"Cronet"}) | 1316 @Feature({"Cronet"}) |
1326 public void testUploadLengthFailSync() throws Exception { | 1317 public void testUploadLengthFailSync() throws Exception { |
1327 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1318 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1328 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), | 1319 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1329 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 1320 NativeTestServer.getEchoBodyURL(), callback, callback.getExecuto
r()); |
1330 | 1321 |
1331 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1322 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1332 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); | 1323 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); |
1333 dataProvider.setLengthFailure(); | 1324 dataProvider.setLengthFailure(); |
1334 // This will never be read, but if the length is 0, read may never be | 1325 // This will never be read, but if the length is 0, read may never be |
1335 // called. | 1326 // called. |
1336 dataProvider.addRead("test".getBytes()); | 1327 dataProvider.addRead("test".getBytes()); |
1337 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); | 1328 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); |
1338 builder.addHeader("Content-Type", "useless/string"); | 1329 builder.addHeader("Content-Type", "useless/string"); |
1339 builder.build().start(); | 1330 builder.build().start(); |
1340 callback.blockForDone(); | 1331 callback.blockForDone(); |
1341 dataProvider.assertClosed(); | 1332 dataProvider.assertClosed(); |
1342 | 1333 |
1343 assertEquals(0, dataProvider.getNumReadCalls()); | 1334 assertEquals(0, dataProvider.getNumReadCalls()); |
1344 assertEquals(0, dataProvider.getNumRewindCalls()); | 1335 assertEquals(0, dataProvider.getNumRewindCalls()); |
1345 | 1336 |
1346 assertEquals("Exception received from UploadDataProvider", callback.mErr
or.getMessage()); | 1337 assertEquals("Exception received from UploadDataProvider", callback.mErr
or.getMessage()); |
1347 assertEquals("Sync length failure", callback.mError.getCause().getMessag
e()); | 1338 assertEquals("Sync length failure", callback.mError.getCause().getMessag
e()); |
1348 assertEquals(null, callback.mResponseInfo); | 1339 assertEquals(null, callback.mResponseInfo); |
1349 } | 1340 } |
1350 | 1341 |
1351 @SmallTest | 1342 @SmallTest |
1352 @Feature({"Cronet"}) | 1343 @Feature({"Cronet"}) |
1353 public void testUploadReadFailAsync() throws Exception { | 1344 public void testUploadReadFailAsync() throws Exception { |
1354 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1345 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1355 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), | 1346 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1356 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 1347 NativeTestServer.getEchoBodyURL(), callback, callback.getExecuto
r()); |
1357 | 1348 |
1358 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1349 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1359 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); | 1350 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); |
1360 dataProvider.setReadFailure(0, TestUploadDataProvider.FailMode.CALLBACK_
ASYNC); | 1351 dataProvider.setReadFailure(0, TestUploadDataProvider.FailMode.CALLBACK_
ASYNC); |
1361 // This will never be read, but if the length is 0, read may never be | 1352 // This will never be read, but if the length is 0, read may never be |
1362 // called. | 1353 // called. |
1363 dataProvider.addRead("test".getBytes()); | 1354 dataProvider.addRead("test".getBytes()); |
1364 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); | 1355 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); |
1365 builder.addHeader("Content-Type", "useless/string"); | 1356 builder.addHeader("Content-Type", "useless/string"); |
1366 builder.build().start(); | 1357 builder.build().start(); |
(...skipping 13 matching lines...) Expand all Loading... |
1380 @Feature({"Cronet"}) | 1371 @Feature({"Cronet"}) |
1381 public void testDirectExecutorUploadProhibitedByDefault() throws Exception { | 1372 public void testDirectExecutorUploadProhibitedByDefault() throws Exception { |
1382 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1373 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1383 Executor myExecutor = new Executor() { | 1374 Executor myExecutor = new Executor() { |
1384 | 1375 |
1385 @Override | 1376 @Override |
1386 public void execute(Runnable command) { | 1377 public void execute(Runnable command) { |
1387 command.run(); | 1378 command.run(); |
1388 } | 1379 } |
1389 }; | 1380 }; |
1390 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), | 1381 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1391 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 1382 NativeTestServer.getEchoBodyURL(), callback, callback.getExecuto
r()); |
1392 | 1383 |
1393 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1384 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1394 TestUploadDataProvider.SuccessCallbackMode.SYNC, myExecutor); | 1385 TestUploadDataProvider.SuccessCallbackMode.SYNC, myExecutor); |
1395 // This will never be read, but if the length is 0, read may never be | 1386 // This will never be read, but if the length is 0, read may never be |
1396 // called. | 1387 // called. |
1397 dataProvider.addRead("test".getBytes()); | 1388 dataProvider.addRead("test".getBytes()); |
1398 builder.setUploadDataProvider(dataProvider, myExecutor); | 1389 builder.setUploadDataProvider(dataProvider, myExecutor); |
1399 builder.addHeader("Content-Type", "useless/string"); | 1390 builder.addHeader("Content-Type", "useless/string"); |
1400 builder.build().start(); | 1391 builder.build().start(); |
1401 callback.blockForDone(); | 1392 callback.blockForDone(); |
(...skipping 13 matching lines...) Expand all Loading... |
1415 public void testDirectExecutorProhibitedByDefault() throws Exception { | 1406 public void testDirectExecutorProhibitedByDefault() throws Exception { |
1416 System.out.println("testing with " + mTestFramework.mCronetEngine); | 1407 System.out.println("testing with " + mTestFramework.mCronetEngine); |
1417 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1408 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1418 Executor myExecutor = new Executor() { | 1409 Executor myExecutor = new Executor() { |
1419 | 1410 |
1420 @Override | 1411 @Override |
1421 public void execute(Runnable command) { | 1412 public void execute(Runnable command) { |
1422 command.run(); | 1413 command.run(); |
1423 } | 1414 } |
1424 }; | 1415 }; |
1425 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), | 1416 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1426 callback, myExecutor, mTestFramework.mCronetEngine); | 1417 NativeTestServer.getEchoBodyURL(), callback, myExecutor); |
1427 | 1418 |
1428 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1419 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1429 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); | 1420 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); |
1430 // This will never be read, but if the length is 0, read may never be | 1421 // This will never be read, but if the length is 0, read may never be |
1431 // called. | 1422 // called. |
1432 dataProvider.addRead("test".getBytes()); | 1423 dataProvider.addRead("test".getBytes()); |
1433 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); | 1424 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); |
1434 builder.addHeader("Content-Type", "useless/string"); | 1425 builder.addHeader("Content-Type", "useless/string"); |
1435 builder.build().start(); | 1426 builder.build().start(); |
1436 callback.blockForDone(); | 1427 callback.blockForDone(); |
(...skipping 14 matching lines...) Expand all Loading... |
1451 public void testDirectExecutorAllowed() throws Exception { | 1442 public void testDirectExecutorAllowed() throws Exception { |
1452 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1443 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1453 callback.setAllowDirectExecutor(true); | 1444 callback.setAllowDirectExecutor(true); |
1454 Executor myExecutor = new Executor() { | 1445 Executor myExecutor = new Executor() { |
1455 | 1446 |
1456 @Override | 1447 @Override |
1457 public void execute(Runnable command) { | 1448 public void execute(Runnable command) { |
1458 command.run(); | 1449 command.run(); |
1459 } | 1450 } |
1460 }; | 1451 }; |
1461 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), | 1452 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1462 callback, myExecutor, mTestFramework.mCronetEngine); | 1453 NativeTestServer.getEchoBodyURL(), callback, myExecutor); |
1463 UploadDataProvider dataProvider = UploadDataProviders.create("test".getB
ytes("UTF-8")); | 1454 UploadDataProvider dataProvider = UploadDataProviders.create("test".getB
ytes("UTF-8")); |
1464 builder.setUploadDataProvider(dataProvider, myExecutor); | 1455 builder.setUploadDataProvider(dataProvider, myExecutor); |
1465 builder.addHeader("Content-Type", "useless/string"); | 1456 builder.addHeader("Content-Type", "useless/string"); |
1466 builder.allowDirectExecutor(); | 1457 builder.allowDirectExecutor(); |
1467 builder.build().start(); | 1458 builder.build().start(); |
1468 callback.blockForDone(); | 1459 callback.blockForDone(); |
1469 | 1460 |
1470 if (callback.mOnErrorCalled) { | 1461 if (callback.mOnErrorCalled) { |
1471 throw callback.mError; | 1462 throw callback.mError; |
1472 } | 1463 } |
1473 | 1464 |
1474 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 1465 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
1475 assertEquals("test", callback.mResponseAsString); | 1466 assertEquals("test", callback.mResponseAsString); |
1476 } | 1467 } |
1477 | 1468 |
1478 @SmallTest | 1469 @SmallTest |
1479 @Feature({"Cronet"}) | 1470 @Feature({"Cronet"}) |
1480 public void testUploadReadFailThrown() throws Exception { | 1471 public void testUploadReadFailThrown() throws Exception { |
1481 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1472 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1482 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), | 1473 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1483 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 1474 NativeTestServer.getEchoBodyURL(), callback, callback.getExecuto
r()); |
1484 | 1475 |
1485 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1476 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1486 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); | 1477 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); |
1487 dataProvider.setReadFailure(0, TestUploadDataProvider.FailMode.THROWN); | 1478 dataProvider.setReadFailure(0, TestUploadDataProvider.FailMode.THROWN); |
1488 // This will never be read, but if the length is 0, read may never be | 1479 // This will never be read, but if the length is 0, read may never be |
1489 // called. | 1480 // called. |
1490 dataProvider.addRead("test".getBytes()); | 1481 dataProvider.addRead("test".getBytes()); |
1491 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); | 1482 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); |
1492 builder.addHeader("Content-Type", "useless/string"); | 1483 builder.addHeader("Content-Type", "useless/string"); |
1493 builder.build().start(); | 1484 builder.build().start(); |
1494 callback.blockForDone(); | 1485 callback.blockForDone(); |
1495 dataProvider.assertClosed(); | 1486 dataProvider.assertClosed(); |
1496 | 1487 |
1497 assertEquals(1, dataProvider.getNumReadCalls()); | 1488 assertEquals(1, dataProvider.getNumReadCalls()); |
1498 assertEquals(0, dataProvider.getNumRewindCalls()); | 1489 assertEquals(0, dataProvider.getNumRewindCalls()); |
1499 | 1490 |
1500 assertEquals("Exception received from UploadDataProvider", callback.mErr
or.getMessage()); | 1491 assertEquals("Exception received from UploadDataProvider", callback.mErr
or.getMessage()); |
1501 assertEquals("Thrown read failure", callback.mError.getCause().getMessag
e()); | 1492 assertEquals("Thrown read failure", callback.mError.getCause().getMessag
e()); |
1502 assertEquals(null, callback.mResponseInfo); | 1493 assertEquals(null, callback.mResponseInfo); |
1503 } | 1494 } |
1504 | 1495 |
1505 @SmallTest | 1496 @SmallTest |
1506 @Feature({"Cronet"}) | 1497 @Feature({"Cronet"}) |
1507 public void testUploadRewindFailSync() throws Exception { | 1498 public void testUploadRewindFailSync() throws Exception { |
1508 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1499 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1509 UrlRequest.Builder builder = | 1500 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1510 new UrlRequest.Builder(NativeTestServer.getRedirectToEchoBody(),
callback, | 1501 NativeTestServer.getRedirectToEchoBody(), callback, callback.get
Executor()); |
1511 callback.getExecutor(), mTestFramework.mCronetEngine); | |
1512 | 1502 |
1513 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1503 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1514 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); | 1504 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); |
1515 dataProvider.setRewindFailure(TestUploadDataProvider.FailMode.CALLBACK_S
YNC); | 1505 dataProvider.setRewindFailure(TestUploadDataProvider.FailMode.CALLBACK_S
YNC); |
1516 dataProvider.addRead("test".getBytes()); | 1506 dataProvider.addRead("test".getBytes()); |
1517 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); | 1507 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); |
1518 builder.addHeader("Content-Type", "useless/string"); | 1508 builder.addHeader("Content-Type", "useless/string"); |
1519 builder.build().start(); | 1509 builder.build().start(); |
1520 callback.blockForDone(); | 1510 callback.blockForDone(); |
1521 dataProvider.assertClosed(); | 1511 dataProvider.assertClosed(); |
1522 | 1512 |
1523 assertEquals(1, dataProvider.getNumReadCalls()); | 1513 assertEquals(1, dataProvider.getNumReadCalls()); |
1524 assertEquals(1, dataProvider.getNumRewindCalls()); | 1514 assertEquals(1, dataProvider.getNumRewindCalls()); |
1525 | 1515 |
1526 assertEquals("Exception received from UploadDataProvider", callback.mErr
or.getMessage()); | 1516 assertEquals("Exception received from UploadDataProvider", callback.mErr
or.getMessage()); |
1527 assertEquals("Sync rewind failure", callback.mError.getCause().getMessag
e()); | 1517 assertEquals("Sync rewind failure", callback.mError.getCause().getMessag
e()); |
1528 assertEquals(null, callback.mResponseInfo); | 1518 assertEquals(null, callback.mResponseInfo); |
1529 } | 1519 } |
1530 | 1520 |
1531 @SmallTest | 1521 @SmallTest |
1532 @Feature({"Cronet"}) | 1522 @Feature({"Cronet"}) |
1533 public void testUploadRewindFailAsync() throws Exception { | 1523 public void testUploadRewindFailAsync() throws Exception { |
1534 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1524 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1535 UrlRequest.Builder builder = | 1525 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1536 new UrlRequest.Builder(NativeTestServer.getRedirectToEchoBody(),
callback, | 1526 NativeTestServer.getRedirectToEchoBody(), callback, callback.get
Executor()); |
1537 callback.getExecutor(), mTestFramework.mCronetEngine); | |
1538 | 1527 |
1539 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1528 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1540 TestUploadDataProvider.SuccessCallbackMode.ASYNC, callback.getEx
ecutor()); | 1529 TestUploadDataProvider.SuccessCallbackMode.ASYNC, callback.getEx
ecutor()); |
1541 dataProvider.setRewindFailure(TestUploadDataProvider.FailMode.CALLBACK_A
SYNC); | 1530 dataProvider.setRewindFailure(TestUploadDataProvider.FailMode.CALLBACK_A
SYNC); |
1542 dataProvider.addRead("test".getBytes()); | 1531 dataProvider.addRead("test".getBytes()); |
1543 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); | 1532 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); |
1544 builder.addHeader("Content-Type", "useless/string"); | 1533 builder.addHeader("Content-Type", "useless/string"); |
1545 builder.build().start(); | 1534 builder.build().start(); |
1546 callback.blockForDone(); | 1535 callback.blockForDone(); |
1547 dataProvider.assertClosed(); | 1536 dataProvider.assertClosed(); |
1548 | 1537 |
1549 assertEquals(1, dataProvider.getNumReadCalls()); | 1538 assertEquals(1, dataProvider.getNumReadCalls()); |
1550 assertEquals(1, dataProvider.getNumRewindCalls()); | 1539 assertEquals(1, dataProvider.getNumRewindCalls()); |
1551 | 1540 |
1552 assertEquals("Exception received from UploadDataProvider", callback.mErr
or.getMessage()); | 1541 assertEquals("Exception received from UploadDataProvider", callback.mErr
or.getMessage()); |
1553 assertEquals("Async rewind failure", callback.mError.getCause().getMessa
ge()); | 1542 assertEquals("Async rewind failure", callback.mError.getCause().getMessa
ge()); |
1554 assertEquals(null, callback.mResponseInfo); | 1543 assertEquals(null, callback.mResponseInfo); |
1555 } | 1544 } |
1556 | 1545 |
1557 @SmallTest | 1546 @SmallTest |
1558 @Feature({"Cronet"}) | 1547 @Feature({"Cronet"}) |
1559 public void testUploadRewindFailThrown() throws Exception { | 1548 public void testUploadRewindFailThrown() throws Exception { |
1560 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1549 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1561 UrlRequest.Builder builder = | 1550 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1562 new UrlRequest.Builder(NativeTestServer.getRedirectToEchoBody(),
callback, | 1551 NativeTestServer.getRedirectToEchoBody(), callback, callback.get
Executor()); |
1563 callback.getExecutor(), mTestFramework.mCronetEngine); | |
1564 | 1552 |
1565 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1553 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1566 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); | 1554 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); |
1567 dataProvider.setRewindFailure(TestUploadDataProvider.FailMode.THROWN); | 1555 dataProvider.setRewindFailure(TestUploadDataProvider.FailMode.THROWN); |
1568 dataProvider.addRead("test".getBytes()); | 1556 dataProvider.addRead("test".getBytes()); |
1569 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); | 1557 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); |
1570 builder.addHeader("Content-Type", "useless/string"); | 1558 builder.addHeader("Content-Type", "useless/string"); |
1571 builder.build().start(); | 1559 builder.build().start(); |
1572 callback.blockForDone(); | 1560 callback.blockForDone(); |
1573 dataProvider.assertClosed(); | 1561 dataProvider.assertClosed(); |
1574 | 1562 |
1575 assertEquals(1, dataProvider.getNumReadCalls()); | 1563 assertEquals(1, dataProvider.getNumReadCalls()); |
1576 assertEquals(1, dataProvider.getNumRewindCalls()); | 1564 assertEquals(1, dataProvider.getNumRewindCalls()); |
1577 | 1565 |
1578 assertEquals("Exception received from UploadDataProvider", callback.mErr
or.getMessage()); | 1566 assertEquals("Exception received from UploadDataProvider", callback.mErr
or.getMessage()); |
1579 assertEquals("Thrown rewind failure", callback.mError.getCause().getMess
age()); | 1567 assertEquals("Thrown rewind failure", callback.mError.getCause().getMess
age()); |
1580 assertEquals(null, callback.mResponseInfo); | 1568 assertEquals(null, callback.mResponseInfo); |
1581 } | 1569 } |
1582 | 1570 |
1583 @SmallTest | 1571 @SmallTest |
1584 @Feature({"Cronet"}) | 1572 @Feature({"Cronet"}) |
1585 public void testUploadChunked() throws Exception { | 1573 public void testUploadChunked() throws Exception { |
1586 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1574 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1587 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), | 1575 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1588 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 1576 NativeTestServer.getEchoBodyURL(), callback, callback.getExecuto
r()); |
1589 | 1577 |
1590 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1578 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1591 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); | 1579 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); |
1592 dataProvider.addRead("test hello".getBytes()); | 1580 dataProvider.addRead("test hello".getBytes()); |
1593 dataProvider.setChunked(true); | 1581 dataProvider.setChunked(true); |
1594 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); | 1582 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); |
1595 builder.addHeader("Content-Type", "useless/string"); | 1583 builder.addHeader("Content-Type", "useless/string"); |
1596 | 1584 |
1597 assertEquals(-1, dataProvider.getUploadedLength()); | 1585 assertEquals(-1, dataProvider.getUploadedLength()); |
1598 | 1586 |
1599 builder.build().start(); | 1587 builder.build().start(); |
1600 callback.blockForDone(); | 1588 callback.blockForDone(); |
1601 dataProvider.assertClosed(); | 1589 dataProvider.assertClosed(); |
1602 | 1590 |
1603 // 1 read call for one data chunk. | 1591 // 1 read call for one data chunk. |
1604 assertEquals(1, dataProvider.getNumReadCalls()); | 1592 assertEquals(1, dataProvider.getNumReadCalls()); |
1605 assertEquals("test hello", callback.mResponseAsString); | 1593 assertEquals("test hello", callback.mResponseAsString); |
1606 } | 1594 } |
1607 | 1595 |
1608 @SmallTest | 1596 @SmallTest |
1609 @Feature({"Cronet"}) | 1597 @Feature({"Cronet"}) |
1610 public void testUploadChunkedLastReadZeroLengthBody() throws Exception { | 1598 public void testUploadChunkedLastReadZeroLengthBody() throws Exception { |
1611 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1599 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1612 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), | 1600 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1613 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 1601 NativeTestServer.getEchoBodyURL(), callback, callback.getExecuto
r()); |
1614 | 1602 |
1615 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1603 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1616 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); | 1604 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); |
1617 // Add 3 reads. The last read has a 0-length body. | 1605 // Add 3 reads. The last read has a 0-length body. |
1618 dataProvider.addRead("hello there".getBytes()); | 1606 dataProvider.addRead("hello there".getBytes()); |
1619 dataProvider.addRead("!".getBytes()); | 1607 dataProvider.addRead("!".getBytes()); |
1620 dataProvider.addRead("".getBytes()); | 1608 dataProvider.addRead("".getBytes()); |
1621 dataProvider.setChunked(true); | 1609 dataProvider.setChunked(true); |
1622 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); | 1610 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); |
1623 builder.addHeader("Content-Type", "useless/string"); | 1611 builder.addHeader("Content-Type", "useless/string"); |
1624 | 1612 |
1625 assertEquals(-1, dataProvider.getUploadedLength()); | 1613 assertEquals(-1, dataProvider.getUploadedLength()); |
1626 | 1614 |
1627 builder.build().start(); | 1615 builder.build().start(); |
1628 callback.blockForDone(); | 1616 callback.blockForDone(); |
1629 dataProvider.assertClosed(); | 1617 dataProvider.assertClosed(); |
1630 | 1618 |
1631 // 2 read call for the first two data chunks, and 1 for final chunk. | 1619 // 2 read call for the first two data chunks, and 1 for final chunk. |
1632 assertEquals(3, dataProvider.getNumReadCalls()); | 1620 assertEquals(3, dataProvider.getNumReadCalls()); |
1633 assertEquals("hello there!", callback.mResponseAsString); | 1621 assertEquals("hello there!", callback.mResponseAsString); |
1634 } | 1622 } |
1635 | 1623 |
1636 // Test where an upload fails without ever initializing the | 1624 // Test where an upload fails without ever initializing the |
1637 // UploadDataStream, because it can't connect to the server. | 1625 // UploadDataStream, because it can't connect to the server. |
1638 @SmallTest | 1626 @SmallTest |
1639 @Feature({"Cronet"}) | 1627 @Feature({"Cronet"}) |
1640 public void testUploadFailsWithoutInitializingStream() throws Exception { | 1628 public void testUploadFailsWithoutInitializingStream() throws Exception { |
1641 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1629 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1642 // The port for PTP will always refuse a TCP connection | 1630 // The port for PTP will always refuse a TCP connection |
1643 UrlRequest.Builder builder = new UrlRequest.Builder("http://127.0.0.1:31
9", callback, | 1631 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1644 callback.getExecutor(), mTestFramework.mCronetEngine); | 1632 "http://127.0.0.1:319", callback, callback.getExecutor()); |
1645 | 1633 |
1646 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1634 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1647 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); | 1635 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); |
1648 dataProvider.addRead("test".getBytes()); | 1636 dataProvider.addRead("test".getBytes()); |
1649 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); | 1637 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); |
1650 builder.addHeader("Content-Type", "useless/string"); | 1638 builder.addHeader("Content-Type", "useless/string"); |
1651 builder.build().start(); | 1639 builder.build().start(); |
1652 callback.blockForDone(); | 1640 callback.blockForDone(); |
1653 dataProvider.assertClosed(); | 1641 dataProvider.assertClosed(); |
1654 | 1642 |
1655 assertNull(callback.mResponseInfo); | 1643 assertNull(callback.mResponseInfo); |
1656 if (testingJavaImpl()) { | 1644 if (testingJavaImpl()) { |
1657 Throwable cause = callback.mError.getCause(); | 1645 Throwable cause = callback.mError.getCause(); |
1658 assertTrue("Exception was: " + cause, cause instanceof ConnectExcept
ion); | 1646 assertTrue("Exception was: " + cause, cause instanceof ConnectExcept
ion); |
1659 } else { | 1647 } else { |
1660 assertEquals("Exception in CronetUrlRequest: net::ERR_CONNECTION_REF
USED", | 1648 assertEquals("Exception in CronetUrlRequest: net::ERR_CONNECTION_REF
USED", |
1661 callback.mError.getMessage()); | 1649 callback.mError.getMessage()); |
1662 } | 1650 } |
1663 } | 1651 } |
1664 | 1652 |
1665 private void throwOrCancel(FailureType failureType, ResponseStep failureStep
, | 1653 private void throwOrCancel(FailureType failureType, ResponseStep failureStep
, |
1666 boolean expectResponseInfo, boolean expectError) { | 1654 boolean expectResponseInfo, boolean expectError) { |
1667 if (Log.isLoggable("TESTING", Log.VERBOSE)) { | 1655 if (Log.isLoggable("TESTING", Log.VERBOSE)) { |
1668 Log.v("TESTING", "Testing " + failureType + " during " + failureStep
); | 1656 Log.v("TESTING", "Testing " + failureType + " during " + failureStep
); |
1669 } | 1657 } |
1670 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1658 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1671 callback.setFailure(failureType, failureStep); | 1659 callback.setFailure(failureType, failureStep); |
1672 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
RedirectURL(), | 1660 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1673 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 1661 NativeTestServer.getRedirectURL(), callback, callback.getExecuto
r()); |
1674 UrlRequest urlRequest = builder.build(); | 1662 UrlRequest urlRequest = builder.build(); |
1675 urlRequest.start(); | 1663 urlRequest.start(); |
1676 callback.blockForDone(); | 1664 callback.blockForDone(); |
1677 // Wait for all posted tasks to be executed to ensure there is no unhand
led exception. | 1665 // Wait for all posted tasks to be executed to ensure there is no unhand
led exception. |
1678 callback.shutdownExecutorAndWait(); | 1666 callback.shutdownExecutorAndWait(); |
1679 assertEquals(1, callback.mRedirectCount); | 1667 assertEquals(1, callback.mRedirectCount); |
1680 if (failureType == FailureType.CANCEL_SYNC || failureType == FailureType
.CANCEL_ASYNC) { | 1668 if (failureType == FailureType.CANCEL_SYNC || failureType == FailureType
.CANCEL_ASYNC) { |
1681 assertEquals(ResponseStep.ON_CANCELED, callback.mResponseStep); | 1669 assertEquals(ResponseStep.ON_CANCELED, callback.mResponseStep); |
1682 } else if (failureType == FailureType.THROW_SYNC) { | 1670 } else if (failureType == FailureType.THROW_SYNC) { |
1683 assertEquals(ResponseStep.ON_FAILED, callback.mResponseStep); | 1671 assertEquals(ResponseStep.ON_FAILED, callback.mResponseStep); |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1724 } | 1712 } |
1725 | 1713 |
1726 @SmallTest | 1714 @SmallTest |
1727 @Feature({"Cronet"}) | 1715 @Feature({"Cronet"}) |
1728 public void testThrowOrCancelInOnSucceeded() { | 1716 public void testThrowOrCancelInOnSucceeded() { |
1729 FailureType[] testTypes = new FailureType[] { | 1717 FailureType[] testTypes = new FailureType[] { |
1730 FailureType.THROW_SYNC, FailureType.CANCEL_SYNC, FailureType.CAN
CEL_ASYNC}; | 1718 FailureType.THROW_SYNC, FailureType.CANCEL_SYNC, FailureType.CAN
CEL_ASYNC}; |
1731 for (FailureType type : testTypes) { | 1719 for (FailureType type : testTypes) { |
1732 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1720 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1733 callback.setFailure(type, ResponseStep.ON_SUCCEEDED); | 1721 callback.setFailure(type, ResponseStep.ON_SUCCEEDED); |
1734 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer
.getEchoMethodURL(), | 1722 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequ
estBuilder( |
1735 callback, callback.getExecutor(), mTestFramework.mCronetEngi
ne); | 1723 NativeTestServer.getEchoMethodURL(), callback, callback.getE
xecutor()); |
1736 UrlRequest urlRequest = builder.build(); | 1724 UrlRequest urlRequest = builder.build(); |
1737 urlRequest.start(); | 1725 urlRequest.start(); |
1738 callback.blockForDone(); | 1726 callback.blockForDone(); |
1739 // Wait for all posted tasks to be executed to ensure there is no un
handled exception. | 1727 // Wait for all posted tasks to be executed to ensure there is no un
handled exception. |
1740 callback.shutdownExecutorAndWait(); | 1728 callback.shutdownExecutorAndWait(); |
1741 assertNull(callback.mError); | 1729 assertNull(callback.mError); |
1742 assertEquals(ResponseStep.ON_SUCCEEDED, callback.mResponseStep); | 1730 assertEquals(ResponseStep.ON_SUCCEEDED, callback.mResponseStep); |
1743 assertTrue(urlRequest.isDone()); | 1731 assertTrue(urlRequest.isDone()); |
1744 assertNotNull(callback.mResponseInfo); | 1732 assertNotNull(callback.mResponseInfo); |
1745 assertFalse(callback.mOnErrorCalled); | 1733 assertFalse(callback.mOnErrorCalled); |
1746 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 1734 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
1747 assertEquals("GET", callback.mResponseAsString); | 1735 assertEquals("GET", callback.mResponseAsString); |
1748 } | 1736 } |
1749 } | 1737 } |
1750 | 1738 |
1751 @SmallTest | 1739 @SmallTest |
1752 @Feature({"Cronet"}) | 1740 @Feature({"Cronet"}) |
1753 public void testThrowOrCancelInOnFailed() { | 1741 public void testThrowOrCancelInOnFailed() { |
1754 FailureType[] testTypes = new FailureType[] { | 1742 FailureType[] testTypes = new FailureType[] { |
1755 FailureType.THROW_SYNC, FailureType.CANCEL_SYNC, FailureType.CAN
CEL_ASYNC}; | 1743 FailureType.THROW_SYNC, FailureType.CANCEL_SYNC, FailureType.CAN
CEL_ASYNC}; |
1756 for (FailureType type : testTypes) { | 1744 for (FailureType type : testTypes) { |
1757 String url = NativeTestServer.getEchoBodyURL(); | 1745 String url = NativeTestServer.getEchoBodyURL(); |
1758 // Shut down NativeTestServer so request will fail. | 1746 // Shut down NativeTestServer so request will fail. |
1759 NativeTestServer.shutdownNativeTestServer(); | 1747 NativeTestServer.shutdownNativeTestServer(); |
1760 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1748 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1761 callback.setFailure(type, ResponseStep.ON_FAILED); | 1749 callback.setFailure(type, ResponseStep.ON_FAILED); |
1762 UrlRequest.Builder builder = new UrlRequest.Builder( | 1750 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequ
estBuilder( |
1763 url, callback, callback.getExecutor(), mTestFramework.mCrone
tEngine); | 1751 url, callback, callback.getExecutor()); |
1764 UrlRequest urlRequest = builder.build(); | 1752 UrlRequest urlRequest = builder.build(); |
1765 urlRequest.start(); | 1753 urlRequest.start(); |
1766 callback.blockForDone(); | 1754 callback.blockForDone(); |
1767 // Wait for all posted tasks to be executed to ensure there is no un
handled exception. | 1755 // Wait for all posted tasks to be executed to ensure there is no un
handled exception. |
1768 callback.shutdownExecutorAndWait(); | 1756 callback.shutdownExecutorAndWait(); |
1769 assertEquals(ResponseStep.ON_FAILED, callback.mResponseStep); | 1757 assertEquals(ResponseStep.ON_FAILED, callback.mResponseStep); |
1770 assertTrue(callback.mOnErrorCalled); | 1758 assertTrue(callback.mOnErrorCalled); |
1771 assertNotNull(callback.mError); | 1759 assertNotNull(callback.mError); |
1772 assertTrue(urlRequest.isDone()); | 1760 assertTrue(urlRequest.isDone()); |
1773 // Start NativeTestServer again to run the test for a second time. | 1761 // Start NativeTestServer again to run the test for a second time. |
1774 assertTrue(NativeTestServer.startNativeTestServer(getContext())); | 1762 assertTrue(NativeTestServer.startNativeTestServer(getContext())); |
1775 } | 1763 } |
1776 } | 1764 } |
1777 | 1765 |
1778 @SmallTest | 1766 @SmallTest |
1779 @Feature({"Cronet"}) | 1767 @Feature({"Cronet"}) |
1780 public void testThrowOrCancelInOnCanceled() { | 1768 public void testThrowOrCancelInOnCanceled() { |
1781 FailureType[] testTypes = new FailureType[] { | 1769 FailureType[] testTypes = new FailureType[] { |
1782 FailureType.THROW_SYNC, FailureType.CANCEL_SYNC, FailureType.CAN
CEL_ASYNC}; | 1770 FailureType.THROW_SYNC, FailureType.CANCEL_SYNC, FailureType.CAN
CEL_ASYNC}; |
1783 for (FailureType type : testTypes) { | 1771 for (FailureType type : testTypes) { |
1784 TestUrlRequestCallback callback = new TestUrlRequestCallback() { | 1772 TestUrlRequestCallback callback = new TestUrlRequestCallback() { |
1785 @Override | 1773 @Override |
1786 public void onResponseStarted(UrlRequest request, UrlResponseInf
o info) { | 1774 public void onResponseStarted(UrlRequest request, UrlResponseInf
o info) { |
1787 super.onResponseStarted(request, info); | 1775 super.onResponseStarted(request, info); |
1788 request.cancel(); | 1776 request.cancel(); |
1789 } | 1777 } |
1790 }; | 1778 }; |
1791 callback.setFailure(type, ResponseStep.ON_CANCELED); | 1779 callback.setFailure(type, ResponseStep.ON_CANCELED); |
1792 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer
.getEchoBodyURL(), | 1780 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequ
estBuilder( |
1793 callback, callback.getExecutor(), mTestFramework.mCronetEngi
ne); | 1781 NativeTestServer.getEchoBodyURL(), callback, callback.getExe
cutor()); |
1794 UrlRequest urlRequest = builder.build(); | 1782 UrlRequest urlRequest = builder.build(); |
1795 urlRequest.start(); | 1783 urlRequest.start(); |
1796 callback.blockForDone(); | 1784 callback.blockForDone(); |
1797 // Wait for all posted tasks to be executed to ensure there is no un
handled exception. | 1785 // Wait for all posted tasks to be executed to ensure there is no un
handled exception. |
1798 callback.shutdownExecutorAndWait(); | 1786 callback.shutdownExecutorAndWait(); |
1799 assertEquals(ResponseStep.ON_CANCELED, callback.mResponseStep); | 1787 assertEquals(ResponseStep.ON_CANCELED, callback.mResponseStep); |
1800 assertTrue(urlRequest.isDone()); | 1788 assertTrue(urlRequest.isDone()); |
1801 assertNotNull(callback.mResponseInfo); | 1789 assertNotNull(callback.mResponseInfo); |
1802 assertNull(callback.mError); | 1790 assertNull(callback.mError); |
1803 assertTrue(callback.mOnCanceledCalled); | 1791 assertTrue(callback.mOnCanceledCalled); |
1804 } | 1792 } |
1805 } | 1793 } |
1806 | 1794 |
1807 @SmallTest | 1795 @SmallTest |
1808 @Feature({"Cronet"}) | 1796 @Feature({"Cronet"}) |
1809 @OnlyRunNativeCronet // No destroyed callback for tests | 1797 @OnlyRunNativeCronet // No destroyed callback for tests |
1810 public void testExecutorShutdown() { | 1798 public void testExecutorShutdown() { |
1811 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1799 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1812 | 1800 |
1813 callback.setAutoAdvance(false); | 1801 callback.setAutoAdvance(false); |
1814 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), | 1802 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1815 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 1803 NativeTestServer.getEchoBodyURL(), callback, callback.getExecuto
r()); |
1816 CronetUrlRequest urlRequest = (CronetUrlRequest) builder.build(); | 1804 CronetUrlRequest urlRequest = (CronetUrlRequest) builder.build(); |
1817 urlRequest.start(); | 1805 urlRequest.start(); |
1818 callback.waitForNextStep(); | 1806 callback.waitForNextStep(); |
1819 assertFalse(callback.isDone()); | 1807 assertFalse(callback.isDone()); |
1820 assertFalse(urlRequest.isDone()); | 1808 assertFalse(urlRequest.isDone()); |
1821 | 1809 |
1822 final ConditionVariable requestDestroyed = new ConditionVariable(false); | 1810 final ConditionVariable requestDestroyed = new ConditionVariable(false); |
1823 urlRequest.setOnDestroyedCallbackForTesting(new Runnable() { | 1811 urlRequest.setOnDestroyedCallbackForTesting(new Runnable() { |
1824 @Override | 1812 @Override |
1825 public void run() { | 1813 public void run() { |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1859 mByteBuffer = byteBuffer; | 1847 mByteBuffer = byteBuffer; |
1860 mReadCalled.open(); | 1848 mReadCalled.open(); |
1861 } | 1849 } |
1862 | 1850 |
1863 @Override | 1851 @Override |
1864 public void rewind(final UploadDataSink uploadDataSink) { | 1852 public void rewind(final UploadDataSink uploadDataSink) { |
1865 } | 1853 } |
1866 } | 1854 } |
1867 | 1855 |
1868 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1856 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
1869 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), | 1857 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1870 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 1858 NativeTestServer.getEchoBodyURL(), callback, callback.getExecuto
r()); |
1871 | 1859 |
1872 ExecutorService uploadExecutor = Executors.newSingleThreadExecutor(); | 1860 ExecutorService uploadExecutor = Executors.newSingleThreadExecutor(); |
1873 HangingUploadDataProvider dataProvider = new HangingUploadDataProvider()
; | 1861 HangingUploadDataProvider dataProvider = new HangingUploadDataProvider()
; |
1874 builder.setUploadDataProvider(dataProvider, uploadExecutor); | 1862 builder.setUploadDataProvider(dataProvider, uploadExecutor); |
1875 builder.addHeader("Content-Type", "useless/string"); | 1863 builder.addHeader("Content-Type", "useless/string"); |
1876 UrlRequest urlRequest = builder.build(); | 1864 UrlRequest urlRequest = builder.build(); |
1877 urlRequest.start(); | 1865 urlRequest.start(); |
1878 // Wait for read to be called on executor. | 1866 // Wait for read to be called on executor. |
1879 dataProvider.mReadCalled.block(); | 1867 dataProvider.mReadCalled.block(); |
1880 // Shutdown the executor, so posting next task will throw an exception. | 1868 // Shutdown the executor, so posting next task will throw an exception. |
(...skipping 21 matching lines...) Expand all Loading... |
1902 super.onSucceeded(request, info); | 1890 super.onSucceeded(request, info); |
1903 } | 1891 } |
1904 } | 1892 } |
1905 | 1893 |
1906 @SmallTest | 1894 @SmallTest |
1907 @Feature({"Cronet"}) | 1895 @Feature({"Cronet"}) |
1908 @OnlyRunNativeCronet // No adapter to destroy in pure java | 1896 @OnlyRunNativeCronet // No adapter to destroy in pure java |
1909 // Regression test for crbug.com/564946. | 1897 // Regression test for crbug.com/564946. |
1910 public void testDestroyUploadDataStreamAdapterOnSucceededCallback() throws E
xception { | 1898 public void testDestroyUploadDataStreamAdapterOnSucceededCallback() throws E
xception { |
1911 TestUrlRequestCallback callback = new QuitOnSuccessCallback(); | 1899 TestUrlRequestCallback callback = new QuitOnSuccessCallback(); |
1912 UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.get
EchoBodyURL(), | 1900 UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestB
uilder( |
1913 callback, callback.getExecutor(), mTestFramework.mCronetEngine); | 1901 NativeTestServer.getEchoBodyURL(), callback, callback.getExecuto
r()); |
1914 | 1902 |
1915 TestUploadDataProvider dataProvider = new TestUploadDataProvider( | 1903 TestUploadDataProvider dataProvider = new TestUploadDataProvider( |
1916 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); | 1904 TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExe
cutor()); |
1917 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); | 1905 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); |
1918 builder.addHeader("Content-Type", "useless/string"); | 1906 builder.addHeader("Content-Type", "useless/string"); |
1919 CronetUrlRequest request = (CronetUrlRequest) builder.build(); | 1907 CronetUrlRequest request = (CronetUrlRequest) builder.build(); |
1920 final ConditionVariable uploadDataStreamAdapterDestroyed = new Condition
Variable(); | 1908 final ConditionVariable uploadDataStreamAdapterDestroyed = new Condition
Variable(); |
1921 request.setOnDestroyedUploadCallbackForTesting(new Runnable() { | 1909 request.setOnDestroyedUploadCallbackForTesting(new Runnable() { |
1922 @Override | 1910 @Override |
1923 public void run() { | 1911 public void run() { |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2017 private String bufferContentsToString(ByteBuffer byteBuffer, int start, int
end) { | 2005 private String bufferContentsToString(ByteBuffer byteBuffer, int start, int
end) { |
2018 // Use a duplicate to avoid modifying byteBuffer. | 2006 // Use a duplicate to avoid modifying byteBuffer. |
2019 ByteBuffer duplicate = byteBuffer.duplicate(); | 2007 ByteBuffer duplicate = byteBuffer.duplicate(); |
2020 duplicate.position(start); | 2008 duplicate.position(start); |
2021 duplicate.limit(end); | 2009 duplicate.limit(end); |
2022 byte[] contents = new byte[duplicate.remaining()]; | 2010 byte[] contents = new byte[duplicate.remaining()]; |
2023 duplicate.get(contents); | 2011 duplicate.get(contents); |
2024 return new String(contents); | 2012 return new String(contents); |
2025 } | 2013 } |
2026 } | 2014 } |
OLD | NEW |