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

Unified Diff: components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetUrlTest.java

Issue 544223003: Add SetSupportsQuic method to explicitly specify server that supports QUIC. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Disable Quic test. Created 6 years, 3 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 side-by-side diff with in-line comments
Download patch
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..d244660599da0a86948f1e85f6034a58ed850c90 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
@@ -6,9 +6,12 @@ package org.chromium.cronet_test_apk;
import android.os.ConditionVariable;
+import android.os.Environment;
import android.test.suitebuilder.annotation.SmallTest;
+import android.util.Log;
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 +97,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 +187,60 @@ 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();
+
+ String netLogFile =
+ Environment.getExternalStorageDirectory().getPath() +
+ "/quic_netlog.json";
+ activity.mChromiumRequestFactory.getRequestContext().startNetLogToFile(
+ netLogFile);
mmenke 2014/09/16 01:51:38 Do we really need to much with NetLog?
mef 2014/09/16 08:44:14 Done.
+
+ Log.i("Cronet", "**** Starting Net Log to file " + netLogFile);
+
+ // Try several times as first request may not use QUIC.
mmenke 2014/09/16 01:51:38 Add a TODO about getting rid of this as well.
mef 2014/09/16 08:44:14 Done.
+ 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();
+ }
+
+ activity.mChromiumRequestFactory.getRequestContext().stopNetLog();
+ assertEquals(quicNegotiatedProtocol, listener.negotiatedProtocol);
+ }
+
+ @SmallTest
+ @Feature({"Cronet"})
public void testLegacyLoadUrl() throws Exception {
HttpUrlRequestFactoryConfig config = new HttpUrlRequestFactoryConfig();
config.enableLegacyMode(true);

Powered by Google App Engine
This is Rietveld 408576698