diff --git a/packages/flutter/test/services/restoration_test.dart b/packages/flutter/test/services/restoration_test.dart index dc3472dcde02..ce52f5f342bc 100644 --- a/packages/flutter/test/services/restoration_test.dart +++ b/packages/flutter/test/services/restoration_test.dart @@ -30,6 +30,7 @@ void main() { }); final RestorationManager manager = RestorationManager(); + addTearDown(manager.dispose); final Future rootBucketFuture = manager.rootBucket; RestorationBucket? rootBucket; rootBucketFuture.then((RestorationBucket? bucket) { @@ -65,13 +66,9 @@ void main() { }); expect(synchronousBucket, isNotNull); expect(synchronousBucket, same(rootBucket)); - }, - // TODO(NobodyForNothing): Remove after fixing and cover remaining file - // with leak tests https://github.com/flutter/flutter/issues/134831 - leakTrackingTestConfig: const LeakTrackingTestConfig(notDisposedAllowList: - {'RestorationManager': 1})); + }); - testWidgets('root bucket received from engine before retrieval', (WidgetTester tester) async { + testWidgetsWithLeakTracking('root bucket received from engine before retrieval', (WidgetTester tester) async { SystemChannels.restoration.setMethodCallHandler(null); final List callsToEngine = []; tester.binding.defaultBinaryMessenger.setMockMethodCallHandler(SystemChannels.restoration, (MethodCall call) async { @@ -79,6 +76,7 @@ void main() { return null; }); final RestorationManager manager = RestorationManager(); + addTearDown(manager.dispose); await _pushDataFromEngine(_createEncodedRestorationData1()); @@ -90,7 +88,7 @@ void main() { expect(callsToEngine, isEmpty); }); - testWidgets('root bucket received while engine retrieval is pending', (WidgetTester tester) async { + testWidgetsWithLeakTracking('root bucket received while engine retrieval is pending', (WidgetTester tester) async { SystemChannels.restoration.setMethodCallHandler(null); final List callsToEngine = []; final Completer> result = Completer>(); @@ -99,6 +97,7 @@ void main() { return result.future; }); final RestorationManager manager = RestorationManager(); + addTearDown(manager.dispose); RestorationBucket? rootBucket; manager.rootBucket.then((RestorationBucket? bucket) => rootBucket = bucket); @@ -120,11 +119,12 @@ void main() { expect(rootBucket2!.contains('foo'), isFalse); }); - testWidgets('root bucket is properly replaced when new data is available', (WidgetTester tester) async { + testWidgetsWithLeakTracking('root bucket is properly replaced when new data is available', (WidgetTester tester) async { tester.binding.defaultBinaryMessenger.setMockMethodCallHandler(SystemChannels.restoration, (MethodCall call) async { return _createEncodedRestorationData1(); }); final RestorationManager manager = RestorationManager(); + addTearDown(manager.dispose); RestorationBucket? rootBucket; manager.rootBucket.then((RestorationBucket? bucket) { rootBucket = bucket; @@ -160,7 +160,7 @@ void main() { expect(newChild.read('bar'), 'Hello'); }); - testWidgets('returns null as root bucket when restoration is disabled', (WidgetTester tester) async { + testWidgetsWithLeakTracking('returns null as root bucket when restoration is disabled', (WidgetTester tester) async { final List callsToEngine = []; final Completer> result = Completer>(); tester.binding.defaultBinaryMessenger.setMockMethodCallHandler(SystemChannels.restoration, (MethodCall call) { @@ -171,6 +171,7 @@ void main() { final RestorationManager manager = RestorationManager()..addListener(() { listenerCount++; }); + addTearDown(manager.dispose); RestorationBucket? rootBucket; bool rootBucketResolved = false; manager.rootBucket.then((RestorationBucket? bucket) { @@ -203,7 +204,7 @@ void main() { expect(rootBucket, isNull); }); - testWidgets('flushData', (WidgetTester tester) async { + testWidgetsWithLeakTracking('flushData', (WidgetTester tester) async { final List callsToEngine = []; final Completer> result = Completer>(); tester.binding.defaultBinaryMessenger.setMockMethodCallHandler(SystemChannels.restoration, (MethodCall call) { @@ -212,6 +213,7 @@ void main() { }); final RestorationManager manager = RestorationManager(); + addTearDown(manager.dispose); final Future rootBucketFuture = manager.rootBucket; RestorationBucket? rootBucket; rootBucketFuture.then((RestorationBucket? bucket) { @@ -239,13 +241,14 @@ void main() { expect(callsToEngine, hasLength(1)); }); - testWidgets('isReplacing', (WidgetTester tester) async { + testWidgetsWithLeakTracking('isReplacing', (WidgetTester tester) async { final Completer> result = Completer>(); tester.binding.defaultBinaryMessenger.setMockMethodCallHandler(SystemChannels.restoration, (MethodCall call) { return result.future; }); final TestRestorationManager manager = TestRestorationManager(); + addTearDown(manager.dispose); expect(manager.isReplacing, isFalse); RestorationBucket? rootBucket;