Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(879)

Unified Diff: components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamQuicTest.java

Issue 1856073002: Coalesce small buffers in net::BidirectionalStream (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix javadoc Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();

Powered by Google App Engine
This is Rietveld 408576698