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 static org.chromium.base.CollectionUtil.newHashSet; | 7 import static org.chromium.base.CollectionUtil.newHashSet; |
8 | 8 |
9 import android.os.ConditionVariable; | 9 import android.os.ConditionVariable; |
10 import android.test.suitebuilder.annotation.SmallTest; | 10 import android.test.suitebuilder.annotation.SmallTest; |
11 | 11 |
12 import org.chromium.base.test.util.DisabledTest; | 12 import org.chromium.base.test.util.DisabledTest; |
13 import org.chromium.base.test.util.Feature; | 13 import org.chromium.base.test.util.Feature; |
14 import org.chromium.net.CronetTestBase.OnlyRunNativeCronet; | 14 import org.chromium.net.CronetTestBase.OnlyRunNativeCronet; |
15 import org.chromium.net.MetricsTestUtil.TestExecutor; | |
16 import org.chromium.net.MetricsTestUtil.TestRequestFinishedListener; | 15 import org.chromium.net.MetricsTestUtil.TestRequestFinishedListener; |
17 import org.chromium.net.TestBidirectionalStreamCallback.FailureType; | 16 import org.chromium.net.TestBidirectionalStreamCallback.FailureType; |
18 import org.chromium.net.TestBidirectionalStreamCallback.ResponseStep; | 17 import org.chromium.net.TestBidirectionalStreamCallback.ResponseStep; |
19 import org.chromium.net.impl.CronetBidirectionalStream; | 18 import org.chromium.net.impl.CronetBidirectionalStream; |
20 | 19 |
21 import java.nio.ByteBuffer; | 20 import java.nio.ByteBuffer; |
22 import java.util.AbstractMap; | 21 import java.util.AbstractMap; |
23 import java.util.ArrayList; | 22 import java.util.ArrayList; |
24 import java.util.Arrays; | 23 import java.util.Arrays; |
25 import java.util.HashSet; | 24 import java.util.HashSet; |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
220 | 219 |
221 @SmallTest | 220 @SmallTest |
222 @Feature({"Cronet"}) | 221 @Feature({"Cronet"}) |
223 @OnlyRunNativeCronet | 222 @OnlyRunNativeCronet |
224 public void testSimplePost() throws Exception { | 223 public void testSimplePost() throws Exception { |
225 String url = Http2TestServer.getEchoStreamUrl(); | 224 String url = Http2TestServer.getEchoStreamUrl(); |
226 TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCa llback(); | 225 TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCa llback(); |
227 callback.addWriteData("Test String".getBytes()); | 226 callback.addWriteData("Test String".getBytes()); |
228 callback.addWriteData("1234567890".getBytes()); | 227 callback.addWriteData("1234567890".getBytes()); |
229 callback.addWriteData("woot!".getBytes()); | 228 callback.addWriteData("woot!".getBytes()); |
230 TestExecutor testExecutor = new TestExecutor(); | 229 TestRequestFinishedListener requestFinishedListener = new TestRequestFin ishedListener(1); |
mgersh
2016/10/05 19:36:47
I think this is the only place that does new TestR
xunjieli
2016/10/06 03:51:47
Done.
| |
231 TestRequestFinishedListener requestFinishedListener = | |
232 new TestRequestFinishedListener(testExecutor); | |
233 mTestFramework.mCronetEngine.addRequestFinishedListener(requestFinishedL istener); | 230 mTestFramework.mCronetEngine.addRequestFinishedListener(requestFinishedL istener); |
234 // Create stream. | 231 // Create stream. |
235 BidirectionalStream stream = new BidirectionalStream | 232 BidirectionalStream stream = new BidirectionalStream |
236 .Builder(url, callback, callback.ge tExecutor(), | 233 .Builder(url, callback, callback.ge tExecutor(), |
237 mTestFramework.mCronetEngin e) | 234 mTestFramework.mCronetEngin e) |
238 .addHeader("foo", "bar") | 235 .addHeader("foo", "bar") |
239 .addHeader("empty", "") | 236 .addHeader("empty", "") |
240 .addHeader("Content-Type", "zebra") | 237 .addHeader("Content-Type", "zebra") |
241 .addRequestAnnotation(this) | 238 .addRequestAnnotation(this) |
242 .addRequestAnnotation("request anno tation") | 239 .addRequestAnnotation("request anno tation") |
243 .build(); | 240 .build(); |
244 stream.start(); | 241 stream.start(); |
245 callback.blockForDone(); | 242 callback.blockForDone(); |
246 testExecutor.runAllTasks(); | |
247 assertTrue(stream.isDone()); | 243 assertTrue(stream.isDone()); |
244 requestFinishedListener.blockUntilDone(); | |
248 RequestFinishedInfo finishedInfo = requestFinishedListener.getRequestInf o(); | 245 RequestFinishedInfo finishedInfo = requestFinishedListener.getRequestInf o(); |
249 assertNotNull("RequestFinishedInfo.Listener must be called", finishedInf o); | 246 assertNotNull("RequestFinishedInfo.Listener must be called", finishedInf o); |
250 assertEquals(url, finishedInfo.getUrl()); | 247 assertEquals(url, finishedInfo.getUrl()); |
251 assertEquals(newHashSet("request annotation", this), | 248 assertEquals(newHashSet("request annotation", this), |
252 new HashSet<Object>(finishedInfo.getAnnotations())); | 249 new HashSet<Object>(finishedInfo.getAnnotations())); |
253 assertNotNull(finishedInfo.getResponseInfo()); | 250 assertNotNull(finishedInfo.getResponseInfo()); |
254 // TODO(xunjieli): Check other fields once metrics support is in crbug.c om/648346. | 251 // TODO(xunjieli): Check other fields once metrics support is in crbug.c om/648346. |
mgersh
2016/10/05 19:36:47
Now would be a good time to add tests for the timi
xunjieli
2016/10/06 03:51:47
Done.
| |
255 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 252 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
256 assertEquals("Test String1234567890woot!", callback.mResponseAsString); | 253 assertEquals("Test String1234567890woot!", callback.mResponseAsString); |
257 assertEquals("bar", callback.mResponseInfo.getAllHeaders().get("echo-foo ").get(0)); | 254 assertEquals("bar", callback.mResponseInfo.getAllHeaders().get("echo-foo ").get(0)); |
258 assertEquals("", callback.mResponseInfo.getAllHeaders().get("echo-empty" ).get(0)); | 255 assertEquals("", callback.mResponseInfo.getAllHeaders().get("echo-empty" ).get(0)); |
259 assertEquals( | 256 assertEquals( |
260 "zebra", callback.mResponseInfo.getAllHeaders().get("echo-conten t-type").get(0)); | 257 "zebra", callback.mResponseInfo.getAllHeaders().get("echo-conten t-type").get(0)); |
261 } | 258 } |
262 | 259 |
263 @SmallTest | 260 @SmallTest |
264 @Feature({"Cronet"}) | 261 @Feature({"Cronet"}) |
(...skipping 1124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1389 private static String bufferContentsToString(ByteBuffer byteBuffer, int star t, int end) { | 1386 private static String bufferContentsToString(ByteBuffer byteBuffer, int star t, int end) { |
1390 // Use a duplicate to avoid modifying byteBuffer. | 1387 // Use a duplicate to avoid modifying byteBuffer. |
1391 ByteBuffer duplicate = byteBuffer.duplicate(); | 1388 ByteBuffer duplicate = byteBuffer.duplicate(); |
1392 duplicate.position(start); | 1389 duplicate.position(start); |
1393 duplicate.limit(end); | 1390 duplicate.limit(end); |
1394 byte[] contents = new byte[duplicate.remaining()]; | 1391 byte[] contents = new byte[duplicate.remaining()]; |
1395 duplicate.get(contents); | 1392 duplicate.get(contents); |
1396 return new String(contents); | 1393 return new String(contents); |
1397 } | 1394 } |
1398 } | 1395 } |
OLD | NEW |