make showKeyboard respect finder's skipOffstage value (#79034)
This commit is contained in:
parent
462ad79036
commit
39499bd2bf
@ -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() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
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 {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user