Index: components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamQuicTest.java |
diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamQuicTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamQuicTest.java |
index a6591ef3dd430588e5249c8d55a42f566d3d9ecf..2bd0cd67872fbdd5573247947bd554836d703963 100644 |
--- a/components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamQuicTest.java |
+++ b/components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamQuicTest.java |
@@ -77,6 +77,95 @@ public class BidirectionalStreamQuicTest extends CronetTestBase { |
@SmallTest |
@Feature({"Cronet"}) |
@OnlyRunNativeCronet |
+ public void testSimplePost() throws Exception { |
+ setUp(QuicBidirectionalStreams.ENABLED); |
+ String path = "/simple.txt"; |
+ String quicURL = QuicTestServer.getServerURL() + path; |
+ TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCallback(); |
+ // Although we have no way to verify data sent at this point, this test |
+ // can make sure that onWriteCompleted is invoked appropriately. |
+ callback.addWriteData("Test String".getBytes()); |
+ callback.addWriteData("1234567890".getBytes()); |
+ callback.addWriteData("woot!".getBytes()); |
+ BidirectionalStream stream = new BidirectionalStream |
+ .Builder(quicURL, callback, callback.getExecutor(), |
+ mTestFramework.mCronetEngine) |
+ .addHeader("foo", "bar") |
+ .addHeader("empty", "") |
+ .addHeader("Content-Type", "zebra") |
+ .build(); |
+ stream.start(); |
+ callback.blockForDone(); |
+ assertTrue(stream.isDone()); |
+ assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
+ assertEquals("This is a simple text file served by QUIC.\n", callback.mResponseAsString); |
+ assertEquals("quic/1+spdy/3", callback.mResponseInfo.getNegotiatedProtocol()); |
+ } |
+ |
+ @SmallTest |
+ @Feature({"Cronet"}) |
+ @OnlyRunNativeCronet |
+ public void testSimplePostWithFlush() throws Exception { |
+ setUp(QuicBidirectionalStreams.ENABLED); |
+ String path = "/simple.txt"; |
+ String quicURL = QuicTestServer.getServerURL() + path; |
+ TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCallback(); |
+ // Although we have no way to verify data sent at this point, this test |
+ // can make sure that onWriteCompleted is invoked appropriately. |
+ callback.addWriteData("Test String".getBytes(), false); |
+ callback.addWriteData("1234567890".getBytes(), false); |
+ callback.addWriteData("woot!".getBytes(), true); |
+ BidirectionalStream stream = new BidirectionalStream |
+ .Builder(quicURL, 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("This is a simple text file served by QUIC.\n", callback.mResponseAsString); |
+ assertEquals("quic/1+spdy/3", callback.mResponseInfo.getNegotiatedProtocol()); |
+ } |
+ |
+ @SmallTest |
+ @Feature({"Cronet"}) |
+ @OnlyRunNativeCronet |
+ public void testSimplePostWithFlushTwice() throws Exception { |
+ setUp(QuicBidirectionalStreams.ENABLED); |
+ String path = "/simple.txt"; |
+ String quicURL = QuicTestServer.getServerURL() + path; |
+ TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCallback(); |
+ // Although we have no way to verify data sent at this point, this test |
+ // can make sure that onWriteCompleted is invoked appropriately. |
+ 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(quicURL, 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("This is a simple text file served by QUIC.\n", callback.mResponseAsString); |
+ assertEquals("quic/1+spdy/3", callback.mResponseInfo.getNegotiatedProtocol()); |
+ } |
+ |
+ @SmallTest |
+ @Feature({"Cronet"}) |
+ @OnlyRunNativeCronet |
public void testQuicBidirectionalStreamDisabled() throws Exception { |
setUp(QuicBidirectionalStreams.DISABLED); |
String path = "/simple.txt"; |
@@ -109,10 +198,10 @@ public class BidirectionalStreamQuicTest extends CronetTestBase { |
TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCallback() { |
@Override |
- public void onWriteCompleted( |
- BidirectionalStream stream, UrlResponseInfo info, ByteBuffer buffer) { |
+ public void onWriteCompleted(BidirectionalStream stream, UrlResponseInfo info, |
+ ByteBuffer buffer, boolean endOfStream) { |
// Super class will write the next piece of data. |
- super.onWriteCompleted(stream, info, buffer); |
+ super.onWriteCompleted(stream, info, buffer, endOfStream); |
// Shut down the server, and the stream should error out. |
// The second call to shutdownQuicTestServer is no-op. |
QuicTestServer.shutdownQuicTestServer(); |