Unverified Commit 39499bd2 authored by Michael Bui's avatar Michael Bui Committed by GitHub

make showKeyboard respect finder's skipOffstage value (#79034)

parent 462ad790
...@@ -1031,7 +1031,7 @@ class WidgetTester extends WidgetController implements HitTestDispatcher, Ticker ...@@ -1031,7 +1031,7 @@ class WidgetTester extends WidgetController implements HitTestDispatcher, Ticker
final EditableTextState editable = state<EditableTextState>( final EditableTextState editable = state<EditableTextState>(
find.descendant( find.descendant(
of: finder, of: finder,
matching: find.byType(EditableText), matching: find.byType(EditableText, skipOffstage: finder.skipOffstage),
matchRoot: true, matchRoot: true,
), ),
); );
......
...@@ -611,25 +611,42 @@ void main() { ...@@ -611,25 +611,42 @@ void main() {
}); });
}); });
testWidgets('showKeyboard can be called twice', (WidgetTester tester) async { group('showKeyboard', () {
await tester.pumpWidget( testWidgets('can be called twice', (WidgetTester tester) async {
MaterialApp( await tester.pumpWidget(
home: Material( MaterialApp(
child: Center( home: Material(
child: TextFormField(), child: Center(
child: TextFormField(),
),
), ),
), ),
), );
); await tester.showKeyboard(find.byType(TextField));
await tester.showKeyboard(find.byType(TextField)); await tester.testTextInput.receiveAction(TextInputAction.done);
await tester.testTextInput.receiveAction(TextInputAction.done); await tester.pump();
await tester.pump(); await tester.showKeyboard(find.byType(TextField));
await tester.showKeyboard(find.byType(TextField)); await tester.testTextInput.receiveAction(TextInputAction.done);
await tester.testTextInput.receiveAction(TextInputAction.done); await tester.pump();
await tester.pump(); await tester.showKeyboard(find.byType(TextField));
await tester.showKeyboard(find.byType(TextField)); await tester.showKeyboard(find.byType(TextField));
await tester.showKeyboard(find.byType(TextField)); await tester.pump();
await tester.pump(); });
testWidgets(
'can focus on offstage text input field if finder says not to skip offstage nodes',
(WidgetTester tester) async {
await tester.pumpWidget(
MaterialApp(
home: Material(
child: Offstage(
child: TextFormField(),
),
),
),
);
await tester.showKeyboard(find.byType(TextField, skipOffstage: false));
});
}); });
testWidgets('verifyTickersWereDisposed control test', (WidgetTester tester) async { testWidgets('verifyTickersWereDisposed control test', (WidgetTester tester) async {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment