OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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.LargeTest; | 7 import android.test.suitebuilder.annotation.LargeTest; |
8 import android.test.suitebuilder.annotation.SmallTest; | 8 import android.test.suitebuilder.annotation.SmallTest; |
9 | 9 |
10 import org.chromium.base.annotations.SuppressFBWarnings; | 10 import org.chromium.base.annotations.SuppressFBWarnings; |
11 import org.chromium.base.test.util.Feature; | 11 import org.chromium.base.test.util.Feature; |
12 import org.chromium.net.test.FailurePhase; | 12 import org.chromium.net.test.FailurePhase; |
13 | 13 |
14 import java.io.IOException; | 14 import java.io.IOException; |
15 import java.nio.ByteBuffer; | 15 import java.nio.ByteBuffer; |
16 import java.util.HashMap; | 16 import java.util.HashMap; |
17 import java.util.List; | 17 import java.util.List; |
18 import java.util.concurrent.Executors; | 18 import java.util.concurrent.Executors; |
19 | 19 |
20 /** | 20 /** |
21 * Tests making requests using {@link ChromiumUrlRequest}. | 21 * Tests making requests using {@link ChromiumUrlRequest}. |
22 */ | 22 */ |
23 public class ChromiumUrlRequestTest extends CronetTestBase { | 23 public class ChromiumUrlRequestTest extends CronetTestBase { |
24 private CronetTestActivity mActivity; | 24 private CronetTestFramework mTestFramework; |
25 private TestHttpUrlRequestListener mListener; | 25 private TestHttpUrlRequestListener mListener; |
26 private HttpUrlRequest mRequest; | 26 private HttpUrlRequest mRequest; |
27 | 27 |
28 @Override | 28 @Override |
29 protected void setUp() throws Exception { | 29 protected void setUp() throws Exception { |
30 super.setUp(); | 30 super.setUp(); |
31 mActivity = launchCronetTestApp(); | 31 mTestFramework = startCronetTestFramework(); |
32 assertTrue(NativeTestServer.startNativeTestServer( | 32 assertTrue(NativeTestServer.startNativeTestServer(getContext())); |
33 getInstrumentation().getTargetContext())); | |
34 MockUrlRequestJobFactory.setUp(); | 33 MockUrlRequestJobFactory.setUp(); |
35 } | 34 } |
36 | 35 |
37 @Override | 36 @Override |
38 protected void tearDown() throws Exception { | 37 protected void tearDown() throws Exception { |
39 NativeTestServer.shutdownNativeTestServer(); | 38 NativeTestServer.shutdownNativeTestServer(); |
40 super.tearDown(); | 39 super.tearDown(); |
41 } | 40 } |
42 | 41 |
43 // Helper function to create a HttpUrlRequest with the specified url. | 42 // Helper function to create a HttpUrlRequest with the specified url. |
44 private void createRequestAndWaitForComplete( | 43 private void createRequestAndWaitForComplete( |
45 String url, boolean disableRedirects) { | 44 String url, boolean disableRedirects) { |
46 HashMap<String, String> headers = new HashMap<String, String>(); | 45 HashMap<String, String> headers = new HashMap<String, String>(); |
47 mListener = new TestHttpUrlRequestListener(); | 46 mListener = new TestHttpUrlRequestListener(); |
48 mRequest = mActivity.mRequestFactory.createRequest( | 47 mRequest = mTestFramework.mRequestFactory.createRequest( |
49 url, | 48 url, HttpUrlRequest.REQUEST_PRIORITY_MEDIUM, headers, mListener)
; |
50 HttpUrlRequest.REQUEST_PRIORITY_MEDIUM, | |
51 headers, | |
52 mListener); | |
53 if (disableRedirects) { | 49 if (disableRedirects) { |
54 mRequest.disableRedirects(); | 50 mRequest.disableRedirects(); |
55 } | 51 } |
56 mRequest.start(); | 52 mRequest.start(); |
57 mListener.blockForComplete(); | 53 mListener.blockForComplete(); |
58 } | 54 } |
59 | 55 |
60 /** | 56 /** |
61 * Helper method to check that we are not calling methods on the native | 57 * Helper method to check that we are not calling methods on the native |
62 * adapter after it has been destroyed. | 58 * adapter after it has been destroyed. |
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 // WritableByteChannel.close if request is canceled from another | 229 // WritableByteChannel.close if request is canceled from another |
234 // thread. | 230 // thread. |
235 for (int i = 0; i < 100; ++i) { | 231 for (int i = 0; i < 100; ++i) { |
236 HashMap<String, String> headers = new HashMap<String, String>(); | 232 HashMap<String, String> headers = new HashMap<String, String>(); |
237 TestByteChannel channel = new TestByteChannel(); | 233 TestByteChannel channel = new TestByteChannel(); |
238 TestHttpUrlRequestListener listener = | 234 TestHttpUrlRequestListener listener = |
239 new TestHttpUrlRequestListener(); | 235 new TestHttpUrlRequestListener(); |
240 | 236 |
241 // Create request. | 237 // Create request. |
242 final HttpUrlRequest request = | 238 final HttpUrlRequest request = |
243 mActivity.mRequestFactory.createRequest( | 239 mTestFramework.mRequestFactory.createRequest(NativeTestServe
r.getSuccessURL(), |
244 NativeTestServer.getSuccessURL(), | 240 HttpUrlRequest.REQUEST_PRIORITY_LOW, headers, channe
l, listener); |
245 HttpUrlRequest.REQUEST_PRIORITY_LOW, headers, | |
246 channel, listener); | |
247 request.start(); | 241 request.start(); |
248 listener.blockForStart(); | 242 listener.blockForStart(); |
249 Runnable cancelTask = new Runnable() { | 243 Runnable cancelTask = new Runnable() { |
250 public void run() { | 244 public void run() { |
251 request.cancel(); | 245 request.cancel(); |
252 } | 246 } |
253 }; | 247 }; |
254 Executors.newCachedThreadPool().execute(cancelTask); | 248 Executors.newCachedThreadPool().execute(cancelTask); |
255 listener.blockForComplete(); | 249 listener.blockForComplete(); |
256 assertFalse(channel.isOpen()); | 250 assertFalse(channel.isOpen()); |
(...skipping 12 matching lines...) Expand all Loading... |
269 TestByteChannel channel = new TestByteChannel(); | 263 TestByteChannel channel = new TestByteChannel(); |
270 TestHttpUrlRequestListener listener = new TestHttpUrlRequestListener(); | 264 TestHttpUrlRequestListener listener = new TestHttpUrlRequestListener(); |
271 | 265 |
272 String data = "MyBigFunkyData"; | 266 String data = "MyBigFunkyData"; |
273 int dataLength = data.length(); | 267 int dataLength = data.length(); |
274 int repeatCount = 10000; | 268 int repeatCount = 10000; |
275 String mockUrl = MockUrlRequestJobFactory.getMockUrlForData(data, | 269 String mockUrl = MockUrlRequestJobFactory.getMockUrlForData(data, |
276 repeatCount); | 270 repeatCount); |
277 | 271 |
278 // Create request. | 272 // Create request. |
279 final HttpUrlRequest request = | 273 final HttpUrlRequest request = mTestFramework.mRequestFactory.createRequ
est( |
280 mActivity.mRequestFactory.createRequest( | 274 mockUrl, HttpUrlRequest.REQUEST_PRIORITY_LOW, headers, channel,
listener); |
281 mockUrl, | |
282 HttpUrlRequest.REQUEST_PRIORITY_LOW, headers, | |
283 channel, listener); | |
284 // Channel will cancel the request from the network thread during the | 275 // Channel will cancel the request from the network thread during the |
285 // first write. | 276 // first write. |
286 channel.setRequestToCancelOnWrite(request); | 277 channel.setRequestToCancelOnWrite(request); |
287 request.start(); | 278 request.start(); |
288 listener.blockForComplete(); | 279 listener.blockForComplete(); |
289 assertTrue(request.isCanceled()); | 280 assertTrue(request.isCanceled()); |
290 assertFalse(channel.isOpen()); | 281 assertFalse(channel.isOpen()); |
291 // Test that ChromiumUrlRequest caches information which is available | 282 // Test that ChromiumUrlRequest caches information which is available |
292 // after the native request adapter has been destroyed. | 283 // after the native request adapter has been destroyed. |
293 // Since the request is canceled after onResponseStarted, status code | 284 // Since the request is canceled after onResponseStarted, status code |
(...skipping 12 matching lines...) Expand all Loading... |
306 String mockUrl = MockUrlRequestJobFactory.getMockUrlForData(data, | 297 String mockUrl = MockUrlRequestJobFactory.getMockUrlForData(data, |
307 repeatCount); | 298 repeatCount); |
308 createRequestAndWaitForComplete(mockUrl, false); | 299 createRequestAndWaitForComplete(mockUrl, false); |
309 assertEquals(mockUrl, mListener.mUrl); | 300 assertEquals(mockUrl, mListener.mUrl); |
310 for (int i = 0; i < repeatCount; ++i) { | 301 for (int i = 0; i < repeatCount; ++i) { |
311 assertEquals(data, mListener.mResponseAsString.substring( | 302 assertEquals(data, mListener.mResponseAsString.substring( |
312 dataLength * i, dataLength * (i + 1))); | 303 dataLength * i, dataLength * (i + 1))); |
313 } | 304 } |
314 } | 305 } |
315 } | 306 } |
OLD | NEW |