Unverified Commit 7827a242 authored by lsaudon's avatar lsaudon Committed by GitHub

Add missing parameters in `TextFormField` (#127020)

`TextFormField` does not have all the parameters of `TextField`.

Added:
```dart
    UndoHistoryController? undoController,
    AppPrivateCommandCallback? onAppPrivateCommand,
    bool? cursorOpacityAnimates,
    ui.BoxHeightStyle selectionHeightStyle = ui.BoxHeightStyle.tight,
    ui.BoxWidthStyle selectionWidthStyle = ui.BoxWidthStyle.tight,
    DragStartBehavior dragStartBehavior = DragStartBehavior.start,
    ContentInsertionConfiguration? contentInsertionConfiguration,
    Clip clipBehavior = Clip.hardEdge,
    bool scribbleEnabled = true,
    bool canRequestFocus = true,
```
parent 99f792e0
......@@ -2,6 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'dart:ui' as ui show BoxHeightStyle, BoxWidthStyle;
import 'package:flutter/gestures.dart';
import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart';
......@@ -156,6 +159,16 @@ class TextFormField extends FormField<String> {
EditableTextContextMenuBuilder? contextMenuBuilder = _defaultContextMenuBuilder,
SpellCheckConfiguration? spellCheckConfiguration,
TextMagnifierConfiguration? magnifierConfiguration,
UndoHistoryController? undoController,
AppPrivateCommandCallback? onAppPrivateCommand,
bool? cursorOpacityAnimates,
ui.BoxHeightStyle selectionHeightStyle = ui.BoxHeightStyle.tight,
ui.BoxWidthStyle selectionWidthStyle = ui.BoxWidthStyle.tight,
DragStartBehavior dragStartBehavior = DragStartBehavior.start,
ContentInsertionConfiguration? contentInsertionConfiguration,
Clip clipBehavior = Clip.hardEdge,
bool scribbleEnabled = true,
bool canRequestFocus = true,
}) : assert(initialValue == null || controller == null),
assert(obscuringCharacter.length == 1),
assert(maxLines == null || maxLines > 0),
......@@ -238,6 +251,16 @@ class TextFormField extends FormField<String> {
contextMenuBuilder: contextMenuBuilder,
spellCheckConfiguration: spellCheckConfiguration,
magnifierConfiguration: magnifierConfiguration,
undoController: undoController,
onAppPrivateCommand: onAppPrivateCommand,
cursorOpacityAnimates: cursorOpacityAnimates,
selectionHeightStyle: selectionHeightStyle,
selectionWidthStyle: selectionWidthStyle,
dragStartBehavior: dragStartBehavior,
contentInsertionConfiguration: contentInsertionConfiguration,
clipBehavior: clipBehavior,
scribbleEnabled: scribbleEnabled,
canRequestFocus: canRequestFocus,
),
);
},
......
......@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'dart:ui';
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/gestures.dart';
......@@ -1196,6 +1198,227 @@ void main() {
expect(editableText.magnifierConfiguration, equals(myTextMagnifierConfiguration));
});
testWidgets('Passes undoController to undoController TextField', (WidgetTester tester) async {
final UndoHistoryController undoController = UndoHistoryController(value: UndoHistoryValue.empty);
await tester.pumpWidget(
MaterialApp(
home: Material(
child: Center(
child: TextFormField(
undoController: undoController,
),
),
),
),
);
final Finder textFieldFinder = find.byType(TextField);
expect(textFieldFinder, findsOneWidget);
final TextField textFieldWidget = tester.widget(textFieldFinder);
expect(textFieldWidget.undoController, undoController);
});
testWidgets('Passes cursorOpacityAnimates to cursorOpacityAnimates TextField', (WidgetTester tester) async {
const bool cursorOpacityAnimates = true;
await tester.pumpWidget(
MaterialApp(
home: Material(
child: Center(
child: TextFormField(
cursorOpacityAnimates: cursorOpacityAnimates,
),
),
),
),
);
final Finder textFieldFinder = find.byType(TextField);
expect(textFieldFinder, findsOneWidget);
final TextField textFieldWidget = tester.widget(textFieldFinder);
expect(textFieldWidget.cursorOpacityAnimates, cursorOpacityAnimates);
});
testWidgets('Passes contentInsertionConfiguration to contentInsertionConfiguration TextField', (WidgetTester tester) async {
final ContentInsertionConfiguration contentInsertionConfiguration =
ContentInsertionConfiguration(onContentInserted: (KeyboardInsertedContent value) {});
await tester.pumpWidget(
MaterialApp(
home: Material(
child: Center(
child: TextFormField(
contentInsertionConfiguration: contentInsertionConfiguration,
),
),
),
),
);
final Finder textFieldFinder = find.byType(TextField);
expect(textFieldFinder, findsOneWidget);
final TextField textFieldWidget = tester.widget(textFieldFinder);
expect(textFieldWidget.contentInsertionConfiguration, contentInsertionConfiguration);
});
testWidgets('Passes clipBehavior to clipBehavior TextField', (WidgetTester tester) async {
const Clip clipBehavior = Clip.antiAlias;
await tester.pumpWidget(
MaterialApp(
home: Material(
child: Center(
child: TextFormField(
clipBehavior: clipBehavior,
),
),
),
),
);
final Finder textFieldFinder = find.byType(TextField);
expect(textFieldFinder, findsOneWidget);
final TextField textFieldWidget = tester.widget(textFieldFinder);
expect(textFieldWidget.clipBehavior, clipBehavior);
});
testWidgets('Passes scribbleEnabled to scribbleEnabled TextField', (WidgetTester tester) async {
const bool scribbleEnabled = false;
await tester.pumpWidget(
MaterialApp(
home: Material(
child: Center(
child: TextFormField(
scribbleEnabled: scribbleEnabled,
),
),
),
),
);
final Finder textFieldFinder = find.byType(TextField);
expect(textFieldFinder, findsOneWidget);
final TextField textFieldWidget = tester.widget(textFieldFinder);
expect(textFieldWidget.scribbleEnabled, scribbleEnabled);
});
testWidgets('Passes canRequestFocus to canRequestFocus TextField', (WidgetTester tester) async {
const bool canRequestFocus = false;
await tester.pumpWidget(
MaterialApp(
home: Material(
child: Center(
child: TextFormField(
canRequestFocus: canRequestFocus,
),
),
),
),
);
final Finder textFieldFinder = find.byType(TextField);
expect(textFieldFinder, findsOneWidget);
final TextField textFieldWidget = tester.widget(textFieldFinder);
expect(textFieldWidget.canRequestFocus, canRequestFocus);
});
testWidgets('Passes onAppPrivateCommand to onAppPrivateCommand TextField', (WidgetTester tester) async {
void onAppPrivateCommand(String p0, Map<String, dynamic> p1) {}
await tester.pumpWidget(
MaterialApp(
home: Material(
child: Center(
child: TextFormField(
onAppPrivateCommand: onAppPrivateCommand,
),
),
),
),
);
final Finder textFieldFinder = find.byType(TextField);
expect(textFieldFinder, findsOneWidget);
final TextField textFieldWidget = tester.widget(textFieldFinder);
expect(textFieldWidget.onAppPrivateCommand, onAppPrivateCommand);
});
testWidgets('Passes selectionHeightStyle to selectionHeightStyle TextField', (WidgetTester tester) async {
const BoxHeightStyle selectionHeightStyle = BoxHeightStyle.max;
await tester.pumpWidget(
MaterialApp(
home: Material(
child: Center(
child: TextFormField(
selectionHeightStyle: selectionHeightStyle,
),
),
),
),
);
final Finder textFieldFinder = find.byType(TextField);
expect(textFieldFinder, findsOneWidget);
final TextField textFieldWidget = tester.widget(textFieldFinder);
expect(textFieldWidget.selectionHeightStyle, selectionHeightStyle);
});
testWidgets('Passes selectionWidthStyle to selectionWidthStyle TextField', (WidgetTester tester) async {
const BoxWidthStyle selectionWidthStyle = BoxWidthStyle.max;
await tester.pumpWidget(
MaterialApp(
home: Material(
child: Center(
child: TextFormField(
selectionWidthStyle: selectionWidthStyle,
),
),
),
),
);
final Finder textFieldFinder = find.byType(TextField);
expect(textFieldFinder, findsOneWidget);
final TextField textFieldWidget = tester.widget(textFieldFinder);
expect(textFieldWidget.selectionWidthStyle, selectionWidthStyle);
});
testWidgets('Passes dragStartBehavior to dragStartBehavior TextField', (WidgetTester tester) async {
const DragStartBehavior dragStartBehavior = DragStartBehavior.down;
await tester.pumpWidget(
MaterialApp(
home: Material(
child: Center(
child: TextFormField(
dragStartBehavior: dragStartBehavior,
),
),
),
),
);
final Finder textFieldFinder = find.byType(TextField);
expect(textFieldFinder, findsOneWidget);
final TextField textFieldWidget = tester.widget(textFieldFinder);
expect(textFieldWidget.dragStartBehavior, dragStartBehavior);
});
testWidgets('Error color for cursor while validating', (WidgetTester tester) async {
const Color errorColor = Color(0xff123456);
await tester.pumpWidget(MaterialApp(
......
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