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

Side by Side 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: Address Ryan's comments 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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.test.suitebuilder.annotation.SmallTest; 7 import android.test.suitebuilder.annotation.SmallTest;
8 8
9 import org.chromium.base.test.util.Feature; 9 import org.chromium.base.test.util.Feature;
10 import org.chromium.net.CronetTestBase.OnlyRunNativeCronet; 10 import org.chromium.net.CronetTestBase.OnlyRunNativeCronet;
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 callback.blockForDone(); 68 callback.blockForDone();
69 assertTrue(stream.isDone()); 69 assertTrue(stream.isDone());
70 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); 70 assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
71 assertEquals("This is a simple text file served by QUIC.\n", callback.mR esponseAsString); 71 assertEquals("This is a simple text file served by QUIC.\n", callback.mR esponseAsString);
72 assertEquals("quic/1+spdy/3", callback.mResponseInfo.getNegotiatedProtoc ol()); 72 assertEquals("quic/1+spdy/3", callback.mResponseInfo.getNegotiatedProtoc ol());
73 } 73 }
74 74
75 @SmallTest 75 @SmallTest
76 @Feature({"Cronet"}) 76 @Feature({"Cronet"})
77 @OnlyRunNativeCronet 77 @OnlyRunNativeCronet
78 public void testSimplePost() throws Exception {
79 setUp(QuicBidirectionalStreams.ENABLED);
80 String path = "/simple.txt";
81 String quicURL = QuicTestServer.getServerURL() + path;
82 TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCa llback();
83 // Although we have no way to verify data sent at this point, this test
84 // can make sure that onWriteCompleted is invoked appropriately.
85 callback.addWriteData("Test String".getBytes());
86 callback.addWriteData("1234567890".getBytes());
87 callback.addWriteData("woot!".getBytes());
88 BidirectionalStream stream = new BidirectionalStream
89 .Builder(quicURL, callback, callbac k.getExecutor(),
90 mTestFramework.mCronetEngin e)
91 .addHeader("foo", "bar")
92 .addHeader("empty", "")
93 .addHeader("Content-Type", "zebra")
94 .build();
95 stream.start();
96 callback.blockForDone();
97 assertTrue(stream.isDone());
98 assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
99 assertEquals("This is a simple text file served by QUIC.\n", callback.mR esponseAsString);
100 assertEquals("quic/1+spdy/3", callback.mResponseInfo.getNegotiatedProtoc ol());
101 }
102
103 @SmallTest
104 @Feature({"Cronet"})
105 @OnlyRunNativeCronet
106 public void testSimplePostWithFlush() throws Exception {
107 setUp(QuicBidirectionalStreams.ENABLED);
108 String path = "/simple.txt";
109 String quicURL = QuicTestServer.getServerURL() + path;
110 TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCa llback();
111 // Although we have no way to verify data sent at this point, this test
112 // can make sure that onWriteCompleted is invoked appropriately.
113 callback.addWriteData("Test String".getBytes(), false);
114 callback.addWriteData("1234567890".getBytes(), false);
115 callback.addWriteData("woot!".getBytes(), true);
116 BidirectionalStream stream = new BidirectionalStream
117 .Builder(quicURL, callback, callbac k.getExecutor(),
118 mTestFramework.mCronetEngin e)
119 .disableAutoFlush(true)
120 .addHeader("foo", "bar")
121 .addHeader("empty", "")
122 .addHeader("Content-Type", "zebra")
123 .build();
124 stream.start();
125 callback.blockForDone();
126 assertTrue(stream.isDone());
127 assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
128 assertEquals("This is a simple text file served by QUIC.\n", callback.mR esponseAsString);
129 assertEquals("quic/1+spdy/3", callback.mResponseInfo.getNegotiatedProtoc ol());
130 }
131
132 @SmallTest
133 @Feature({"Cronet"})
134 @OnlyRunNativeCronet
135 public void testSimplePostWithFlushTwice() throws Exception {
136 setUp(QuicBidirectionalStreams.ENABLED);
137 String path = "/simple.txt";
138 String quicURL = QuicTestServer.getServerURL() + path;
139 TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCa llback();
140 // Although we have no way to verify data sent at this point, this test
141 // can make sure that onWriteCompleted is invoked appropriately.
142 callback.addWriteData("Test String".getBytes(), false);
143 callback.addWriteData("1234567890".getBytes(), false);
144 callback.addWriteData("woot!".getBytes(), true);
145 callback.addWriteData("Test String".getBytes(), false);
146 callback.addWriteData("1234567890".getBytes(), false);
147 callback.addWriteData("woot!".getBytes(), true);
148 BidirectionalStream stream = new BidirectionalStream
149 .Builder(quicURL, callback, callbac k.getExecutor(),
150 mTestFramework.mCronetEngin e)
151 .disableAutoFlush(true)
152 .addHeader("foo", "bar")
153 .addHeader("empty", "")
154 .addHeader("Content-Type", "zebra")
155 .build();
156 stream.start();
157 callback.blockForDone();
158 assertTrue(stream.isDone());
159 assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
160 assertEquals("This is a simple text file served by QUIC.\n", callback.mR esponseAsString);
161 assertEquals("quic/1+spdy/3", callback.mResponseInfo.getNegotiatedProtoc ol());
162 }
163
164 @SmallTest
165 @Feature({"Cronet"})
166 @OnlyRunNativeCronet
78 public void testQuicBidirectionalStreamDisabled() throws Exception { 167 public void testQuicBidirectionalStreamDisabled() throws Exception {
79 setUp(QuicBidirectionalStreams.DISABLED); 168 setUp(QuicBidirectionalStreams.DISABLED);
80 String path = "/simple.txt"; 169 String path = "/simple.txt";
81 String quicURL = QuicTestServer.getServerURL() + path; 170 String quicURL = QuicTestServer.getServerURL() + path;
82 171
83 TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCa llback(); 172 TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCa llback();
84 BidirectionalStream stream = new BidirectionalStream 173 BidirectionalStream stream = new BidirectionalStream
85 .Builder(quicURL, callback, callbac k.getExecutor(), 174 .Builder(quicURL, callback, callbac k.getExecutor(),
86 mTestFramework.mCronetEngin e) 175 mTestFramework.mCronetEngin e)
87 .setHttpMethod("GET") 176 .setHttpMethod("GET")
88 .build(); 177 .build();
89 stream.start(); 178 stream.start();
90 callback.blockForDone(); 179 callback.blockForDone();
91 assertTrue(stream.isDone()); 180 assertTrue(stream.isDone());
92 assertTrue(callback.mOnErrorCalled); 181 assertTrue(callback.mOnErrorCalled);
93 assertNull(callback.mResponseInfo); 182 assertNull(callback.mResponseInfo);
94 } 183 }
95 } 184 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698