import 'package:flutter_test/flutter_test.dart';
import 'package:flutter_gallery/gallery/app.dart' show GalleryApp;
Future<String> mockUpdateUrlFetcher() {
return Future<String>.value('http://www.example.com/');
}
void main() {
final TestWidgetsFlutterBinding binding = TestWidgetsFlutterBinding.ensureInitialized();
if (binding is LiveTestWidgetsFlutterBinding)
binding.framePolicy = LiveTestWidgetsFlutterBindingFramePolicy.fullyLive;
testWidgets('update dialog', (WidgetTester tester) async {
await tester.pumpWidget(
const GalleryApp(
testMode: true,
updateUrlFetcher: mockUpdateUrlFetcher,
)
);
await tester.pump();
await tester.pump();
expect(find.text('UPDATE'), findsOneWidget);
await tester.tap(find.text('NO THANKS'));
await tester.pump();
await tester.tap(find.text('Studies'));
await tester.pump();
await tester.pump(const Duration(seconds: 1));
final Finder backButton = find.byTooltip('Back');
expect(backButton, findsOneWidget);
await tester.tap(backButton);
await tester.pump();
await tester.pump();
await tester.pump(const Duration(seconds: 1));
expect(find.text('UPDATE'), findsNothing);
});
}