Skip to content

Commit

Permalink
Cover more test/widgets tests with leak tracking #5 (#134869)
Browse files Browse the repository at this point in the history
  • Loading branch information
ksokolovskyi committed Sep 18, 2023
1 parent abf8361 commit 56cbf3e
Show file tree
Hide file tree
Showing 18 changed files with 263 additions and 227 deletions.
4 changes: 1 addition & 3 deletions packages/flutter/test/material/filled_button_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1976,9 +1976,7 @@ void main() {
);
expect(controller.value, <MaterialState>{MaterialState.disabled});
expect(count, 1);
},
leakTrackingTestConfig: LeakTrackingTestConfig.debugNotDisposed(),
);
});

}

Expand Down
1 change: 0 additions & 1 deletion packages/flutter/test/material/snack_bar_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2544,7 +2544,6 @@ void main() {
});

testWidgetsWithLeakTracking('Should have only one SnackBar during back swipe navigation',
leakTrackingTestConfig: LeakTrackingTestConfig.debugNotDisposed(),
(WidgetTester tester) async {
const String snackBarText = 'hello snackbar';
const Key snackTarget = Key('snack-target');
Expand Down
35 changes: 23 additions & 12 deletions packages/flutter/test/widgets/listener_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,12 @@ import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';

import 'gesture_utils.dart';

void main() {
testWidgets('Events bubble up the tree', (WidgetTester tester) async {
testWidgetsWithLeakTracking('Events bubble up the tree', (WidgetTester tester) async {
final List<String> log = <String>[];

await tester.pumpWidget(
Expand Down Expand Up @@ -46,7 +47,7 @@ void main() {
]));
});

testWidgets('Detects hover events from touch devices', (WidgetTester tester) async {
testWidgetsWithLeakTracking('Detects hover events from touch devices', (WidgetTester tester) async {
final List<String> log = <String>[];

await tester.pumpWidget(
Expand Down Expand Up @@ -74,7 +75,7 @@ void main() {
});

group('transformed events', () {
testWidgets('simple offset for touch/signal', (WidgetTester tester) async {
testWidgetsWithLeakTracking('simple offset for touch/signal', (WidgetTester tester) async {
final List<PointerEvent> events = <PointerEvent>[];
final Key key = UniqueKey();

Expand Down Expand Up @@ -145,7 +146,7 @@ void main() {
expect(events.single.transform, expectedTransform);
});

testWidgets('scaled for touch/signal', (WidgetTester tester) async {
testWidgetsWithLeakTracking('scaled for touch/signal', (WidgetTester tester) async {
final List<PointerEvent> events = <PointerEvent>[];
final Key key = UniqueKey();

Expand Down Expand Up @@ -222,7 +223,7 @@ void main() {
expect(events.single.transform, expectedTransform);
});

testWidgets('scaled and offset for touch/signal', (WidgetTester tester) async {
testWidgetsWithLeakTracking('scaled and offset for touch/signal', (WidgetTester tester) async {
final List<PointerEvent> events = <PointerEvent>[];
final Key key = UniqueKey();

Expand Down Expand Up @@ -300,7 +301,7 @@ void main() {
expect(events.single.transform, expectedTransform);
});

testWidgets('rotated for touch/signal', (WidgetTester tester) async {
testWidgetsWithLeakTracking('rotated for touch/signal', (WidgetTester tester) async {
final List<PointerEvent> events = <PointerEvent>[];
final Key key = UniqueKey();

Expand Down Expand Up @@ -378,9 +379,12 @@ void main() {
});
});

testWidgets("RenderPointerListener's debugFillProperties when default", (WidgetTester tester) async {
testWidgetsWithLeakTracking("RenderPointerListener's debugFillProperties when default", (WidgetTester tester) async {
final DiagnosticPropertiesBuilder builder = DiagnosticPropertiesBuilder();
RenderPointerListener().debugFillProperties(builder);
final RenderPointerListener renderListener = RenderPointerListener();
addTearDown(renderListener.dispose);

renderListener.debugFillProperties(builder);

final List<String> description = builder.properties
.where((DiagnosticsNode node) => !node.isFiltered(DiagnosticLevel.info))
Expand All @@ -396,18 +400,25 @@ void main() {
]);
});

testWidgets("RenderPointerListener's debugFillProperties when full", (WidgetTester tester) async {
testWidgetsWithLeakTracking("RenderPointerListener's debugFillProperties when full", (WidgetTester tester) async {
final DiagnosticPropertiesBuilder builder = DiagnosticPropertiesBuilder();
RenderPointerListener(

final RenderErrorBox renderErrorBox = RenderErrorBox();
addTearDown(() => renderErrorBox.dispose());

final RenderPointerListener renderListener = RenderPointerListener(
onPointerDown: (PointerDownEvent event) {},
onPointerUp: (PointerUpEvent event) {},
onPointerMove: (PointerMoveEvent event) {},
onPointerHover: (PointerHoverEvent event) {},
onPointerCancel: (PointerCancelEvent event) {},
onPointerSignal: (PointerSignalEvent event) {},
behavior: HitTestBehavior.opaque,
child: RenderErrorBox(),
).debugFillProperties(builder);
child: renderErrorBox,
);
addTearDown(renderListener.dispose);

renderListener.debugFillProperties(builder);

final List<String> description = builder.properties
.where((DiagnosticsNode node) => !node.isFiltered(DiagnosticLevel.info))
Expand Down
5 changes: 3 additions & 2 deletions packages/flutter/test/widgets/listview_end_append_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@
import 'package:flutter/gestures.dart' show DragStartBehavior;
import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';

void main() {
testWidgets('ListView.builder() fixed itemExtent, scroll to end, append, scroll', (WidgetTester tester) async {
testWidgetsWithLeakTracking('ListView.builder() fixed itemExtent, scroll to end, append, scroll', (WidgetTester tester) async {
// Regression test for https://github.com/flutter/flutter/issues/9506

Widget buildFrame(int itemCount) {
Expand Down Expand Up @@ -35,7 +36,7 @@ void main() {
expect(find.text('item 3'), findsOneWidget);
});

testWidgets('ListView.builder() fixed itemExtent, scroll to end, append, scroll', (WidgetTester tester) async {
testWidgetsWithLeakTracking('ListView.builder() fixed itemExtent, scroll to end, append, scroll', (WidgetTester tester) async {
// Regression test for https://github.com/flutter/flutter/issues/9506

Widget buildFrame(int itemCount) {
Expand Down
7 changes: 4 additions & 3 deletions packages/flutter/test/widgets/localizations_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@ import 'dart:async';

import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';

void main() {
final TestAutomatedTestWidgetsFlutterBinding binding = TestAutomatedTestWidgetsFlutterBinding();

testWidgets('Locale is available when Localizations widget stops deferring frames', (WidgetTester tester) async {
testWidgetsWithLeakTracking('Locale is available when Localizations widget stops deferring frames', (WidgetTester tester) async {
final FakeLocalizationsDelegate delegate = FakeLocalizationsDelegate();
await tester.pumpWidget(Localizations(
locale: const Locale('fo'),
Expand All @@ -37,7 +38,7 @@ void main() {
expect(find.text('loaded'), findsOneWidget);
});

testWidgets('Localizations.localeOf throws when no localizations exist', (WidgetTester tester) async {
testWidgetsWithLeakTracking('Localizations.localeOf throws when no localizations exist', (WidgetTester tester) async {
final GlobalKey contextKey = GlobalKey(debugLabel: 'Test Key');
await tester.pumpWidget(Container(key: contextKey));

Expand All @@ -48,7 +49,7 @@ void main() {
)));
});

testWidgets('Localizations.maybeLocaleOf returns null when no localizations exist', (WidgetTester tester) async {
testWidgetsWithLeakTracking('Localizations.maybeLocaleOf returns null when no localizations exist', (WidgetTester tester) async {
final GlobalKey contextKey = GlobalKey(debugLabel: 'Test Key');
await tester.pumpWidget(Container(key: contextKey));

Expand Down
Loading

0 comments on commit 56cbf3e

Please sign in to comment.