Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit f1e50ed

Browse files
committed
fix test via injector
1 parent 680a864 commit f1e50ed

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

shell/platform/android/io/flutter/FlutterInjector.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public final class FlutterInjector {
2828
* <p>This can only be called at the beginning of the program before the {@link #instance()} is
2929
* accessed.
3030
*/
31+
@VisibleForTesting
3132
public static void setInstance(@NonNull FlutterInjector injector) {
3233
if (accessed) {
3334
throw new IllegalStateException(

shell/platform/android/io/flutter/embedding/android/FlutterActivityAndFragmentDelegate.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@
1818
import androidx.annotation.Nullable;
1919
import androidx.annotation.VisibleForTesting;
2020
import androidx.lifecycle.Lifecycle;
21+
import io.flutter.FlutterInjector;
2122
import io.flutter.Log;
2223
import io.flutter.app.FlutterActivity;
2324
import io.flutter.embedding.engine.FlutterEngine;
2425
import io.flutter.embedding.engine.FlutterEngineCache;
2526
import io.flutter.embedding.engine.FlutterShellArgs;
2627
import io.flutter.embedding.engine.dart.DartExecutor;
27-
import io.flutter.embedding.engine.loader.FlutterLoader;
2828
import io.flutter.embedding.engine.renderer.FlutterUiDisplayListener;
2929
import io.flutter.plugin.platform.PlatformPlugin;
3030
import java.util.Arrays;
@@ -369,7 +369,7 @@ private void doInitialFlutterViewRun() {
369369

370370
String appBundlePathOverride = host.getAppBundlePath();
371371
if (appBundlePathOverride == null || appBundlePathOverride.isEmpty()) {
372-
appBundlePathOverride = FlutterLoader.getInstance().findAppBundlePath();
372+
appBundlePathOverride = FlutterInjector.instance().flutterLoader().findAppBundlePath();
373373
}
374374

375375
// Configure the Dart entrypoint and execute it.

shell/platform/android/test/io/flutter/embedding/android/FlutterActivityAndFragmentDelegateTest.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,13 @@
1717
import android.content.Intent;
1818
import androidx.annotation.NonNull;
1919
import androidx.lifecycle.Lifecycle;
20+
import io.flutter.FlutterInjector;
2021
import io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.Host;
2122
import io.flutter.embedding.engine.FlutterEngine;
2223
import io.flutter.embedding.engine.FlutterEngineCache;
2324
import io.flutter.embedding.engine.FlutterShellArgs;
2425
import io.flutter.embedding.engine.dart.DartExecutor;
26+
import io.flutter.embedding.engine.loader.FlutterLoader;
2527
import io.flutter.embedding.engine.plugins.activity.ActivityControlSurface;
2628
import io.flutter.embedding.engine.renderer.FlutterRenderer;
2729
import io.flutter.embedding.engine.systemchannels.AccessibilityChannel;
@@ -51,6 +53,7 @@ public class FlutterActivityAndFragmentDelegateTest {
5153

5254
@Before
5355
public void setup() {
56+
FlutterInjector.reset();
5457
// Create a mocked FlutterEngine for the various interactions required by the delegate
5558
// being tested.
5659
mockFlutterEngine = mockFlutterEngine();
@@ -310,13 +313,18 @@ public void itExecutesDartEntrypointProvidedByHost() {
310313
@Test
311314
public void itUsesDefaultFlutterLoaderAppBundlePathWhenUnspecified() {
312315
// ---- Test setup ----
316+
FlutterLoader mockFlutterLoader = mock(FlutterLoader.class);
317+
when(mockFlutterLoader.findAppBundlePath()).thenReturn("default_flutter_assets/path");
318+
FlutterInjector.setInstance(
319+
new FlutterInjector.Builder().setFlutterLoader(mockFlutterLoader).build());
320+
313321
// Set Dart entrypoint parameters on fake host.
314322
when(mockHost.getAppBundlePath()).thenReturn(null);
315323
when(mockHost.getDartEntrypointFunctionName()).thenReturn("myEntrypoint");
316324

317325
// Create the DartEntrypoint that we expect to be executed.
318326
DartExecutor.DartEntrypoint dartEntrypoint =
319-
new DartExecutor.DartEntrypoint("flutter_assets", "myEntrypoint");
327+
new DartExecutor.DartEntrypoint("default_flutter_assets/path", "myEntrypoint");
320328

321329
// Create the real object that we're testing.
322330
FlutterActivityAndFragmentDelegate delegate = new FlutterActivityAndFragmentDelegate(mockHost);

0 commit comments

Comments
 (0)