Chromium Code Reviews| Index: components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetUrlRequestTest.java |
| diff --git a/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetUrlRequestTest.java b/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetUrlRequestTest.java |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..51510e5ae3125c2e98744539e7423d99ab485e56 |
| --- /dev/null |
| +++ b/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetUrlRequestTest.java |
| @@ -0,0 +1,97 @@ |
| +// Copyright 2014 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +package org.chromium.cronet_test_apk; |
| + |
| +import android.os.ConditionVariable; |
| + |
| +import android.test.suitebuilder.annotation.SmallTest; |
| + |
| +import org.chromium.base.test.util.Feature; |
| +import org.chromium.net.ExtendedResponseInfo; |
| +import org.chromium.net.ResponseInfo; |
| +import org.chromium.net.UrlRequest; |
| +import org.chromium.net.UrlRequestException; |
| +import org.chromium.net.UrlRequestListener; |
| + |
| +import java.net.URL; |
| +import java.nio.ByteBuffer; |
| +import java.util.concurrent.ExecutorService; |
| +import java.util.concurrent.Executors; |
| + |
| + |
|
mmenke
2014/10/06 18:28:45
nit: Remove extra blank line
mef
2014/10/07 00:45:18
Done.
|
| +/** |
| + * Example test that just starts the cronet sample. |
| + */ |
| +public class CronetUrlRequestTest extends CronetTestBase { |
| + // URL used for base tests. |
| + private static final String URL = "http://127.0.0.1:8000"; |
| + |
| + class SimpleUrlRequestListener implements UrlRequestListener { |
| + ConditionVariable mComplete = new ConditionVariable(); |
| + public String negotiatedProtocol; |
| + public int httpStatusCode = 0; |
| + public int httpResponseDataLength = 0; |
| + |
| + public SimpleUrlRequestListener() { |
| + } |
| + |
| + @Override |
| + public void onRedirect(UrlRequest request, ResponseInfo info, |
| + URL newLocation) { |
| + } |
| + |
| + @Override |
| + public void onResponseStarted(UrlRequest request, ResponseInfo info) { |
| + negotiatedProtocol = info.getNegotiatedProtocol(); |
| + httpStatusCode = info.getHttpStatusCode(); |
| + } |
| + |
| + @Override |
| + public void onDataReceived(UrlRequest request, |
| + ResponseInfo info, |
| + ByteBuffer byteBuffer) { |
| + httpResponseDataLength += byteBuffer.capacity(); |
| + } |
| + |
| + @Override |
| + public void onComplete(UrlRequest request, ExtendedResponseInfo info) { |
| + mComplete.open(); |
| + } |
| + |
| + @Override |
| + public void onError(UrlRequest request, |
| + ResponseInfo info, |
| + UrlRequestException error) { |
| + } |
| + |
| + public void blockForComplete() { |
| + mComplete.block(); |
| + } |
| + |
| + public void resetComplete() { |
| + mComplete.close(); |
| + } |
| + } |
| + |
| + @SmallTest |
| + @Feature({"Cronet"}) |
| + public void testAsync() throws Exception { |
| + CronetTestActivity activity = launchCronetTestAppWithUrl(URL); |
| + |
| + // Make sure the activity was created as expected. |
| + waitForActiveShellToBeDoneLoading(); |
| + |
| + ExecutorService executor = Executors.newFixedThreadPool(4); |
| + SimpleUrlRequestListener listener = new SimpleUrlRequestListener(); |
| + |
| + // Create request. |
| + UrlRequest request = activity.mUrlRequestFactory.createRequest( |
| + URL, listener, executor); |
| + request.start(); |
| + listener.blockForComplete(); |
| + assertEquals(200, listener.httpStatusCode); |
| + assertTrue(listener.httpResponseDataLength != 0); |
| + } |
| +} |