// Copyright 2014 The Flutter 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' as widgets show Container, Size, runApp; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; import 'package:integration_ui/resize.dart' as app; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); group('end-to-end test', () { testWidgets('Use button to resize window', timeout: const Timeout(Duration(seconds: 5)), ( WidgetTester tester, ) async { const resizeApp = app.ResizeApp(); widgets.runApp(resizeApp); await tester.pumpAndSettle(); final Finder fab = find.byKey(app.ResizeApp.extendedFab); expect(fab, findsOneWidget); final Finder root = find.byWidget(resizeApp); final widgets.Size sizeBefore = tester.getSize(root); await tester.tap(fab); await tester.pumpAndSettle(); final widgets.Size sizeAfter = tester.getSize(root); expect(sizeAfter.width, equals(sizeBefore.width + app.ResizeApp.resizeBy)); expect(sizeAfter.height, equals(sizeBefore.height + app.ResizeApp.resizeBy)); final Finder widthLabel = find.byKey(app.ResizeApp.widthLabel); expect(widthLabel, findsOneWidget); expect(find.text('width: ${sizeAfter.width}'), findsOneWidget); final Finder heightLabel = find.byKey(app.ResizeApp.heightLabel); expect(heightLabel, findsOneWidget); expect(find.text('height: ${sizeAfter.height}'), findsOneWidget); }); }); testWidgets( 'resize window after calling runApp twice, the second with no content', timeout: const Timeout(Duration(seconds: 5)), (WidgetTester tester) async { const root = app.ResizeApp(); widgets.runApp(root); widgets.runApp(widgets.Container()); await tester.pumpAndSettle(); const expectedSize = widgets.Size(100, 100); await app.ResizeApp.resize(expectedSize); }, ); }