diff --git a/testing/scenario_app/android/app/src/androidTest/java/dev/flutter/scenarios/EngineLaunchE2ETest.java b/testing/scenario_app/android/app/src/androidTest/java/dev/flutter/scenarios/EngineLaunchE2ETest.java index 727c4a36b88deddb94da555c2590cfadf0601e7e..23a3943e45baa073e94b6cf9becdf3c4f46f0477 100644 --- a/testing/scenario_app/android/app/src/androidTest/java/dev/flutter/scenarios/EngineLaunchE2ETest.java +++ b/testing/scenario_app/android/app/src/androidTest/java/dev/flutter/scenarios/EngineLaunchE2ETest.java @@ -12,6 +12,8 @@ import androidx.test.internal.runner.junit4.statement.UiThreadStatement; import androidx.test.runner.AndroidJUnit4; import io.flutter.embedding.engine.FlutterEngine; import io.flutter.embedding.engine.dart.DartExecutor; +import java.util.Arrays; +import java.util.Locale; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; @@ -34,6 +36,14 @@ public class EngineLaunchE2ETest { UiThreadStatement.runOnUiThread(() -> engine.set(new FlutterEngine(applicationContext))); CompletableFuture statusReceived = new CompletableFuture<>(); + // Resolve locale to `en_US`. + // This is required, so `window.locale` in populated in dart. + // TODO: Fix race condition between sending this over the channel and starting the entrypoint. + // https://github.com/flutter/flutter/issues/55999 + UiThreadStatement.runOnUiThread( + () -> + engine.get().getLocalizationChannel().sendLocales(Arrays.asList(Locale.US), Locale.US)); + // The default Dart main entrypoint sends back a platform message on the "waiting_for_status" // channel. That will be our launch success assertion condition. engine