| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.net; | 5 package org.chromium.net; |
| 6 | 6 |
| 7 import android.os.ConditionVariable; | 7 import android.os.ConditionVariable; |
| 8 import android.test.suitebuilder.annotation.SmallTest; | 8 import android.test.suitebuilder.annotation.SmallTest; |
| 9 | 9 |
| 10 import org.chromium.base.test.util.DisabledTest; | 10 import org.chromium.base.test.util.DisabledTest; |
| (...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 239 @OnlyRunNativeCronet | 239 @OnlyRunNativeCronet |
| 240 public void testSimplePostWithFlush() throws Exception { | 240 public void testSimplePostWithFlush() throws Exception { |
| 241 String url = Http2TestServer.getEchoStreamUrl(); | 241 String url = Http2TestServer.getEchoStreamUrl(); |
| 242 TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCa
llback(); | 242 TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCa
llback(); |
| 243 callback.addWriteData("Test String".getBytes(), false); | 243 callback.addWriteData("Test String".getBytes(), false); |
| 244 callback.addWriteData("1234567890".getBytes(), false); | 244 callback.addWriteData("1234567890".getBytes(), false); |
| 245 callback.addWriteData("woot!".getBytes(), true); | 245 callback.addWriteData("woot!".getBytes(), true); |
| 246 BidirectionalStream stream = new BidirectionalStream | 246 BidirectionalStream stream = new BidirectionalStream |
| 247 .Builder(url, callback, callback.ge
tExecutor(), | 247 .Builder(url, callback, callback.ge
tExecutor(), |
| 248 mTestFramework.mCronetEngin
e) | 248 mTestFramework.mCronetEngin
e) |
| 249 .disableAutoFlush(true) | |
| 250 .addHeader("foo", "bar") | 249 .addHeader("foo", "bar") |
| 251 .addHeader("empty", "") | 250 .addHeader("empty", "") |
| 252 .addHeader("Content-Type", "zebra") | 251 .addHeader("Content-Type", "zebra") |
| 253 .build(); | 252 .build(); |
| 254 // Flush before stream is started should not crash. | 253 // Flush before stream is started should not crash. |
| 255 stream.flush(); | 254 stream.flush(); |
| 256 | 255 |
| 257 stream.start(); | 256 stream.start(); |
| 258 callback.blockForDone(); | 257 callback.blockForDone(); |
| 259 assertTrue(stream.isDone()); | 258 assertTrue(stream.isDone()); |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 318 }; | 317 }; |
| 319 callback.addWriteData("1".getBytes(), false); | 318 callback.addWriteData("1".getBytes(), false); |
| 320 callback.addWriteData("2".getBytes(), false); | 319 callback.addWriteData("2".getBytes(), false); |
| 321 callback.addWriteData("3".getBytes(), true); | 320 callback.addWriteData("3".getBytes(), true); |
| 322 callback.addWriteData("4".getBytes(), false); | 321 callback.addWriteData("4".getBytes(), false); |
| 323 callback.addWriteData("5".getBytes(), true); | 322 callback.addWriteData("5".getBytes(), true); |
| 324 callback.addWriteData("6".getBytes(), false); | 323 callback.addWriteData("6".getBytes(), false); |
| 325 CronetBidirectionalStream stream = (CronetBidirectionalStream) new Bidir
ectionalStream | 324 CronetBidirectionalStream stream = (CronetBidirectionalStream) new Bidir
ectionalStream |
| 326 .Builder(url, callback, callb
ack.getExecutor(), | 325 .Builder(url, callback, callb
ack.getExecutor(), |
| 327 mTestFramework.mCrone
tEngine) | 326 mTestFramework.mCrone
tEngine) |
| 328 .disableAutoFlush(true) | |
| 329 .addHeader("foo", "bar") | 327 .addHeader("foo", "bar") |
| 330 .addHeader("empty", "") | 328 .addHeader("empty", "") |
| 331 .addHeader("Content-Type", "z
ebra") | 329 .addHeader("Content-Type", "z
ebra") |
| 332 .build(); | 330 .build(); |
| 333 callback.setAutoAdvance(false); | 331 callback.setAutoAdvance(false); |
| 334 stream.start(); | 332 stream.start(); |
| 335 callback.waitForNextWriteStep(); // onStreamReady | 333 callback.waitForNextWriteStep(); // onStreamReady |
| 336 | 334 |
| 337 assertEquals(0, stream.getPendingDataForTesting().size()); | 335 assertEquals(0, stream.getPendingDataForTesting().size()); |
| 338 assertEquals(0, stream.getFlushDataForTesting().size()); | 336 assertEquals(0, stream.getFlushDataForTesting().size()); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 379 stream.write(ByteBuffer.wrap("dummy".getBytes()), true); | 377 stream.write(ByteBuffer.wrap("dummy".getBytes()), true); |
| 380 } catch (IllegalArgumentException e) { | 378 } catch (IllegalArgumentException e) { |
| 381 // Expected. | 379 // Expected. |
| 382 } | 380 } |
| 383 } | 381 } |
| 384 }; | 382 }; |
| 385 BidirectionalStream stream = new BidirectionalStream | 383 BidirectionalStream stream = new BidirectionalStream |
| 386 .Builder(url, callback, callbac
k.getExecutor(), | 384 .Builder(url, callback, callbac
k.getExecutor(), |
| 387 mTestFramework.mCronetE
ngine) | 385 mTestFramework.mCronetE
ngine) |
| 388 .setHttpMethod("GET") | 386 .setHttpMethod("GET") |
| 389 .disableAutoFlush(true) | |
| 390 .delayRequestHeadersUntilFirstF
lush(i == 0) | 387 .delayRequestHeadersUntilFirstF
lush(i == 0) |
| 391 .addHeader("foo", "bar") | 388 .addHeader("foo", "bar") |
| 392 .addHeader("empty", "") | 389 .addHeader("empty", "") |
| 393 .build(); | 390 .build(); |
| 394 // Flush before stream is started should not crash. | 391 // Flush before stream is started should not crash. |
| 395 stream.flush(); | 392 stream.flush(); |
| 396 | 393 |
| 397 stream.start(); | 394 stream.start(); |
| 398 callback.blockForDone(); | 395 callback.blockForDone(); |
| 399 assertTrue(stream.isDone()); | 396 assertTrue(stream.isDone()); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 414 @OnlyRunNativeCronet | 411 @OnlyRunNativeCronet |
| 415 public void testSimplePostWithFlushAfterOneWrite() throws Exception { | 412 public void testSimplePostWithFlushAfterOneWrite() throws Exception { |
| 416 // TODO(xunjieli): Use ParameterizedTest instead of the loop. | 413 // TODO(xunjieli): Use ParameterizedTest instead of the loop. |
| 417 for (int i = 0; i < 2; i++) { | 414 for (int i = 0; i < 2; i++) { |
| 418 String url = Http2TestServer.getEchoStreamUrl(); | 415 String url = Http2TestServer.getEchoStreamUrl(); |
| 419 TestBidirectionalStreamCallback callback = new TestBidirectionalStre
amCallback(); | 416 TestBidirectionalStreamCallback callback = new TestBidirectionalStre
amCallback(); |
| 420 callback.addWriteData("Test String".getBytes(), true); | 417 callback.addWriteData("Test String".getBytes(), true); |
| 421 BidirectionalStream stream = new BidirectionalStream | 418 BidirectionalStream stream = new BidirectionalStream |
| 422 .Builder(url, callback, callbac
k.getExecutor(), | 419 .Builder(url, callback, callbac
k.getExecutor(), |
| 423 mTestFramework.mCronetE
ngine) | 420 mTestFramework.mCronetE
ngine) |
| 424 .disableAutoFlush(true) | |
| 425 .delayRequestHeadersUntilFirstF
lush(i == 0) | 421 .delayRequestHeadersUntilFirstF
lush(i == 0) |
| 426 .addHeader("foo", "bar") | 422 .addHeader("foo", "bar") |
| 427 .addHeader("empty", "") | 423 .addHeader("empty", "") |
| 428 .addHeader("Content-Type", "zeb
ra") | 424 .addHeader("Content-Type", "zeb
ra") |
| 429 .build(); | 425 .build(); |
| 430 stream.start(); | 426 stream.start(); |
| 431 callback.blockForDone(); | 427 callback.blockForDone(); |
| 432 assertTrue(stream.isDone()); | 428 assertTrue(stream.isDone()); |
| 433 | 429 |
| 434 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 430 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 450 TestBidirectionalStreamCallback callback = new TestBidirectionalStre
amCallback(); | 446 TestBidirectionalStreamCallback callback = new TestBidirectionalStre
amCallback(); |
| 451 callback.addWriteData("Test String".getBytes(), false); | 447 callback.addWriteData("Test String".getBytes(), false); |
| 452 callback.addWriteData("1234567890".getBytes(), false); | 448 callback.addWriteData("1234567890".getBytes(), false); |
| 453 callback.addWriteData("woot!".getBytes(), true); | 449 callback.addWriteData("woot!".getBytes(), true); |
| 454 callback.addWriteData("Test String".getBytes(), false); | 450 callback.addWriteData("Test String".getBytes(), false); |
| 455 callback.addWriteData("1234567890".getBytes(), false); | 451 callback.addWriteData("1234567890".getBytes(), false); |
| 456 callback.addWriteData("woot!".getBytes(), true); | 452 callback.addWriteData("woot!".getBytes(), true); |
| 457 BidirectionalStream stream = new BidirectionalStream | 453 BidirectionalStream stream = new BidirectionalStream |
| 458 .Builder(url, callback, callbac
k.getExecutor(), | 454 .Builder(url, callback, callbac
k.getExecutor(), |
| 459 mTestFramework.mCronetE
ngine) | 455 mTestFramework.mCronetE
ngine) |
| 460 .disableAutoFlush(true) | |
| 461 .delayRequestHeadersUntilFirstF
lush(i == 0) | 456 .delayRequestHeadersUntilFirstF
lush(i == 0) |
| 462 .addHeader("foo", "bar") | 457 .addHeader("foo", "bar") |
| 463 .addHeader("empty", "") | 458 .addHeader("empty", "") |
| 464 .addHeader("Content-Type", "zeb
ra") | 459 .addHeader("Content-Type", "zeb
ra") |
| 465 .build(); | 460 .build(); |
| 466 stream.start(); | 461 stream.start(); |
| 467 callback.blockForDone(); | 462 callback.blockForDone(); |
| 468 assertTrue(stream.isDone()); | 463 assertTrue(stream.isDone()); |
| 469 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 464 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
| 470 assertEquals("Test String1234567890woot!Test String1234567890woot!", | 465 assertEquals("Test String1234567890woot!Test String1234567890woot!", |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 533 }; | 528 }; |
| 534 callback.addWriteData("Test String".getBytes(), false); | 529 callback.addWriteData("Test String".getBytes(), false); |
| 535 callback.addWriteData("1234567890".getBytes(), false); | 530 callback.addWriteData("1234567890".getBytes(), false); |
| 536 callback.addWriteData("woot!".getBytes(), true); | 531 callback.addWriteData("woot!".getBytes(), true); |
| 537 callback.addWriteData("Test String".getBytes(), false); | 532 callback.addWriteData("Test String".getBytes(), false); |
| 538 callback.addWriteData("1234567890".getBytes(), false); | 533 callback.addWriteData("1234567890".getBytes(), false); |
| 539 callback.addWriteData("woot!".getBytes(), true); | 534 callback.addWriteData("woot!".getBytes(), true); |
| 540 BidirectionalStream stream = new BidirectionalStream | 535 BidirectionalStream stream = new BidirectionalStream |
| 541 .Builder(url, callback, callback.ge
tExecutor(), | 536 .Builder(url, callback, callback.ge
tExecutor(), |
| 542 mTestFramework.mCronetEngin
e) | 537 mTestFramework.mCronetEngin
e) |
| 543 .disableAutoFlush(true) | |
| 544 .addHeader("foo", "bar") | 538 .addHeader("foo", "bar") |
| 545 .addHeader("empty", "") | 539 .addHeader("empty", "") |
| 546 .addHeader("Content-Type", "zebra") | 540 .addHeader("Content-Type", "zebra") |
| 547 .build(); | 541 .build(); |
| 548 stream.start(); | 542 stream.start(); |
| 549 callback.blockForDone(); | 543 callback.blockForDone(); |
| 550 assertTrue(stream.isDone()); | 544 assertTrue(stream.isDone()); |
| 551 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 545 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
| 552 assertEquals( | 546 assertEquals( |
| 553 "Test String1234567890woot!Test String1234567890woot!", callback
.mResponseAsString); | 547 "Test String1234567890woot!Test String1234567890woot!", callback
.mResponseAsString); |
| (...skipping 812 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1366 private static String bufferContentsToString(ByteBuffer byteBuffer, int star
t, int end) { | 1360 private static String bufferContentsToString(ByteBuffer byteBuffer, int star
t, int end) { |
| 1367 // Use a duplicate to avoid modifying byteBuffer. | 1361 // Use a duplicate to avoid modifying byteBuffer. |
| 1368 ByteBuffer duplicate = byteBuffer.duplicate(); | 1362 ByteBuffer duplicate = byteBuffer.duplicate(); |
| 1369 duplicate.position(start); | 1363 duplicate.position(start); |
| 1370 duplicate.limit(end); | 1364 duplicate.limit(end); |
| 1371 byte[] contents = new byte[duplicate.remaining()]; | 1365 byte[] contents = new byte[duplicate.remaining()]; |
| 1372 duplicate.get(contents); | 1366 duplicate.get(contents); |
| 1373 return new String(contents); | 1367 return new String(contents); |
| 1374 } | 1368 } |
| 1375 } | 1369 } |
| OLD | NEW |