From 7d9bd5ce5a660b53e590188c43c727297452d344 Mon Sep 17 00:00:00 2001 From: Emmanuel Garcia Date: Wed, 29 Apr 2020 19:24:16 -0700 Subject: [PATCH] Populate window.locale in Dart (#18043) --- .../dev/flutter/scenarios/EngineLaunchE2ETest.java | 10 ++++++++++ 1 file changed, 10 insertions(+) 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 727c4a36b..23a3943e4 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 -- GitLab