import 'package:sky/widgets.dart'; import 'package:test/test.dart'; import '../engine/mock_events.dart'; import 'widget_tester.dart'; class Inside extends StatefulComponent { void syncConstructorArguments(Inside source) { } Widget build() { return new Listener( onPointerDown: _handlePointerDown, child: new Text('INSIDE') ); } EventDisposition _handlePointerDown(_) { setState(() { }); return EventDisposition.processed; } } class Middle extends StatefulComponent { Inside child; Middle({ this.child }); void syncConstructorArguments(Middle source) { child = source.child; } Widget build() { return new Listener( onPointerDown: _handlePointerDown, child: child ); } EventDisposition _handlePointerDown(_) { setState(() { }); return EventDisposition.processed; } } class Outside extends App { Widget build() { return new Middle(child: new Inside()); } } void main() { test('setState() smoke test', () { WidgetTester tester = new WidgetTester(); tester.pumpFrame(() { return new Outside(); }); TestPointer pointer = new TestPointer(1); Point location = tester.getCenter(tester.findText('INSIDE')); tester.dispatchEvent(pointer.down(location), location); tester.pumpFrameWithoutChange(); tester.dispatchEvent(pointer.up(), location); tester.pumpFrameWithoutChange(); }); }