diff --git a/packages/flutter/lib/src/widgets/navigator.dart b/packages/flutter/lib/src/widgets/navigator.dart index 7c13750892e..7541dca67ac 100644 --- a/packages/flutter/lib/src/widgets/navigator.dart +++ b/packages/flutter/lib/src/widgets/navigator.dart @@ -548,7 +548,7 @@ class RouteSettings { final Object? arguments; @override - String toString() => '${objectRuntimeType(this, 'RouteSettings')}("$name", $arguments)'; + String toString() => '${objectRuntimeType(this, 'RouteSettings')}(${name == null ? 'none' : '"$name"'}, $arguments)'; } /// Describes the configuration of a [Route]. diff --git a/packages/flutter/test/widgets/navigator_test.dart b/packages/flutter/test/widgets/navigator_test.dart index bedf08595f8..ba60f56871d 100644 --- a/packages/flutter/test/widgets/navigator_test.dart +++ b/packages/flutter/test/widgets/navigator_test.dart @@ -3935,6 +3935,16 @@ void main() { ); expect(policy, isA()); }); + + group('RouteSettings.toString', () { + test('when name is not null, should have double quote', () { + expect(const RouteSettings(name: '/home').toString(), 'RouteSettings("/home", null)'); + }); + + test('when name is null, should not have double quote', () { + expect(const RouteSettings().toString(), 'RouteSettings(none, null)'); + }); + }); } typedef AnnouncementCallBack = void Function(Route?);