flutter/packages/unit/test/widget/drawer_test.dart
Adam Barth cc809491ba Split material design widgets out of widgets.dart
These are now part of material.dart.
2015-10-09 10:07:06 -07:00

72 lines
2.4 KiB
Dart

import 'package:sky/material.dart';
import 'package:sky/widgets.dart';
import 'package:test/test.dart';
import 'widget_tester.dart';
void main() {
test('Drawer control test', () {
testWidgets((WidgetTester tester) {
NavigatorState navigator;
tester.pumpWidget(
new App(
routes: {
'/': (RouteArguments args) {
navigator = args.navigator;
new Container();
}
}
)
);
tester.pump(); // no effect
expect(tester.findText('drawer'), isNull);
showDrawer(navigator: navigator, child: new Text('drawer'));
tester.pump(); // drawer should be starting to animate in
expect(tester.findText('drawer'), isNotNull);
tester.pump(new Duration(seconds: 1)); // animation done
expect(tester.findText('drawer'), isNotNull);
navigator.pop();
tester.pump(); // drawer should be starting to animate away
expect(tester.findText('drawer'), isNotNull);
tester.pump(new Duration(seconds: 1)); // animation done
expect(tester.findText('drawer'), isNull);
});
});
test('Drawer tap test', () {
testWidgets((WidgetTester tester) {
NavigatorState navigator;
tester.pumpWidget(new Container()); // throw away the old App and its Navigator
tester.pumpWidget(
new App(
routes: {
'/': (RouteArguments args) {
navigator = args.navigator;
new Container();
}
}
)
);
tester.pump(); // no effect
expect(tester.findText('drawer'), isNull);
showDrawer(navigator: navigator, child: new Text('drawer'));
tester.pump(); // drawer should be starting to animate in
expect(tester.findText('drawer'), isNotNull);
tester.pump(new Duration(seconds: 1)); // animation done
expect(tester.findText('drawer'), isNotNull);
tester.tap(tester.findText('drawer'));
tester.pump(); // nothing should have happened
expect(tester.findText('drawer'), isNotNull);
tester.pump(new Duration(seconds: 1)); // ditto
expect(tester.findText('drawer'), isNotNull);
tester.tapAt(const Point(750.0, 100.0)); // on the mask
tester.pump(); // drawer should be starting to animate away
expect(tester.findText('drawer'), isNotNull);
tester.pump(new Duration(seconds: 1)); // animation done
expect(tester.findText('drawer'), isNull);
});
});
}