Skip to content

Commit 98ebab5

Browse files
authored
Cover more test/widgets tests with leak tracking flutter#8 (#135045)
1 parent c3db020 commit 98ebab5

21 files changed

+868
-419
lines changed

packages/flutter/test/widgets/scroll_interaction_test.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@
44

55
import 'package:flutter/widgets.dart';
66
import 'package:flutter_test/flutter_test.dart';
7+
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
78

89
void main() {
9-
testWidgets('Scroll flings twice in a row does not crash', (WidgetTester tester) async {
10+
testWidgetsWithLeakTracking('Scroll flings twice in a row does not crash', (WidgetTester tester) async {
1011
await tester.pumpWidget(
1112
Directionality(
1213
textDirection: TextDirection.ltr,

packages/flutter/test/widgets/scroll_notification_test.dart

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@
55
import 'package:flutter/gestures.dart';
66
import 'package:flutter/material.dart';
77
import 'package:flutter_test/flutter_test.dart';
8+
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
89

910
void main() {
10-
testWidgets('ScrollMetricsNotification test', (WidgetTester tester) async {
11+
testWidgetsWithLeakTracking('ScrollMetricsNotification test', (WidgetTester tester) async {
1112
final List<Notification> events = <Notification>[];
1213
Widget buildFrame(double height) {
1314
return NotificationListener<Notification>(
@@ -62,7 +63,7 @@ void main() {
6263
expect(events.length, 0);
6364
});
6465

65-
testWidgets('Scroll notification basics', (WidgetTester tester) async {
66+
testWidgetsWithLeakTracking('Scroll notification basics', (WidgetTester tester) async {
6667
late ScrollNotification notification;
6768

6869
await tester.pumpWidget(NotificationListener<ScrollNotification>(
@@ -103,7 +104,7 @@ void main() {
103104
expect(end.dragDetails!.velocity, equals(Velocity.zero));
104105
});
105106

106-
testWidgets('Scroll notification depth', (WidgetTester tester) async {
107+
testWidgetsWithLeakTracking('Scroll notification depth', (WidgetTester tester) async {
107108
final List<Type> depth0Types = <Type>[];
108109
final List<Type> depth1Types = <Type>[];
109110
final List<int> depth0Values = <int>[];
@@ -158,7 +159,7 @@ void main() {
158159
expect(depth1Values, equals(<int>[1, 1, 1, 1, 1]));
159160
});
160161

161-
testWidgets('ScrollNotifications bubble past Scaffold Material', (WidgetTester tester) async {
162+
testWidgetsWithLeakTracking('ScrollNotifications bubble past Scaffold Material', (WidgetTester tester) async {
162163
final List<Type> notificationTypes = <Type>[];
163164

164165
await tester.pumpWidget(
@@ -206,7 +207,7 @@ void main() {
206207
expect(notificationTypes, equals(types));
207208
});
208209

209-
testWidgets('ScrollNotificationObserver', (WidgetTester tester) async {
210+
testWidgetsWithLeakTracking('ScrollNotificationObserver', (WidgetTester tester) async {
210211
late ScrollNotificationObserverState observer;
211212
ScrollNotification? notification;
212213

packages/flutter/test/widgets/scroll_physics_test.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import 'package:flutter/foundation.dart';
66
import 'package:flutter/material.dart';
77
import 'package:flutter_test/flutter_test.dart';
8+
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
89

910
class TestScrollPhysics extends ScrollPhysics {
1011
const TestScrollPhysics({
@@ -339,7 +340,7 @@ FlutterError
339340
}
340341
});
341342

342-
testWidgets('PageScrollPhysics work with NestedScrollView', (WidgetTester tester) async {
343+
testWidgetsWithLeakTracking('PageScrollPhysics work with NestedScrollView', (WidgetTester tester) async {
343344
// Regression test for: https://github.com/flutter/flutter/issues/47850
344345
await tester.pumpWidget(Material(
345346
child: Directionality(

packages/flutter/test/widgets/scroll_position_test.dart

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import 'package:flutter/material.dart';
66
import 'package:flutter_test/flutter_test.dart';
7+
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
78

89
ScrollController _controller = ScrollController(
910
initialScrollOffset: 110.0,
@@ -140,7 +141,7 @@ Future<void> performTest(WidgetTester tester, bool maintainState) async {
140141
}
141142

142143
void main() {
143-
testWidgets("ScrollPosition jumpTo() doesn't call notifyListeners twice", (WidgetTester tester) async {
144+
testWidgetsWithLeakTracking("ScrollPosition jumpTo() doesn't call notifyListeners twice", (WidgetTester tester) async {
144145
int count = 0;
145146
await tester.pumpWidget(MaterialApp(
146147
home: ListView.builder(
@@ -159,15 +160,22 @@ void main() {
159160
expect(count, 1);
160161
});
161162

162-
testWidgets('whether we remember our scroll position', (WidgetTester tester) async {
163+
testWidgetsWithLeakTracking('whether we remember our scroll position', (WidgetTester tester) async {
163164
await performTest(tester, true);
164165
await performTest(tester, false);
165166
});
166167

167-
testWidgets('scroll alignment is honored by ensureVisible', (WidgetTester tester) async {
168+
testWidgetsWithLeakTracking('scroll alignment is honored by ensureVisible', (WidgetTester tester) async {
168169
final List<int> items = List<int>.generate(11, (int index) => index).toList();
169170
final List<FocusNode> nodes = List<FocusNode>.generate(11, (int index) => FocusNode(debugLabel: 'Item ${index + 1}')).toList();
171+
addTearDown(() {
172+
for (final FocusNode node in nodes) {
173+
node.dispose();
174+
}
175+
});
170176
final ScrollController controller = ScrollController();
177+
addTearDown(controller.dispose);
178+
171179
await tester.pumpWidget(
172180
MaterialApp(
173181
home: ListView(
@@ -226,7 +234,7 @@ void main() {
226234
expect(controller.position.pixels, equals(0.0));
227235
});
228236

229-
testWidgets('jumpTo recommends deferred loading', (WidgetTester tester) async {
237+
testWidgetsWithLeakTracking('jumpTo recommends deferred loading', (WidgetTester tester) async {
230238
int loadedWithDeferral = 0;
231239
int buildCount = 0;
232240
const double height = 500;

0 commit comments

Comments
 (0)