app_navigator_key_test.dart 1.22 KB
Newer Older
1 2 3 4 5
// Copyright 2017 The Chromium 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_test/flutter_test.dart';
6
import 'package:flutter/widgets.dart';
7

8
final RouteFactory generateRoute = (RouteSettings settings) => PageRouteBuilder<void>(
9 10 11 12 13 14 15 16
  settings: settings,
  pageBuilder: (BuildContext context, Animation<double> animation1, Animation<double> animation2) {
    return const Placeholder();
  },
);

void main() {
  testWidgets('WidgetsApp.navigatorKey', (WidgetTester tester) async {
17 18
    final GlobalKey<NavigatorState> key = GlobalKey<NavigatorState>();
    await tester.pumpWidget(WidgetsApp(
19 20 21 22
      navigatorKey: key,
      color: const Color(0xFF112233),
      onGenerateRoute: generateRoute,
    ));
23
    expect(key.currentState, isInstanceOf<NavigatorState>());
24
    await tester.pumpWidget(WidgetsApp(
25 26 27 28
      color: const Color(0xFF112233),
      onGenerateRoute: generateRoute,
    ));
    expect(key.currentState, isNull);
29
    await tester.pumpWidget(WidgetsApp(
30 31 32 33
      navigatorKey: key,
      color: const Color(0xFF112233),
      onGenerateRoute: generateRoute,
    ));
34
    expect(key.currentState, isInstanceOf<NavigatorState>());
35 36
  });
}