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

Unified Diff: components/cronet/android/test/javatests/src/org/chromium/net/CronetTestBase.java

Issue 2626523003: Cronet: a framework for providing alternative Cronet implementations (Closed)
Patch Set: Updated api.txt Created 3 years, 11 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/net/CronetTestBase.java
diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/CronetTestBase.java b/components/cronet/android/test/javatests/src/org/chromium/net/CronetTestBase.java
index c0b8d3c0b3ec465497fc4dae04d51958e2718325..79bc66efb0650c072c545b87b6479cefd11b408d 100644
--- a/components/cronet/android/test/javatests/src/org/chromium/net/CronetTestBase.java
+++ b/components/cronet/android/test/javatests/src/org/chromium/net/CronetTestBase.java
@@ -10,6 +10,7 @@ import org.chromium.base.ContextUtils;
import org.chromium.base.PathUtils;
import org.chromium.net.impl.CronetEngineBase;
import org.chromium.net.impl.JavaCronetEngine;
+import org.chromium.net.impl.JavaCronetProvider;
import org.chromium.net.impl.UserAgent;
import java.lang.annotation.ElementType;
@@ -18,6 +19,7 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.reflect.AnnotatedElement;
import java.net.URL;
+import java.util.List;
/**
* Base test class for all CronetTest based tests.
@@ -132,10 +134,8 @@ public class CronetTestBase extends AndroidTestCase {
super.runTest();
if (!method.isAnnotationPresent(OnlyRunNativeCronet.class)) {
if (mCronetTestFramework != null) {
- ExperimentalCronetEngine.Builder builder =
- new ExperimentalCronetEngine.Builder(getContext());
+ ExperimentalCronetEngine.Builder builder = createJavaEngineBuilder();
builder.setUserAgent(UserAgent.from(getContext()));
- builder.enableLegacyMode(true);
mCronetTestFramework.mCronetEngine = (CronetEngineBase) builder.build();
// Make sure that the instantiated engine is JavaCronetEngine.
assert mCronetTestFramework.mCronetEngine.getClass()
@@ -152,6 +152,33 @@ public class CronetTestBase extends AndroidTestCase {
}
}
+ /**
+ * Creates and returns {@link ExperimentalCronetEngine.Builder} that creates
+ * Java (platform) based {@link CronetEngine.Builder}.
+ *
+ * @return the {@code CronetEngine.Builder} that builds Java-based {@code Cronet engine}.
+ */
+ ExperimentalCronetEngine.Builder createJavaEngineBuilder() {
+ CronetProvider provider = findJavaCronetProvider();
+ return (ExperimentalCronetEngine.Builder) provider.createBuilder();
pauljensen 2017/01/18 17:03:05 why not just make this "return new JavaCronetProvi
kapishnikov 2017/01/19 01:25:25 Some tests rely on features that are available in
pauljensen 2017/01/20 17:13:34 How about: (ExperimentalCronetEngine.Builder) new
kapishnikov 2017/01/20 21:48:38 That is a great suggestion. I tried to avoid refer
+ }
+
+ /**
+ * Finds {@link CronetProvider} that can be used to create Java-based {@link CronetEngine}.
+ *
+ * @return the found provider.
+ */
+ private CronetProvider findJavaCronetProvider() {
+ List<CronetProvider> availableProviders =
+ CronetProviders.instance().getAvailableProviders(getContext());
+ for (CronetProvider provider : availableProviders) {
+ if (provider.getName().equals(JavaCronetProvider.PROVIDER_NAME)) {
+ return provider;
+ }
+ }
+ throw new AssertionError("Unable to find Java Provider");
+ }
+
public void assertResponseEquals(UrlResponseInfo expected, UrlResponseInfo actual) {
assertEquals(expected.getAllHeaders(), actual.getAllHeaders());
assertEquals(expected.getAllHeadersAsList(), actual.getAllHeadersAsList());

Powered by Google App Engine
This is Rietveld 408576698