| 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 |