mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Add RestorationManager disposals in test/services/restoration_test.dart. (#135218)
This commit is contained in:
parent
77718845dd
commit
4204f07d76
@ -30,6 +30,7 @@ void main() {
|
||||
});
|
||||
|
||||
final RestorationManager manager = RestorationManager();
|
||||
addTearDown(manager.dispose);
|
||||
final Future<RestorationBucket?> 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:
|
||||
<String, int?>{'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<MethodCall> callsToEngine = <MethodCall>[];
|
||||
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<MethodCall> callsToEngine = <MethodCall>[];
|
||||
final Completer<Map<dynamic, dynamic>> result = Completer<Map<dynamic, dynamic>>();
|
||||
@ -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<String>('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<MethodCall> callsToEngine = <MethodCall>[];
|
||||
final Completer<Map<dynamic, dynamic>> result = Completer<Map<dynamic, dynamic>>();
|
||||
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<MethodCall> callsToEngine = <MethodCall>[];
|
||||
final Completer<Map<dynamic, dynamic>> result = Completer<Map<dynamic, dynamic>>();
|
||||
tester.binding.defaultBinaryMessenger.setMockMethodCallHandler(SystemChannels.restoration, (MethodCall call) {
|
||||
@ -212,6 +213,7 @@ void main() {
|
||||
});
|
||||
|
||||
final RestorationManager manager = RestorationManager();
|
||||
addTearDown(manager.dispose);
|
||||
final Future<RestorationBucket?> 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<Map<dynamic, dynamic>> result = Completer<Map<dynamic, dynamic>>();
|
||||
tester.binding.defaultBinaryMessenger.setMockMethodCallHandler(SystemChannels.restoration, (MethodCall call) {
|
||||
return result.future;
|
||||
});
|
||||
|
||||
final TestRestorationManager manager = TestRestorationManager();
|
||||
addTearDown(manager.dispose);
|
||||
expect(manager.isReplacing, isFalse);
|
||||
|
||||
RestorationBucket? rootBucket;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user