| import 'dart:async'; |
| |
| import 'package:flutter_driver/flutter_driver.dart'; |
| import 'package:test/test.dart'; |
| |
| const Duration kWaitBetweenActions = const Duration(milliseconds: 250); |
| |
| void main() { |
| group('flutter gallery transitions', () { |
| FlutterDriver driver; |
| setUpAll(() async { |
| driver = await FlutterDriver.connect(); |
| }); |
| |
| tearDownAll(() async { |
| if (driver != null) |
| await driver.close(); |
| }); |
| |
| test('navigation', () async { |
| final Completer<Null> completer = new Completer<Null>(); |
| bool scroll = true; |
| final SerializableFinder menuItem = find.text('Text fields'); |
| driver.waitFor(menuItem).then<Null>((Null value) async { |
| scroll = false; |
| await new Future<Null>.delayed(kWaitBetweenActions); |
| for (int i = 0; i < 15; i++) { |
| await driver.tap(menuItem); |
| await new Future<Null>.delayed(kWaitBetweenActions); |
| await driver.tap(find.byTooltip('Back')); |
| await new Future<Null>.delayed(kWaitBetweenActions); |
| } |
| completer.complete(); |
| }); |
| while (scroll) { |
| await driver.scroll(find.text('Flutter Gallery'), 0.0, -500.0, const Duration(milliseconds: 80)); |
| await new Future<Null>.delayed(kWaitBetweenActions); |
| } |
| await completer.future; |
| }, timeout: const Timeout(const Duration(minutes: 1))); |
| }); |
| } |