| // 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'; |
| |
| const BoxDecoration kBoxDecorationA = BoxDecoration( |
| color: Color(0xFFFF0000), |
| ); |
| |
| const BoxDecoration kBoxDecorationB = BoxDecoration( |
| color: Color(0xFF00FF00), |
| ); |
| |
| const BoxDecoration kBoxDecorationC = BoxDecoration( |
| color: Color(0xFF0000FF), |
| ); |
| |
| class TestBuildCounter extends StatelessWidget { |
| const TestBuildCounter({ Key? key }) : super(key: key); |
| |
| static int buildCount = 0; |
| |
| @override |
| Widget build(BuildContext context) { |
| buildCount += 1; |
| return const DecoratedBox(decoration: kBoxDecorationA); |
| } |
| } |
| |
| |
| class FlipWidget extends StatefulWidget { |
| const FlipWidget({ Key? key, required this.left, required this.right }) : super(key: key); |
| |
| final Widget left; |
| final Widget right; |
| |
| @override |
| FlipWidgetState createState() => FlipWidgetState(); |
| } |
| |
| class FlipWidgetState extends State<FlipWidget> { |
| bool _showLeft = true; |
| |
| void flip() { |
| setState(() { |
| _showLeft = !_showLeft; |
| }); |
| } |
| |
| @override |
| Widget build(BuildContext context) { |
| return _showLeft ? widget.left : widget.right; |
| } |
| } |
| |
| void flipStatefulWidget(WidgetTester tester, { bool skipOffstage = true }) { |
| tester.state<FlipWidgetState>(find.byType(FlipWidget, skipOffstage: skipOffstage)).flip(); |
| } |