Chromium Code Reviews| 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); |
| } |
| } |