Unverified Commit cca12159 authored by Michael Goderbauer's avatar Michael Goderbauer Committed by GitHub

Properly initialize RestorationManager in the TestBinding (#70398)

parent c7f09251
......@@ -301,7 +301,9 @@ class _RootRestorationScopeState extends State<RootRestorationScope> {
@override
void dispose() {
ServicesBinding.instance!.restorationManager.removeListener(_replaceRootBucket);
if (_rootBucketValid) {
ServicesBinding.instance!.restorationManager.removeListener(_replaceRootBucket);
}
super.dispose();
}
......
......@@ -189,13 +189,16 @@ abstract class TestWidgetsFlutterBinding extends BindingBase
final TestWindow _window;
@override
TestRestorationManager get restorationManager => _restorationManager;
late TestRestorationManager _restorationManager;
TestRestorationManager get restorationManager {
_restorationManager ??= createRestorationManager();
return _restorationManager!;
}
TestRestorationManager? _restorationManager;
/// Called by the test framework at the beginning of a widget test to
/// prepare the binding for the next test.
void reset() {
_restorationManager = createRestorationManager();
_restorationManager = null;
resetGestureBinding();
}
......
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter/services.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
test('Can access restoration manager without crashing', () {
final AutomatedTestWidgetsFlutterBinding binding = AutomatedTestWidgetsFlutterBinding();
expect(binding.restorationManager, isA<RestorationManager>());
});
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment