From e00d87ffcc89a2c068876dde91fe2c7eefa27bab Mon Sep 17 00:00:00 2001 From: LongCatIsLooong <31859944+LongCatIsLooong@users.noreply.github.com> Date: Tue, 19 Oct 2021 15:03:04 -0700 Subject: [PATCH] [keyboard_textfield_test] wait until the keyboard becomes visible (#92032) --- dev/integration_tests/ui/lib/keyboard_textfield.dart | 10 ++++++++++ .../ui/test_driver/keyboard_textfield_test.dart | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/dev/integration_tests/ui/lib/keyboard_textfield.dart b/dev/integration_tests/ui/lib/keyboard_textfield.dart index 3f5bd977e7..5f3e058cd9 100644 --- a/dev/integration_tests/ui/lib/keyboard_textfield.dart +++ b/dev/integration_tests/ui/lib/keyboard_textfield.dart @@ -47,14 +47,24 @@ class _MyHomePageState extends State { }); } + @override + void dispose() { + _controller.dispose(); + super.dispose(); + } + @override Widget build(BuildContext context) { + final String softKeyboardVisibility = MediaQuery.of(context).viewInsets.bottom > 100 + ? 'keyboard visible' + : 'keyboard not visible'; return Scaffold( body: Column( children: [ Text('$offset', key: const ValueKey(keys.kOffsetText), ), + Text(softKeyboardVisibility), Expanded( child: ListView( key: const ValueKey(keys.kListView), diff --git a/dev/integration_tests/ui/test_driver/keyboard_textfield_test.dart b/dev/integration_tests/ui/test_driver/keyboard_textfield_test.dart index ed770c5094..9da11252d9 100644 --- a/dev/integration_tests/ui/test_driver/keyboard_textfield_test.dart +++ b/dev/integration_tests/ui/test_driver/keyboard_textfield_test.dart @@ -24,6 +24,7 @@ void main() { final SerializableFinder listViewFinder = find.byValueKey(keys.kListView); final SerializableFinder textFieldFinder = find.byValueKey(keys.kDefaultTextField); final SerializableFinder offsetFinder = find.byValueKey(keys.kOffsetText); + final SerializableFinder keyboardVisibilityIndicatorFinder = find.text('keyboard visible'); // Align TextField with bottom edge to ensure it would be covered when keyboard comes up. await driver.waitForAbsent(textFieldFinder); @@ -38,7 +39,7 @@ void main() { // Bring up keyboard await driver.tap(textFieldFinder); - await Future.delayed(const Duration(seconds: 1)); + await driver.waitFor(keyboardVisibilityIndicatorFinder); // Ensure that TextField is visible again await driver.waitFor(textFieldFinder);