| // 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'; |
| import 'package:flutter_test/flutter_test.dart'; |
| |
| class TestRoute<T> extends PageRoute<T> { |
| TestRoute({ required this.child, RouteSettings? settings }) : super(settings: settings); |
| |
| final Widget child; |
| |
| @override |
| Duration get transitionDuration => const Duration(milliseconds: 150); |
| |
| @override |
| Color? get barrierColor => null; |
| |
| @override |
| String? get barrierLabel => null; |
| |
| @override |
| bool get maintainState => false; |
| |
| @override |
| Widget buildPage(BuildContext context, Animation<double> animation, Animation<double> secondaryAnimation) { |
| return child; |
| } |
| } |
| |
| Future<void> pumpApp(WidgetTester tester) async { |
| await tester.pumpWidget( |
| WidgetsApp( |
| color: const Color(0xFF333333), |
| onGenerateRoute: (RouteSettings settings) { |
| return TestRoute<void>(settings: settings, child: Container()); |
| }, |
| ), |
| ); |
| } |
| |
| void main() { |
| testWidgets('WidgetsApp control test', (WidgetTester tester) async { |
| await pumpApp(tester); |
| expect(find.byType(WidgetsApp), findsOneWidget); |
| expect(find.byType(Navigator), findsOneWidget); |
| expect(find.byType(PerformanceOverlay), findsNothing); |
| expect(find.byType(CheckedModeBanner), findsOneWidget); |
| }); |
| |
| testWidgets('showPerformanceOverlayOverride true', (WidgetTester tester) async { |
| expect(WidgetsApp.showPerformanceOverlayOverride, false); |
| WidgetsApp.showPerformanceOverlayOverride = true; |
| await pumpApp(tester); |
| expect(find.byType(WidgetsApp), findsOneWidget); |
| expect(find.byType(Navigator), findsOneWidget); |
| expect(find.byType(PerformanceOverlay), findsOneWidget); |
| expect(find.byType(CheckedModeBanner), findsOneWidget); |
| WidgetsApp.showPerformanceOverlayOverride = false; |
| }); |
| |
| testWidgets('showPerformanceOverlayOverride false', (WidgetTester tester) async { |
| WidgetsApp.showPerformanceOverlayOverride = true; |
| expect(WidgetsApp.showPerformanceOverlayOverride, true); |
| WidgetsApp.showPerformanceOverlayOverride = false; |
| await pumpApp(tester); |
| expect(find.byType(WidgetsApp), findsOneWidget); |
| expect(find.byType(Navigator), findsOneWidget); |
| expect(find.byType(PerformanceOverlay), findsNothing); |
| expect(find.byType(CheckedModeBanner), findsOneWidget); |
| }); |
| |
| testWidgets('debugAllowBannerOverride false', (WidgetTester tester) async { |
| expect(WidgetsApp.showPerformanceOverlayOverride, false); |
| expect(WidgetsApp.debugAllowBannerOverride, true); |
| WidgetsApp.debugAllowBannerOverride = false; |
| await pumpApp(tester); |
| expect(find.byType(WidgetsApp), findsOneWidget); |
| expect(find.byType(Navigator), findsOneWidget); |
| expect(find.byType(PerformanceOverlay), findsNothing); |
| expect(find.byType(CheckedModeBanner), findsNothing); |
| WidgetsApp.debugAllowBannerOverride = true; // restore to default value |
| }); |
| |
| testWidgets('debugAllowBannerOverride true', (WidgetTester tester) async { |
| WidgetsApp.debugAllowBannerOverride = false; |
| expect(WidgetsApp.showPerformanceOverlayOverride, false); |
| expect(WidgetsApp.debugAllowBannerOverride, false); |
| WidgetsApp.debugAllowBannerOverride = true; |
| await pumpApp(tester); |
| expect(find.byType(WidgetsApp), findsOneWidget); |
| expect(find.byType(Navigator), findsOneWidget); |
| expect(find.byType(PerformanceOverlay), findsNothing); |
| expect(find.byType(CheckedModeBanner), findsOneWidget); |
| }); |
| } |