more navigator mocking (#2295)

diff --git a/test/mock_packages/flutter/lib/src/widgets/navigator.dart b/test/mock_packages/flutter/lib/src/widgets/navigator.dart
index c8127ca..caceda6 100644
--- a/test/mock_packages/flutter/lib/src/widgets/navigator.dart
+++ b/test/mock_packages/flutter/lib/src/widgets/navigator.dart
@@ -7,16 +7,118 @@
 
 class Navigator extends StatefulWidget {
   static NavigatorState of(
-      BuildContext context, {
-        bool rootNavigator = false,
-        bool nullOk = false,
-      }) => null;
+    BuildContext context, {
+    bool rootNavigator = false,
+    bool nullOk = false,
+  }) =>
+      null;
+
+  @optionalTypeArgs
+  static Future<T> pushNamed<T extends Object?>(
+    BuildContext context,
+    String routeName, {
+    Object? arguments,
+  }) =>
+      null;
+
+  @optionalTypeArgs
+  static Future<T> pushReplacementNamed<T extends Object?, TO extends Object?>(
+    BuildContext context,
+    String routeName, {
+    TO result,
+    Object arguments,
+  }) =>
+      null;
+
+  @optionalTypeArgs
+  static Future<T> pushNamedAndRemoveUntil<T extends Object>(
+    BuildContext context,
+    String newRouteName,
+    RoutePredicate predicate, {
+    Object arguments,
+  }) =>
+      null;
+
+  @optionalTypeArgs
+  static Future<T> push<T extends Object>(
+          BuildContext context, Route<T> route) =>
+      null;
+  @optionalTypeArgs
+  static Future<T> pushReplacement<T extends Object, TO extends Object>(
+          BuildContext context, Route<T> newRoute,
+          {TO result}) =>
+      null;
+
+  @optionalTypeArgs
+  static Future<T> pushAndRemoveUntil<T extends Object>(
+          BuildContext context, Route<T> newRoute, RoutePredicate predicate) =>
+      null;
+
+  @optionalTypeArgs
+  static Future<bool> maybePop<T extends Object>(BuildContext context,
+          [T result]) =>
+      null;
+
+  @optionalTypeArgs
+  static Future<T> popAndPushNamed<T extends Object, TO extends Object>(
+    BuildContext context,
+    String routeName, {
+    TO result,
+    Object arguments,
+  }) =>
+      null;
 }
 
 class NavigatorState extends State<Navigator> {
   @optionalTypeArgs
   Future<T> pushNamed<T extends Object>(
-      String routeName, {
-        Object? arguments,
-      }) => null;
+    String routeName, {
+    Object arguments,
+  }) =>
+      null;
+
+  @optionalTypeArgs
+  Future<T> pushReplacementNamed<T extends Object, TO extends Object>(
+    String routeName, {
+    TO result,
+    Object arguments,
+  }) =>
+      null;
+
+  @optionalTypeArgs
+  Future<T> popAndPushNamed<T extends Object, TO extends Object>(
+    String routeName, {
+    TO result,
+    Object arguments,
+  }) =>
+      null;
+
+  @optionalTypeArgs
+  Future<T> pushNamedAndRemoveUntil<T extends Object>(
+    String newRouteName,
+    RoutePredicate predicate, {
+    Object arguments,
+  }) =>
+      null;
+
+  @optionalTypeArgs
+  Future<T> push<T extends Object>(Route<T> route) => null;
+
+  @optionalTypeArgs
+  Future<T> pushReplacement<T extends Object, TO extends Object>(
+          Route<T> newRoute,
+          {TO result}) =>
+      null;
+
+  @optionalTypeArgs
+  Future<T> pushAndRemoveUntil<T extends Object>(
+          Route<T> newRoute, RoutePredicate predicate) =>
+      null;
+
+  @optionalTypeArgs
+  Future<bool> maybePop<T extends Object>([T result]) async => null;
 }
+
+typedef RoutePredicate = bool Function(Route<dynamic> route);
+
+abstract class Route<T> {}