TextFormField.spellCheckConfiguration (#123295)

TextFormField.spellCheckConfiguration
This commit is contained in:
Justin McCandless 2023-03-29 15:59:06 -07:00 committed by GitHub
parent 142dd6022f
commit dd3dc5efbf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 1 deletions

View file

@ -154,6 +154,7 @@ class TextFormField extends FormField<String> {
bool enableIMEPersonalizedLearning = true,
MouseCursor? mouseCursor,
EditableTextContextMenuBuilder? contextMenuBuilder = _defaultContextMenuBuilder,
SpellCheckConfiguration? spellCheckConfiguration,
TextMagnifierConfiguration? magnifierConfiguration,
}) : assert(initialValue == null || controller == null),
assert(obscuringCharacter.length == 1),
@ -235,6 +236,7 @@ class TextFormField extends FormField<String> {
enableIMEPersonalizedLearning: enableIMEPersonalizedLearning,
mouseCursor: mouseCursor,
contextMenuBuilder: contextMenuBuilder,
spellCheckConfiguration: spellCheckConfiguration,
magnifierConfiguration: magnifierConfiguration,
),
);

View file

@ -1145,6 +1145,36 @@ void main() {
skip: kIsWeb, // [intended] we don't supply the cut/copy/paste buttons on the web.
);
testWidgets('spellCheckConfiguration passes through to EditableText', (WidgetTester tester) async {
final SpellCheckConfiguration mySpellCheckConfiguration = SpellCheckConfiguration(
spellCheckService: DefaultSpellCheckService(),
misspelledTextStyle: TextField.materialMisspelledTextStyle,
);
await tester.pumpWidget(MaterialApp(
home: Scaffold(
body: TextFormField(
spellCheckConfiguration: mySpellCheckConfiguration,
),
),
));
expect(find.byType(EditableText), findsOneWidget);
final EditableText editableText = tester.widget(find.byType(EditableText));
// Can't do equality comparison on spellCheckConfiguration itself because it
// will have been copied.
expect(
editableText.spellCheckConfiguration?.spellCheckService,
equals(mySpellCheckConfiguration.spellCheckService),
);
expect(
editableText.spellCheckConfiguration?.misspelledTextStyle,
equals(mySpellCheckConfiguration.misspelledTextStyle),
);
});
testWidgets('magnifierConfiguration passes through to EditableText', (WidgetTester tester) async {
final TextMagnifierConfiguration myTextMagnifierConfiguration = TextMagnifierConfiguration(
magnifierBuilder: (BuildContext context, MagnifierController controller, ValueNotifier<MagnifierInfo> notifier) {
@ -1154,7 +1184,7 @@ void main() {
await tester.pumpWidget(MaterialApp(
home: Scaffold(
body: TextField(
body: TextFormField(
magnifierConfiguration: myTextMagnifierConfiguration,
),
),