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

Commit ad612b5

Browse files
Dump app on keyboard_textfield_test timeout (#98305)
1 parent 5515400 commit ad612b5

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

dev/integration_tests/ui/lib/keyboard_textfield.dart

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,11 @@ class _MyHomePageState extends State<MyHomePage> {
6262
Text('$offset',
6363
key: const ValueKey<String>(keys.kOffsetText),
6464
),
65-
if (isSoftKeyboardVisible) const Text(
66-
'keyboard visible',
67-
key: ValueKey<String>(keys.kKeyboardVisibleView),
65+
Text(
66+
isSoftKeyboardVisible ? 'keyboard visible' : 'keyboard hidden',
67+
key: const ValueKey<String>(keys.kKeyboardVisibleView),
6868
),
69+
const ElevatedButton(onPressed: debugDumpApp, child: Text('dump app')),
6970
Expanded(
7071
child: ListView(
7172
key: const ValueKey<String>(keys.kListView),

dev/integration_tests/ui/test_driver/keyboard_textfield_test.dart

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,23 @@ void main() {
4040
// Bring up keyboard
4141
await driver.tap(textFieldFinder);
4242

43+
const int keyboardTimeout = 3;
44+
bool keyboardVisible = false;
45+
for (int i = 0; i < keyboardTimeout; i++) {
46+
await Future<void>.delayed(const Duration(seconds: 1));
47+
final String keyboardVisibilityText = await driver.getText(keyboardVisibilityIndicatorFinder);
48+
keyboardVisible = keyboardVisibilityText == 'keyboard visible';
49+
if (keyboardVisible) {
50+
break;
51+
}
52+
}
53+
54+
if (!keyboardVisible) {
55+
await driver.tap(find.text('dump app'));
56+
}
57+
4358
// TODO(jmagman): Remove timeout once flake has been diagnosed. https://github.com/flutter/flutter/issues/96787
44-
await driver.waitFor(keyboardVisibilityIndicatorFinder, timeout: const Duration(seconds: 5));
59+
expect(keyboardVisible, isTrue);
4560

4661
// Ensure that TextField is visible again
4762
await driver.waitFor(textFieldFinder);

0 commit comments

Comments
 (0)