// 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.

// @dart = 2.8

import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/widgets.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, this.left, 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();
}
