55import 'package:flutter/cupertino.dart' ;
66import 'package:flutter/rendering.dart' ;
77import 'package:flutter_test/flutter_test.dart' ;
8+ import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart' ;
89
910void main () {
10- testWidgets ('Passes textAlign to underlying CupertinoTextField' , (WidgetTester tester) async {
11+ testWidgetsWithLeakTracking ('Passes textAlign to underlying CupertinoTextField' , (WidgetTester tester) async {
1112 const TextAlign alignment = TextAlign .center;
1213
1314 await tester.pumpWidget (
@@ -27,7 +28,7 @@ void main() {
2728 expect (textFieldWidget.textAlign, alignment);
2829 });
2930
30- testWidgets ('Passes scrollPhysics to underlying TextField' , (WidgetTester tester) async {
31+ testWidgetsWithLeakTracking ('Passes scrollPhysics to underlying TextField' , (WidgetTester tester) async {
3132 const ScrollPhysics scrollPhysics = ScrollPhysics ();
3233
3334 await tester.pumpWidget (
@@ -47,7 +48,7 @@ void main() {
4748 expect (textFieldWidget.scrollPhysics, scrollPhysics);
4849 });
4950
50- testWidgets ('Passes textAlignVertical to underlying CupertinoTextField' , (WidgetTester tester) async {
51+ testWidgetsWithLeakTracking ('Passes textAlignVertical to underlying CupertinoTextField' , (WidgetTester tester) async {
5152 const TextAlignVertical textAlignVertical = TextAlignVertical .bottom;
5253
5354 await tester.pumpWidget (
@@ -67,7 +68,7 @@ void main() {
6768 expect (textFieldWidget.textAlignVertical, textAlignVertical);
6869 });
6970
70- testWidgets ('Passes textInputAction to underlying CupertinoTextField' , (WidgetTester tester) async {
71+ testWidgetsWithLeakTracking ('Passes textInputAction to underlying CupertinoTextField' , (WidgetTester tester) async {
7172 await tester.pumpWidget (
7273 CupertinoApp (
7374 home: Center (
@@ -85,7 +86,7 @@ void main() {
8586 expect (textFieldWidget.textInputAction, TextInputAction .next);
8687 });
8788
88- testWidgets ('Passes onEditingComplete to underlying CupertinoTextField' , (WidgetTester tester) async {
89+ testWidgetsWithLeakTracking ('Passes onEditingComplete to underlying CupertinoTextField' , (WidgetTester tester) async {
8990 void onEditingComplete () {}
9091
9192 await tester.pumpWidget (
@@ -105,7 +106,7 @@ void main() {
105106 expect (textFieldWidget.onEditingComplete, onEditingComplete);
106107 });
107108
108- testWidgets ('Passes cursor attributes to underlying CupertinoTextField' , (WidgetTester tester) async {
109+ testWidgetsWithLeakTracking ('Passes cursor attributes to underlying CupertinoTextField' , (WidgetTester tester) async {
109110 const double cursorWidth = 3.14 ;
110111 const double cursorHeight = 6.28 ;
111112 const Radius cursorRadius = Radius .circular (2 );
@@ -133,7 +134,7 @@ void main() {
133134 expect (textFieldWidget.cursorColor, cursorColor);
134135 });
135136
136- testWidgets ('onFieldSubmit callbacks are called' , (WidgetTester tester) async {
137+ testWidgetsWithLeakTracking ('onFieldSubmit callbacks are called' , (WidgetTester tester) async {
137138 bool called = false ;
138139
139140 await tester.pumpWidget (
@@ -154,7 +155,7 @@ void main() {
154155 expect (called, true );
155156 });
156157
157- testWidgets ('onChanged callbacks are called' , (WidgetTester tester) async {
158+ testWidgetsWithLeakTracking ('onChanged callbacks are called' , (WidgetTester tester) async {
158159 late String value;
159160
160161 await tester.pumpWidget (
@@ -174,7 +175,7 @@ void main() {
174175 expect (value, 'Soup' );
175176 });
176177
177- testWidgets ('autovalidateMode is passed to super' , (WidgetTester tester) async {
178+ testWidgetsWithLeakTracking ('autovalidateMode is passed to super' , (WidgetTester tester) async {
178179 int validateCalled = 0 ;
179180
180181 await tester.pumpWidget (
@@ -197,7 +198,7 @@ void main() {
197198 expect (validateCalled, 2 );
198199 });
199200
200- testWidgets ('validate is called if widget is enabled' , (WidgetTester tester) async {
201+ testWidgetsWithLeakTracking ('validate is called if widget is enabled' , (WidgetTester tester) async {
201202 int validateCalled = 0 ;
202203
203204 await tester.pumpWidget (
@@ -221,7 +222,7 @@ void main() {
221222 expect (validateCalled, 2 );
222223 });
223224
224- testWidgets ('readonly text form field will hide cursor by default' , (WidgetTester tester) async {
225+ testWidgetsWithLeakTracking ('readonly text form field will hide cursor by default' , (WidgetTester tester) async {
225226 await tester.pumpWidget (
226227 CupertinoApp (
227228 home: Center (
@@ -262,7 +263,7 @@ void main() {
262263 expect (renderEditable, paintsExactlyCountTimes (#drawRect, 0 ));
263264 }, skip: isBrowser); // [intended] We do not use Flutter-rendered context menu on the Web.
264265
265- testWidgets ('onTap is called upon tap' , (WidgetTester tester) async {
266+ testWidgetsWithLeakTracking ('onTap is called upon tap' , (WidgetTester tester) async {
266267 int tapCount = 0 ;
267268 await tester.pumpWidget (
268269 CupertinoApp (
@@ -288,7 +289,7 @@ void main() {
288289 });
289290
290291 // Regression test for https://github.com/flutter/flutter/issues/54472.
291- testWidgets ('reset resets the text fields value to the initialValue' , (WidgetTester tester) async {
292+ testWidgetsWithLeakTracking ('reset resets the text fields value to the initialValue' , (WidgetTester tester) async {
292293 await tester.pumpWidget (CupertinoApp (
293294 home: Center (
294295 child: CupertinoTextFormFieldRow (
@@ -307,7 +308,7 @@ void main() {
307308 });
308309
309310 // Regression test for https://github.com/flutter/flutter/issues/54472.
310- testWidgets ('didChange changes text fields value' , (WidgetTester tester) async {
311+ testWidgetsWithLeakTracking ('didChange changes text fields value' , (WidgetTester tester) async {
311312 await tester.pumpWidget (CupertinoApp (
312313 home: Center (
313314 child: CupertinoTextFormFieldRow (
@@ -326,7 +327,7 @@ void main() {
326327 expect (find.text ('changedValue' ), findsOneWidget);
327328 });
328329
329- testWidgets ('onChanged callbacks value and FormFieldState.value are sync' , (WidgetTester tester) async {
330+ testWidgetsWithLeakTracking ('onChanged callbacks value and FormFieldState.value are sync' , (WidgetTester tester) async {
330331 bool called = false ;
331332
332333 late FormFieldState <String > state;
@@ -352,7 +353,7 @@ void main() {
352353 expect (called, true );
353354 });
354355
355- testWidgets ('autofillHints is passed to super' , (WidgetTester tester) async {
356+ testWidgetsWithLeakTracking ('autofillHints is passed to super' , (WidgetTester tester) async {
356357 await tester.pumpWidget (
357358 CupertinoApp (
358359 home: Center (
@@ -368,7 +369,7 @@ void main() {
368369 expect (widget.autofillHints, equals (const < String > [AutofillHints .countryName]));
369370 });
370371
371- testWidgets ('autovalidateMode is passed to super' , (WidgetTester tester) async {
372+ testWidgetsWithLeakTracking ('autovalidateMode is passed to super' , (WidgetTester tester) async {
372373 int validateCalled = 0 ;
373374
374375 await tester.pumpWidget (
@@ -391,7 +392,7 @@ void main() {
391392 expect (validateCalled, 1 );
392393 });
393394
394- testWidgets ('AutovalidateMode.always mode shows error from the start' , (WidgetTester tester) async {
395+ testWidgetsWithLeakTracking ('AutovalidateMode.always mode shows error from the start' , (WidgetTester tester) async {
395396 await tester.pumpWidget (
396397 CupertinoApp (
397398 home: Center (
@@ -411,9 +412,9 @@ void main() {
411412 expect (errorText.data, 'Error' );
412413 });
413414
414- testWidgets ('Shows error text upon invalid input' , (WidgetTester tester) async {
415+ testWidgetsWithLeakTracking ('Shows error text upon invalid input' , (WidgetTester tester) async {
415416 final TextEditingController controller = TextEditingController (text: '' );
416-
417+ addTearDown (controller.dispose);
417418 await tester.pumpWidget (
418419 CupertinoApp (
419420 home: Center (
@@ -439,7 +440,7 @@ void main() {
439440 expect (errorText.data, 'Error' );
440441 });
441442
442- testWidgets ('Shows prefix' , (WidgetTester tester) async {
443+ testWidgetsWithLeakTracking ('Shows prefix' , (WidgetTester tester) async {
443444 await tester.pumpWidget (
444445 CupertinoApp (
445446 home: Center (
@@ -457,7 +458,7 @@ void main() {
457458 expect (errorText.data, 'Enter Value' );
458459 });
459460
460- testWidgets ('Passes textDirection to underlying CupertinoTextField' , (WidgetTester tester) async {
461+ testWidgetsWithLeakTracking ('Passes textDirection to underlying CupertinoTextField' , (WidgetTester tester) async {
461462 await tester.pumpWidget (
462463 CupertinoApp (
463464 home: Center (
@@ -491,7 +492,8 @@ void main() {
491492 expect (rtlTextFieldWidget.textDirection, TextDirection .rtl);
492493 });
493494
494- testWidgets ('CupertinoTextFormFieldRow onChanged is called when the form is reset' , (WidgetTester tester) async {
495+ testWidgetsWithLeakTracking (
496+ 'CupertinoTextFormFieldRow onChanged is called when the form is reset' , (WidgetTester tester) async {
495497 // Regression test for https://github.com/flutter/flutter/issues/123009.
496498 final GlobalKey <FormFieldState <String >> stateKey = GlobalKey <FormFieldState <String >>();
497499 final GlobalKey <FormState > formKey = GlobalKey <FormState >();
0 commit comments