From 07f337c540d93ba66d343da32f004c84943febfc Mon Sep 17 00:00:00 2001 From: Mehmet Fidanboylu Date: Tue, 29 Oct 2019 19:46:21 -0700 Subject: [PATCH] Add isRunningInRobolectricTest back (flutter/engine#13424) --- .../android/io/flutter/view/FlutterMain.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/engine/src/flutter/shell/platform/android/io/flutter/view/FlutterMain.java b/engine/src/flutter/shell/platform/android/io/flutter/view/FlutterMain.java index accd854eb65..c649eb40a24 100644 --- a/engine/src/flutter/shell/platform/android/io/flutter/view/FlutterMain.java +++ b/engine/src/flutter/shell/platform/android/io/flutter/view/FlutterMain.java @@ -8,6 +8,7 @@ import android.content.Context; import android.os.Handler; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.annotation.VisibleForTesting; import io.flutter.embedding.engine.loader.FlutterLoader; @@ -38,6 +39,9 @@ public class FlutterMain { * @param applicationContext The Android application context. */ public static void startInitialization(@NonNull Context applicationContext) { + if (isRunningInRobolectricTest) { + return; + } FlutterLoader.getInstance().startInitialization(applicationContext); } @@ -53,6 +57,9 @@ public class FlutterMain { * @param settings Configuration settings. */ public static void startInitialization(@NonNull Context applicationContext, @NonNull Settings settings) { + if (isRunningInRobolectricTest) { + return; + } FlutterLoader.Settings newSettings = new FlutterLoader.Settings(); newSettings.setLogTag(settings.getLogTag()); FlutterLoader.getInstance().startInitialization(applicationContext, newSettings); @@ -67,6 +74,9 @@ public class FlutterMain { * @param args Flags sent to the Flutter runtime. */ public static void ensureInitializationComplete(@NonNull Context applicationContext, @Nullable String[] args) { + if (isRunningInRobolectricTest) { + return; + } FlutterLoader.getInstance().ensureInitializationComplete(applicationContext, args); } @@ -80,6 +90,9 @@ public class FlutterMain { @NonNull Handler callbackHandler, @NonNull Runnable callback ) { + if (isRunningInRobolectricTest) { + return; + } FlutterLoader.getInstance().ensureInitializationCompleteAsync( applicationContext, args, callbackHandler, callback); } @@ -121,4 +134,21 @@ public class FlutterMain { public static String getLookupKeyForAsset(@NonNull String asset, @NonNull String packageName) { return FlutterLoader.getInstance().getLookupKeyForAsset(asset, packageName); } + + private static boolean isRunningInRobolectricTest = false; + + /* + * Indicates whether we are currently running in a Robolectric Test. + * + *

Flutter cannot be initialized inside a Robolectric environment since it cannot load + * native libraries. + * + * @deprecated Use the new embedding (io.flutter.embedding) instead which provides better + * modularity for testing. + */ + @Deprecated + @VisibleForTesting + public static void setIsRunningInRobolectricTest(boolean isRunningInRobolectricTest) { + FlutterMain.isRunningInRobolectricTest = isRunningInRobolectricTest; + } }