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

Unified Diff: components/cronet/android/test/smoketests/src/org/chromium/net/smoke/MissingNativeLibraryTest.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/smoketests/src/org/chromium/net/smoke/MissingNativeLibraryTest.java
diff --git a/components/cronet/android/test/smoketests/src/org/chromium/net/smoke/MissingNativeLibraryTest.java b/components/cronet/android/test/smoketests/src/org/chromium/net/smoke/MissingNativeLibraryTest.java
index 23803b7ef28dbd349c94d39f4469c74ea0ab3ec7..0da7c87d649099a6d91973f2352e75a5e681850b 100644
--- a/components/cronet/android/test/smoketests/src/org/chromium/net/smoke/MissingNativeLibraryTest.java
+++ b/components/cronet/android/test/smoketests/src/org/chromium/net/smoke/MissingNativeLibraryTest.java
@@ -7,13 +7,20 @@ package org.chromium.net.smoke;
import android.support.test.filters.SmallTest;
import org.chromium.net.CronetEngine;
+import org.chromium.net.CronetProvider;
+import org.chromium.net.CronetProviders;
import org.chromium.net.ExperimentalCronetEngine;
+import java.util.List;
+
/**
* Tests scenarios when the native shared library file is missing in the APK or was built for a
* wrong architecture.
*/
public class MissingNativeLibraryTest extends CronetSmokeTestCase {
+ private static final String NATIVE_PROVIDER_NAME = "Native-Cronet-Provider";
+ private static final String PLATFORM_PROVIDER_NAME = "Platform-Cronet-Provider";
+
/**
* If the ".so" file is missing, instantiating the Cronet engine should throw an exception.
*/
@@ -34,15 +41,35 @@ public class MissingNativeLibraryTest extends CronetSmokeTestCase {
}
/**
- * Tests the enableLegacyMode API that allows the embedder to force JavaCronetEngine
- * instantiation even when the native Cronet engine implementation is available.
+ * Tests the embedder ability to select Java (platform) based implementation when
+ * the native library is missing or doesn't load for some reason,
*/
@SmallTest
public void testEnableLegacyMode() throws Exception {
- ExperimentalCronetEngine.Builder builder =
- new ExperimentalCronetEngine.Builder(getContext());
- builder.enableLegacyMode(true);
+ CronetProviders providers = CronetProviders.instance();
+ List<CronetProvider> availableProviders = providers.getAvailableProviders(getContext());
+ boolean foundNativeProvider = false;
+ CronetProvider platformProvider = null;
+ for (CronetProvider provider : availableProviders) {
pauljensen 2017/01/18 17:03:05 assertTrue(provider.isEnabled());
kapishnikov 2017/01/19 01:25:25 Done.
+ if (provider.getName().equals(NATIVE_PROVIDER_NAME)) {
+ foundNativeProvider = true;
+ } else if (provider.getName().equals(PLATFORM_PROVIDER_NAME)) {
+ platformProvider = provider;
+ }
+ }
+
+ assertTrue("Unable to find the native cronet provider", foundNativeProvider);
+ assertNotNull("Unable to find the platform cronet provider", platformProvider);
+
+ CronetEngine.Builder builder = platformProvider.createBuilder();
CronetEngine engine = builder.build();
assertJavaEngine(engine);
+
+ assertTrue("It should be always possible to cast the created builder to"
+ + " ExperimentalCronetEngine.Builder",
+ builder instanceof ExperimentalCronetEngine.Builder);
+ assertTrue("It should be always possible to cast the created engine to"
+ + " ExperimentalCronetEngine.Builder",
+ engine instanceof ExperimentalCronetEngine);
}
}

Powered by Google App Engine
This is Rietveld 408576698