| Index: components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetUrlTest.java
|
| diff --git a/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetUrlTest.java b/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetUrlTest.java
|
| index ddf3df18dea26263919fe27dca4ffa2ca70558ec..e4b64f6736c42aabc1472b955b16160a8a7b4ce9 100644
|
| --- a/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetUrlTest.java
|
| +++ b/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetUrlTest.java
|
| @@ -9,6 +9,7 @@ import android.os.ConditionVariable;
|
| import android.test.suitebuilder.annotation.SmallTest;
|
|
|
| import org.chromium.base.test.util.Feature;
|
| +import org.chromium.net.ChromiumUrlRequest;
|
| import org.chromium.net.HttpUrlRequest;
|
| import org.chromium.net.HttpUrlRequestFactoryConfig;
|
| import org.chromium.net.HttpUrlRequestListener;
|
| @@ -94,27 +95,44 @@ public class CronetUrlTest extends CronetTestBase {
|
| assertTrue(!file.exists());
|
| }
|
|
|
| - class BadHttpUrlRequestListener implements HttpUrlRequestListener {
|
| - static final String THROW_TAG = "BadListener";
|
| + class SimpleHttpUrlRequestListener implements HttpUrlRequestListener {
|
| ConditionVariable mComplete = new ConditionVariable();
|
| + public String negotiatedProtocol;
|
| + public int httpStatusCode = 0;
|
|
|
| - public BadHttpUrlRequestListener() {
|
| + public SimpleHttpUrlRequestListener() {
|
| }
|
|
|
| @Override
|
| public void onResponseStarted(HttpUrlRequest request) {
|
| - throw new NullPointerException(THROW_TAG);
|
| + negotiatedProtocol = request.getNegotiatedProtocol();
|
| + httpStatusCode = request.getHttpStatusCode();
|
| }
|
|
|
| @Override
|
| public void onRequestComplete(HttpUrlRequest request) {
|
| mComplete.open();
|
| - throw new NullPointerException(THROW_TAG);
|
| }
|
|
|
| public void blockForComplete() {
|
| mComplete.block();
|
| }
|
| +
|
| + public void resetComplete() {
|
| + mComplete.close();
|
| + }
|
| + }
|
| +
|
| + class BadHttpUrlRequestListener extends SimpleHttpUrlRequestListener {
|
| + static final String THROW_TAG = "BadListener";
|
| +
|
| + public BadHttpUrlRequestListener() {
|
| + }
|
| +
|
| + @Override
|
| + public void onResponseStarted(HttpUrlRequest request) {
|
| + throw new NullPointerException(THROW_TAG);
|
| + }
|
| }
|
|
|
| @SmallTest
|
| @@ -167,6 +185,52 @@ public class CronetUrlTest extends CronetTestBase {
|
|
|
| @SmallTest
|
| @Feature({"Cronet"})
|
| + public void disabled_testQuicLoadUrl() throws Exception {
|
| + HttpUrlRequestFactoryConfig config = new HttpUrlRequestFactoryConfig();
|
| + // TODO(mef): Test Quic end-to-end using local QUIC server.
|
| + String quicURL = "https://www.google.com:443";
|
| + String quicNegotiatedProtocol = "quic/1+spdy/3";
|
| + config.enableQUIC(true);
|
| + config.addQuicHint("www.google.com", 443, 443);
|
| +
|
| + String[] commandLineArgs = {
|
| + CronetTestActivity.CONFIG_KEY, config.toString() };
|
| + CronetTestActivity activity =
|
| + launchCronetTestAppWithUrlAndCommandLineArgs(quicURL,
|
| + commandLineArgs);
|
| +
|
| + // Make sure the activity was created as expected.
|
| + assertNotNull(activity);
|
| + waitForActiveShellToBeDoneLoading();
|
| +
|
| + HashMap<String, String> headers = new HashMap<String, String>();
|
| + SimpleHttpUrlRequestListener listener =
|
| + new SimpleHttpUrlRequestListener();
|
| +
|
| + // Try several times as first request may not use QUIC.
|
| + // TODO(mef): Remove loop after adding http server properties manager.
|
| + for (int i = 0; i < 10; ++i) {
|
| + ChromiumUrlRequest request =
|
| + activity.mChromiumRequestFactory.createRequest(
|
| + quicURL,
|
| + HttpUrlRequest.REQUEST_PRIORITY_MEDIUM,
|
| + headers,
|
| + listener);
|
| + request.start();
|
| + listener.blockForComplete();
|
| + assertEquals(200, listener.httpStatusCode);
|
| + if (listener.negotiatedProtocol.equals(quicNegotiatedProtocol))
|
| + break;
|
| +
|
| + Thread.sleep(1000);
|
| + listener.resetComplete();
|
| + }
|
| +
|
| + assertEquals(quicNegotiatedProtocol, listener.negotiatedProtocol);
|
| + }
|
| +
|
| + @SmallTest
|
| + @Feature({"Cronet"})
|
| public void testLegacyLoadUrl() throws Exception {
|
| HttpUrlRequestFactoryConfig config = new HttpUrlRequestFactoryConfig();
|
| config.enableLegacyMode(true);
|
|
|