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

This commit is contained in:
Michael Bui 2021-03-30 12:19:03 +11:00 committed by GitHub
parent 462ad79036
commit 39499bd2bf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 18 deletions

View File

@ -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,
), ),
); );

View File

@ -611,7 +611,8 @@ void main() {
}); });
}); });
testWidgets('showKeyboard can be called twice', (WidgetTester tester) async { group('showKeyboard', () {
testWidgets('can be called twice', (WidgetTester tester) async {
await tester.pumpWidget( await tester.pumpWidget(
MaterialApp( MaterialApp(
home: Material( home: Material(
@ -632,6 +633,22 @@ void main() {
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 {
late FlutterError error; late FlutterError error;
final Ticker ticker = tester.createTicker((Duration duration) {}); final Ticker ticker = tester.createTicker((Duration duration) {});