Index: components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamTest.java |
diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamTest.java |
index 74c88ad6e0e026a097139394112a9b434597c8af..2333278f18a8a23f9f4fb38dd28c1e75a243d276 100644 |
--- a/components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamTest.java |
+++ b/components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamTest.java |
@@ -236,6 +236,68 @@ public class BidirectionalStreamTest extends CronetTestBase { |
@SmallTest |
@Feature({"Cronet"}) |
@OnlyRunNativeCronet |
+ public void testSimplePostWithFlush() throws Exception { |
+ String url = Http2TestServer.getEchoStreamUrl(); |
+ TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCallback(); |
+ callback.setHandleFlush(); |
+ callback.addWriteData("Test String".getBytes(), false); |
+ callback.addWriteData("1234567890".getBytes(), false); |
+ callback.addWriteData("woot!".getBytes(), true); |
+ BidirectionalStream stream = new BidirectionalStream |
+ .Builder(url, callback, callback.getExecutor(), |
+ mTestFramework.mCronetEngine) |
+ .disableAutoFlush(true) |
+ .addHeader("foo", "bar") |
+ .addHeader("empty", "") |
+ .addHeader("Content-Type", "zebra") |
+ .build(); |
+ stream.start(); |
+ callback.blockForDone(); |
+ assertTrue(stream.isDone()); |
+ assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
+ assertEquals("Test String1234567890woot!", callback.mResponseAsString); |
+ assertEquals("bar", callback.mResponseInfo.getAllHeaders().get("echo-foo").get(0)); |
+ assertEquals("", callback.mResponseInfo.getAllHeaders().get("echo-empty").get(0)); |
+ assertEquals( |
+ "zebra", callback.mResponseInfo.getAllHeaders().get("echo-content-type").get(0)); |
+ } |
+ |
+ @SmallTest |
+ @Feature({"Cronet"}) |
+ @OnlyRunNativeCronet |
+ public void testSimplePostWithFlushTwice() throws Exception { |
+ String url = Http2TestServer.getEchoStreamUrl(); |
+ TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCallback(); |
+ callback.setHandleFlush(); |
+ callback.addWriteData("Test String".getBytes(), false); |
+ callback.addWriteData("1234567890".getBytes(), false); |
+ callback.addWriteData("woot!".getBytes(), true); |
+ callback.addWriteData("Test String".getBytes(), false); |
+ callback.addWriteData("1234567890".getBytes(), false); |
+ callback.addWriteData("woot!".getBytes(), true); |
+ BidirectionalStream stream = new BidirectionalStream |
+ .Builder(url, callback, callback.getExecutor(), |
+ mTestFramework.mCronetEngine) |
+ .disableAutoFlush(true) |
+ .addHeader("foo", "bar") |
+ .addHeader("empty", "") |
+ .addHeader("Content-Type", "zebra") |
+ .build(); |
+ stream.start(); |
+ callback.blockForDone(); |
+ assertTrue(stream.isDone()); |
+ assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
+ assertEquals( |
+ "Test String1234567890woot!Test String1234567890woot!", callback.mResponseAsString); |
+ assertEquals("bar", callback.mResponseInfo.getAllHeaders().get("echo-foo").get(0)); |
+ assertEquals("", callback.mResponseInfo.getAllHeaders().get("echo-empty").get(0)); |
+ assertEquals( |
+ "zebra", callback.mResponseInfo.getAllHeaders().get("echo-content-type").get(0)); |
+ } |
+ |
+ @SmallTest |
+ @Feature({"Cronet"}) |
+ @OnlyRunNativeCronet |
public void testSimplePut() throws Exception { |
TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCallback(); |
callback.addWriteData("Put This Data!".getBytes()); |
@@ -483,7 +545,7 @@ public class BidirectionalStreamTest extends CronetTestBase { |
String url = Http2TestServer.getEchoStreamUrl(); |
TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCallback() { |
@Override |
- public void onRequestHeadersSent(BidirectionalStream stream) { |
+ public void onStreamReady(BidirectionalStream stream) { |
startNextWrite(stream); |
try { |
// Second write from callback invoked on single-threaded executor throws |
@@ -823,11 +885,11 @@ public class BidirectionalStreamTest extends CronetTestBase { |
callback.blockForDone(); |
// assertEquals(callback.mResponseStep, failureStep); |
assertTrue(stream.isDone()); |
- // Cancellation when request headers are sent does not guarantee that |
+ // Cancellation when stream is ready does not guarantee that |
// mResponseInfo is null because there might be a |
// onResponseHeadersReceived already queued in the executor. |
// See crbug.com/594432. |
- if (failureStep != ResponseStep.ON_REQUEST_HEADERS_SENT) { |
+ if (failureStep != ResponseStep.ON_STREAM_READY) { |
assertNotNull(callback.mResponseInfo); |
} |
assertEquals(expectError, callback.mError != null); |
@@ -842,11 +904,10 @@ public class BidirectionalStreamTest extends CronetTestBase { |
@Feature({"Cronet"}) |
@OnlyRunNativeCronet |
public void testFailures() throws Exception { |
- throwOrCancel(FailureType.CANCEL_SYNC, ResponseStep.ON_REQUEST_HEADERS_SENT, false); |
- throwOrCancel(FailureType.CANCEL_ASYNC, ResponseStep.ON_REQUEST_HEADERS_SENT, false); |
- throwOrCancel(FailureType.CANCEL_ASYNC_WITHOUT_PAUSE, ResponseStep.ON_REQUEST_HEADERS_SENT, |
- false); |
- throwOrCancel(FailureType.THROW_SYNC, ResponseStep.ON_REQUEST_HEADERS_SENT, true); |
+ throwOrCancel(FailureType.CANCEL_SYNC, ResponseStep.ON_STREAM_READY, false); |
+ throwOrCancel(FailureType.CANCEL_ASYNC, ResponseStep.ON_STREAM_READY, false); |
+ throwOrCancel(FailureType.CANCEL_ASYNC_WITHOUT_PAUSE, ResponseStep.ON_STREAM_READY, false); |
+ throwOrCancel(FailureType.THROW_SYNC, ResponseStep.ON_STREAM_READY, true); |
throwOrCancel(FailureType.CANCEL_SYNC, ResponseStep.ON_RESPONSE_STARTED, false); |
throwOrCancel(FailureType.CANCEL_ASYNC, ResponseStep.ON_RESPONSE_STARTED, false); |