TextFormField cursor params (#24635)

* cursor fields on textformfield

* Test pass-through of cursor properties
diff --git a/packages/flutter/lib/src/material/text_form_field.dart b/packages/flutter/lib/src/material/text_form_field.dart
index 4a4ec2c..b058523 100644
--- a/packages/flutter/lib/src/material/text_form_field.dart
+++ b/packages/flutter/lib/src/material/text_form_field.dart
@@ -95,6 +95,9 @@
     FormFieldValidator<String> validator,
     List<TextInputFormatter> inputFormatters,
     bool enabled = true,
+    double cursorWidth = 2.0,
+    Radius cursorRadius,
+    Color cursorColor,
     Brightness keyboardAppearance,
     EdgeInsets scrollPadding = const EdgeInsets.all(20.0),
     bool enableInteractiveSelection = true,
@@ -141,6 +144,9 @@
         onSubmitted: onFieldSubmitted,
         inputFormatters: inputFormatters,
         enabled: enabled,
+        cursorWidth: cursorWidth,
+        cursorRadius: cursorRadius,
+        cursorColor: cursorColor,
         scrollPadding: scrollPadding,
         keyboardAppearance: keyboardAppearance,
         enableInteractiveSelection: enableInteractiveSelection,
diff --git a/packages/flutter/test/material/text_form_field_test.dart b/packages/flutter/test/material/text_form_field_test.dart
index 4ad6c40..c40af91 100644
--- a/packages/flutter/test/material/text_form_field_test.dart
+++ b/packages/flutter/test/material/text_form_field_test.dart
@@ -71,6 +71,34 @@
     expect(textFieldWidget.onEditingComplete, onEditingComplete);
   });
 
+  testWidgets('Passes cursor attributes to underlying TextField', (WidgetTester tester) async {
+    const double cursorWidth = 3.14;
+    const Radius cursorRadius = Radius.circular(4);
+    const Color cursorColor = Colors.purple;
+
+    await tester.pumpWidget(
+      MaterialApp(
+        home: Material(
+          child: Center(
+            child: TextFormField(
+              cursorWidth: cursorWidth,
+              cursorRadius: cursorRadius,
+              cursorColor: cursorColor,
+            ),
+          ),
+        ),
+      ),
+    );
+
+    final Finder textFieldFinder = find.byType(TextField);
+    expect(textFieldFinder, findsOneWidget);
+
+    final TextField textFieldWidget = tester.widget(textFieldFinder);
+    expect(textFieldWidget.cursorWidth, cursorWidth);
+    expect(textFieldWidget.cursorRadius, cursorRadius);
+    expect(textFieldWidget.cursorColor, cursorColor);
+  });
+
   testWidgets('onFieldSubmit callbacks are called', (WidgetTester tester) async {
     bool _called = false;