From 13052b10e42e201a78883c3c79c3a2e85d9e17b0 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Thu, 9 Apr 2020 11:03:02 -0700 Subject: [PATCH] fix and re-land "re-enable `android_view_test` (#54214)" (#54312) --- .../androidviews/SimplePlatformView.java | 14 ++++++++++---- .../android_views/lib/motion_events_page.dart | 7 +++++++ .../android_views/lib/wm_integrations.dart | 2 +- .../android_views/test_driver/main_test.dart | 9 ++++++--- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/dev/integration_tests/android_views/android/app/src/main/java/io/flutter/integration/androidviews/SimplePlatformView.java b/dev/integration_tests/android_views/android/app/src/main/java/io/flutter/integration/androidviews/SimplePlatformView.java index 4e391e1564..a9bce04aec 100644 --- a/dev/integration_tests/android_views/android/app/src/main/java/io/flutter/integration/androidviews/SimplePlatformView.java +++ b/dev/integration_tests/android_views/android/app/src/main/java/io/flutter/integration/androidviews/SimplePlatformView.java @@ -52,21 +52,27 @@ public class SimplePlatformView implements PlatformView, MethodChannel.MethodCal touchPipe.disable(); result.success(null); return; - case "showAlertDialog": - showAlertDialog(result); + case "showAndHideAlertDialog": + showAndHideAlertDialog(result); return; } result.notImplemented(); } - private void showAlertDialog(MethodChannel.Result result) { + private void showAndHideAlertDialog(MethodChannel.Result result) { Context context = view.getContext(); AlertDialog.Builder builder = new AlertDialog.Builder(context); TextView textView = new TextView(context); - textView.setText("Alert!"); + textView.setText("This alert dialog will close in 1 second"); builder.setView(textView); final AlertDialog alertDialog = builder.show(); result.success(null); + view.postDelayed(new Runnable() { + @Override + public void run() { + alertDialog.hide(); + } + }, 1000); } } diff --git a/dev/integration_tests/android_views/lib/motion_events_page.dart b/dev/integration_tests/android_views/lib/motion_events_page.dart index 7af44b8e2a..351fa3ab5b 100644 --- a/dev/integration_tests/android_views/lib/motion_events_page.dart +++ b/dev/integration_tests/android_views/lib/motion_events_page.dart @@ -105,6 +105,13 @@ class MotionEventsBodyState extends State { child: const Text('PLAY FILE'), onPressed: () { playEventsFile(); }, ), + Expanded( + child: RaisedButton( + key: const ValueKey('back'), + child: const Text('BACK'), + onPressed: () { Navigator.pop(context); }, + ), + ), ], ), ], diff --git a/dev/integration_tests/android_views/lib/wm_integrations.dart b/dev/integration_tests/android_views/lib/wm_integrations.dart index 3faea1392e..7de17a15c7 100644 --- a/dev/integration_tests/android_views/lib/wm_integrations.dart +++ b/dev/integration_tests/android_views/lib/wm_integrations.dart @@ -84,7 +84,7 @@ class WindowManagerBodyState extends State { }); } try { - await viewChannel.invokeMethod('showAlertDialog'); + await viewChannel.invokeMethod('showAndHideAlertDialog'); setState(() { lastTestStatus = _LastTestStatus.success; }); diff --git a/dev/integration_tests/android_views/test_driver/main_test.dart b/dev/integration_tests/android_views/test_driver/main_test.dart index fa06836ef7..7479d5aa9b 100644 --- a/dev/integration_tests/android_views/test_driver/main_test.dart +++ b/dev/integration_tests/android_views/test_driver/main_test.dart @@ -17,6 +17,8 @@ Future main() async { driver.close(); }); + // Each test below must return back to the home page after finishing. + test('MotionEvent recomposition', () async { final SerializableFinder motionEventsListTile = find.byValueKey('MotionEventsListTile'); @@ -24,9 +26,8 @@ Future main() async { await driver.waitFor(find.byValueKey('PlatformView')); final String errorMessage = await driver.requestData('run test'); expect(errorMessage, ''); - }, - // TODO(amirh): enable this test https://github.com/flutter/flutter/issues/54022 - skip: true); + await driver.tap(find.byValueKey('back')); + }); test('AlertDialog from platform view context', () async { final SerializableFinder wmListTile = @@ -38,5 +39,7 @@ Future main() async { await driver.tap(showAlertDialog); final String status = await driver.getText(find.byValueKey('Status')); expect(status, 'Success'); + await driver.waitFor(find.pageBack()); + await driver.tap(find.pageBack()); }); }