mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00

- 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.
72 lines
1.7 KiB
Dart
72 lines
1.7 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 '../engine/mock_events.dart';
|
|
import 'widget_tester.dart';
|
|
|
|
class Inside extends StatefulComponent {
|
|
InsideState createState() => new InsideState();
|
|
}
|
|
|
|
class InsideState extends State<Inside> {
|
|
Widget build(BuildContext context) {
|
|
return new Listener(
|
|
onPointerDown: _handlePointerDown,
|
|
child: new Text('INSIDE')
|
|
);
|
|
}
|
|
|
|
void _handlePointerDown(_) {
|
|
setState(() { });
|
|
}
|
|
}
|
|
|
|
class Middle extends StatefulComponent {
|
|
Middle({ this.child });
|
|
|
|
final Inside child;
|
|
|
|
MiddleState createState() => new MiddleState();
|
|
}
|
|
|
|
class MiddleState extends State<Middle> {
|
|
Widget build(BuildContext context) {
|
|
return new Listener(
|
|
onPointerDown: _handlePointerDown,
|
|
child: config.child
|
|
);
|
|
}
|
|
|
|
void _handlePointerDown(_) {
|
|
setState(() { });
|
|
}
|
|
}
|
|
|
|
class Outside extends StatefulComponent {
|
|
OutsideState createState() => new OutsideState();
|
|
}
|
|
|
|
class OutsideState extends State<Outside> {
|
|
Widget build(BuildContext context) {
|
|
return new Middle(child: new Inside());
|
|
}
|
|
}
|
|
|
|
void main() {
|
|
test('setState() smoke test', () {
|
|
testWidgets((WidgetTester tester) {
|
|
tester.pumpWidget(new Outside());
|
|
TestPointer pointer = new TestPointer(1);
|
|
Point location = tester.getCenter(tester.findText('INSIDE'));
|
|
tester.dispatchEvent(pointer.down(location), location);
|
|
tester.pump();
|
|
tester.dispatchEvent(pointer.up(), location);
|
|
tester.pump();
|
|
});
|
|
});
|
|
}
|