blob: f6b78aa8b5c69107ad2d8b6f1e69d880324e1cb0 [file] [log] [blame]
// 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/widgets.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
testWidgets('StatefulWidget BuildContext.mounted', (WidgetTester tester) async {
late BuildContext capturedContext;
await tester.pumpWidget(TestStatefulWidget(
onBuild: (BuildContext context) {
capturedContext = context;
}
));
expect(capturedContext.mounted, isTrue);
await tester.pumpWidget(Container());
expect(capturedContext.mounted, isFalse);
});
testWidgets('StatelessWidget BuildContext.mounted', (WidgetTester tester) async {
late BuildContext capturedContext;
await tester.pumpWidget(TestStatelessWidget(
onBuild: (BuildContext context) {
capturedContext = context;
}
));
expect(capturedContext.mounted, isTrue);
await tester.pumpWidget(Container());
expect(capturedContext.mounted, isFalse);
});
}
typedef BuildCallback = void Function(BuildContext);
class TestStatelessWidget extends StatelessWidget {
const TestStatelessWidget({super.key, required this.onBuild});
final BuildCallback onBuild;
@override
Widget build(BuildContext context) {
onBuild(context);
return Container();
}
}
class TestStatefulWidget extends StatefulWidget {
const TestStatefulWidget({super.key, required this.onBuild});
final BuildCallback onBuild;
@override
State<TestStatefulWidget> createState() => _TestStatefulWidgetState();
}
class _TestStatefulWidgetState extends State<TestStatefulWidget> {
@override
Widget build(BuildContext context) {
widget.onBuild(context);
return Container();
}
}