flutter/packages/unit/test/widget/stateful_components_test.dart
Hixie 0376c35ae4 Minor cleanups (spelling mistakes, unneeded casts)
Rename Outter to Outer.

Change _sync() in StatefulComponent to assert the argument type in the
signature rather than in the code.
2015-09-14 10:28:28 -07:00

67 lines
1.2 KiB
Dart

import 'package:sky/animation.dart';
import 'package:sky/widgets.dart';
import 'package:test/test.dart';
import 'widget_tester.dart';
class InnerComponent extends StatefulComponent {
InnerComponent();
bool _didInitState = false;
void initState() {
_didInitState = true;
}
void syncConstructorArguments(InnerComponent source) {
}
Widget build() {
return new Container();
}
}
class OuterContainer extends StatefulComponent {
OuterContainer({ this.child });
InnerComponent child;
void syncConstructorArguments(OuterContainer source) {
child = source.child;
}
Widget build() {
return child;
}
}
void main() {
test('resync stateful widget', () {
WidgetTester tester = new WidgetTester();
InnerComponent inner;
OuterContainer outer;
tester.pumpFrame(() {
return new OuterContainer(child: new InnerComponent());
});
tester.pumpFrame(() {
inner = new InnerComponent();
outer = new OuterContainer(child: inner);
return outer;
});
expect(inner._didInitState, isFalse);
expect(inner.parent, isNull);
outer.setState(() {});
scheduler.beginFrame(0.0);
expect(inner._didInitState, isFalse);
expect(inner.parent, isNull);
});
}