blob: 677f299e53ba73c341cfe4eb732989c52930530d [file]
// 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';
import 'test_page_tester.dart';
void main() {
testWidgets('TestPage builds and works with Navigator', (WidgetTester tester) async {
await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
child: Navigator(
pages: const <Page<Object?>>[TestPage<void>(child: Text('Page 1'))],
onPopPage: (Route<Object?> route, Object? result) => false,
),
),
);
expect(find.text('Page 1'), findsOneWidget);
});
testWidgets('TestPage passes properties to PageRouteBuilder', (WidgetTester tester) async {
final navigatorKey = GlobalKey<NavigatorState>();
await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
child: Navigator(
key: navigatorKey,
pages: const <Page<Object?>>[
TestPage<void>(
name: '/test',
maintainState: false,
fullscreenDialog: true,
allowSnapshotting: false,
child: Text('Page'),
),
],
onPopPage: (Route<Object?> route, Object? result) => false,
),
),
);
final Route<dynamic> route = ModalRoute.of(tester.element(find.text('Page')))!;
expect(route is PageRouteBuilder, isTrue);
final pageRoute = route as PageRouteBuilder<dynamic>;
expect(pageRoute.settings.name, '/test');
expect(pageRoute.maintainState, false);
expect(pageRoute.fullscreenDialog, true);
expect(pageRoute.allowSnapshotting, false);
});
}