| // 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/material.dart'; |
| |
| typedef OnObservation = void Function(Route<dynamic>? route, Route<dynamic>? previousRoute); |
| |
| /// A trivial observer for testing the navigator. |
| class TestObserver extends NavigatorObserver { |
| OnObservation? onPushed; |
| OnObservation? onPopped; |
| OnObservation? onRemoved; |
| OnObservation? onReplaced; |
| OnObservation? onStartUserGesture; |
| |
| @override |
| void didPush(Route<dynamic> route, Route<dynamic>? previousRoute) { |
| if (onPushed != null) { |
| onPushed!(route, previousRoute); |
| } |
| } |
| |
| @override |
| void didPop(Route<dynamic> route, Route<dynamic>? previousRoute) { |
| if (onPopped != null) { |
| onPopped!(route, previousRoute); |
| } |
| } |
| |
| @override |
| void didRemove(Route<dynamic> route, Route<dynamic>? previousRoute) { |
| if (onRemoved != null) |
| onRemoved!(route, previousRoute); |
| } |
| |
| @override |
| void didReplace({ Route<dynamic>? oldRoute, Route<dynamic>? newRoute }) { |
| if (onReplaced != null) |
| onReplaced!(newRoute, oldRoute); |
| } |
| |
| @override |
| void didStartUserGesture(Route<dynamic> route, Route<dynamic>? previousRoute) { |
| if (onStartUserGesture != null) |
| onStartUserGesture!(route, previousRoute); |
| } |
| } |