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> { ...@@ -301,7 +301,9 @@ class _RootRestorationScopeState extends State<RootRestorationScope> {
@override @override
void dispose() { void dispose() {
ServicesBinding.instance!.restorationManager.removeListener(_replaceRootBucket); if (_rootBucketValid) {
ServicesBinding.instance!.restorationManager.removeListener(_replaceRootBucket);
}
super.dispose(); super.dispose();
} }
......
...@@ -189,13 +189,16 @@ abstract class TestWidgetsFlutterBinding extends BindingBase ...@@ -189,13 +189,16 @@ abstract class TestWidgetsFlutterBinding extends BindingBase
final TestWindow _window; final TestWindow _window;
@override @override
TestRestorationManager get restorationManager => _restorationManager; TestRestorationManager get restorationManager {
late TestRestorationManager _restorationManager; _restorationManager ??= createRestorationManager();
return _restorationManager!;
}
TestRestorationManager? _restorationManager;
/// Called by the test framework at the beginning of a widget test to /// Called by the test framework at the beginning of a widget test to
/// prepare the binding for the next test. /// prepare the binding for the next test.
void reset() { void reset() {
_restorationManager = createRestorationManager(); _restorationManager = null;
resetGestureBinding(); 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