Alexandre Ardhuin 1fc43d9330
add key to constructors of public widgets (#47884)
* add key to constructors of public widgets

* fix a test

* fix a test
2020-01-06 17:41:54 +01:00

62 lines
1.5 KiB
Dart

// 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_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();
}