flutter/packages/unit/test/widget/test_widgets.dart
Hixie d041f3ead5 More resilient Widget tests
- force the time dilation to 1.0 for the Widget tests, so that a local
  change doesn't break all the tests during development.
- add missing license block to all the files.
- set ui.window.onBeginFrame to null when you use WidgetTester, so that
  the engine doesn't trigger any confusing frames after our fake frames.
2015-11-16 12:29:25 -08:00

63 lines
1.6 KiB
Dart

// Copyright 2015 The Chromium 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:test/test.dart';
import 'widget_tester.dart';
final BoxDecoration kBoxDecorationA = new BoxDecoration(
backgroundColor: const Color(0xFFFF0000)
);
final BoxDecoration kBoxDecorationB = new BoxDecoration(
backgroundColor: const Color(0xFF00FF00)
);
final BoxDecoration kBoxDecorationC = new BoxDecoration(
backgroundColor: const Color(0xFF0000FF)
);
class TestBuildCounter extends StatelessComponent {
static int buildCount = 0;
Widget build(BuildContext context) {
++buildCount;
return new DecoratedBox(decoration: kBoxDecorationA);
}
}
class FlipComponent extends StatefulComponent {
FlipComponent({ Key key, this.left, this.right }) : super(key: key);
final Widget left;
final Widget right;
FlipComponentState createState() => new FlipComponentState();
}
class FlipComponentState extends State<FlipComponent> {
bool _showLeft = true;
void flip() {
setState(() {
_showLeft = !_showLeft;
});
}
Widget build(BuildContext context) {
return _showLeft ? config.left : config.right;
}
}
void flipStatefulComponent(WidgetTester tester) {
StatefulComponentElement stateElement =
tester.findElement((Element element) => element is StatefulComponentElement);
expect(stateElement, isNotNull);
expect(stateElement.state is FlipComponentState, isTrue);
FlipComponentState state = stateElement.state;
state.flip();
}