Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
bb74f86
fix: Dispose disposable
ValentinVignal Feb 27, 2024
216661e
chore: Add leak_tracker_flutter_testing
ValentinVignal Feb 27, 2024
1b27f12
test: Fix the tests
ValentinVignal Feb 27, 2024
5d24963
doc: Update changelog and version
ValentinVignal Feb 27, 2024
05ea74e
Merge branch 'main' into go-router/test/add-leak-tracker
polina-c Feb 27, 2024
f180422
chore: Use any version for leak_tracker_flutter_testing
ValentinVignal Feb 28, 2024
ff92e8f
Merge remote-tracking branch 'upstream/main' into go-router/test/add-…
ValentinVignal Feb 28, 2024
b19ec63
Merge branch 'main' into go-router/test/add-leak-tracker
ValentinVignal Mar 4, 2024
65d563e
Merge remote-tracking branch 'upstream/main' into go-router/test/add-…
ValentinVignal Mar 7, 2024
c8d3646
test: Disable leak tracking
ValentinVignal Mar 7, 2024
acab33b
chore: Increase version numbers
ValentinVignal Mar 11, 2024
41b8cd3
Merge remote-tracking branch 'upstream/main' into go-router/test/add-…
ValentinVignal Mar 11, 2024
3474a05
chore: Upgrade dart sdk dependency
ValentinVignal Mar 11, 2024
0c94727
Merge remote-tracking branch 'upstream/main' into go-router/test/add-…
ValentinVignal Mar 11, 2024
8fd4c4b
chore: Remove package_info_plus_web dependency
ValentinVignal Mar 11, 2024
b6f8dfa
Merge branch 'main' into go-router/test/add-leak-tracker
ValentinVignal Mar 14, 2024
081b183
doc: Update the changelog to specify the new flutter and dart versions
ValentinVignal Mar 15, 2024
5e08786
Merge remote-tracking branch 'upstream/main' into go-router/test/add-…
ValentinVignal Mar 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions packages/go_router/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
## NEXT
## 13.2.1

* Updates minimum supported SDK version to Flutter 3.13/Dart 3.1.
- Updates minimum supported SDK version to Flutter 3.16/Dart 3.2.
- Fixes memory leaks.

## 13.2.0

Expand Down
4 changes: 2 additions & 2 deletions packages/go_router/example/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ version: 3.0.1
publish_to: none

environment:
sdk: ^3.1.0
flutter: ">=3.13.0"
sdk: ^3.2.0
flutter: ">=3.16.0"

dependencies:
adaptive_navigation: ^0.0.4
Expand Down
7 changes: 7 additions & 0 deletions packages/go_router/lib/src/builder.dart
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,13 @@ class _CustomNavigatorState extends State<_CustomNavigator> {
_pages = null;
}

@override
void dispose() {
_controller?.dispose();
_registry.dispose();
super.dispose();
}

void _updatePages(BuildContext context) {
assert(_pages == null);
final List<Page<Object?>> pages = <Page<Object?>>[];
Expand Down
6 changes: 3 additions & 3 deletions packages/go_router/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
name: go_router
description: A declarative router for Flutter based on Navigation 2 supporting
deep linking, data-driven routes and more
version: 13.2.0
version: 13.2.1
repository: https://github.com/flutter/packages/tree/main/packages/go_router
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+go_router%22

environment:
sdk: ">=3.1.0 <4.0.0"
flutter: ">=3.13.0"
sdk: ">=3.2.0 <4.0.0"
flutter: ">=3.16.0"

dependencies:
collection: ^1.15.0
Expand Down
1 change: 1 addition & 0 deletions packages/go_router/test/builder_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,7 @@ void main() {
),
],
);
addTearDown(goRouter.dispose);

await tester.pumpWidget(MaterialApp.router(
routerConfig: goRouter,
Expand Down
5 changes: 5 additions & 0 deletions packages/go_router/test/custom_transition_page_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ void main() {
),
],
);
addTearDown(router.dispose);
await tester.pumpWidget(
MaterialApp.router(
routerConfig: router,
Expand All @@ -35,6 +36,7 @@ void main() {
(WidgetTester tester) async {
final ValueNotifier<bool> showHomeValueNotifier =
ValueNotifier<bool>(false);
addTearDown(showHomeValueNotifier.dispose);
await tester.pumpWidget(
MaterialApp(
home: ValueListenableBuilder<bool>(
Expand Down Expand Up @@ -83,6 +85,7 @@ void main() {
testWidgets('NoTransitionPage does not apply any reverse transition',
(WidgetTester tester) async {
final ValueNotifier<bool> showHomeValueNotifier = ValueNotifier<bool>(true);
addTearDown(showHomeValueNotifier.dispose);
await tester.pumpWidget(
MaterialApp(
home: ValueListenableBuilder<bool>(
Expand Down Expand Up @@ -139,6 +142,7 @@ void main() {
),
],
);
addTearDown(router.dispose);
await tester.pumpWidget(MaterialApp.router(routerConfig: router));
expect(find.byKey(homeKey), findsOneWidget);
router.push('/dismissible-modal');
Expand Down Expand Up @@ -176,6 +180,7 @@ void main() {
),
],
);
addTearDown(router.dispose);
await tester.pumpWidget(MaterialApp.router(routerConfig: router));
expect(find.byKey(homeKey), findsOneWidget);

Expand Down
18 changes: 16 additions & 2 deletions packages/go_router/test/delegate_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import 'test_helpers.dart';
Future<GoRouter> createGoRouter(
WidgetTester tester, {
Listenable? refreshListenable,
bool dispose = true,
}) async {
final GoRouter router = GoRouter(
initialLocation: '/',
Expand All @@ -25,6 +26,9 @@ Future<GoRouter> createGoRouter(
],
refreshListenable: refreshListenable,
);
if (dispose) {
addTearDown(router.dispose);
}
await tester.pumpWidget(MaterialApp.router(
routerConfig: router,
));
Expand Down Expand Up @@ -65,6 +69,7 @@ Future<GoRouter> createGoRouterWithStatefulShellRoute(
], builder: mockStackedShellBuilder),
],
);
addTearDown(router.dispose);
await tester.pumpWidget(MaterialApp.router(
routerConfig: router,
));
Expand Down Expand Up @@ -287,6 +292,7 @@ void main() {
GoRoute(path: '/page-1', builder: (_, __) => const SizedBox()),
],
);
addTearDown(goRouter.dispose);
await tester.pumpWidget(
MaterialApp.router(
routerConfig: goRouter,
Expand Down Expand Up @@ -369,6 +375,7 @@ void main() {
builder: (_, __) => const SizedBox()),
],
);
addTearDown(goRouter.dispose);
await tester.pumpWidget(
MaterialApp.router(
routerConfig: goRouter,
Expand Down Expand Up @@ -418,6 +425,7 @@ void main() {
GoRoute(path: '/page-1', builder: (_, __) => const SizedBox()),
],
);
addTearDown(goRouter.dispose);
await tester.pumpWidget(
MaterialApp.router(
routerConfig: goRouter,
Expand Down Expand Up @@ -535,6 +543,7 @@ void main() {
),
],
);
addTearDown(router.dispose);
await tester.pumpWidget(MaterialApp.router(
routerConfig: router,
));
Expand Down Expand Up @@ -634,8 +643,13 @@ void main() {
testWidgets('dispose unsubscribes from refreshListenable',
(WidgetTester tester) async {
final FakeRefreshListenable refreshListenable = FakeRefreshListenable();
final GoRouter goRouter =
await createGoRouter(tester, refreshListenable: refreshListenable);
addTearDown(refreshListenable.dispose);

final GoRouter goRouter = await createGoRouter(
tester,
refreshListenable: refreshListenable,
dispose: false,
);
await tester.pumpWidget(Container());
goRouter.dispose();
expect(refreshListenable.unsubscribed, true);
Expand Down
1 change: 1 addition & 0 deletions packages/go_router/test/extension_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ void main() {
builder: (_, __) => const SizedBox())
],
);
addTearDown(router.dispose);
await tester.pumpWidget(MaterialApp.router(
routerConfig: router,
));
Expand Down
2 changes: 2 additions & 0 deletions packages/go_router/test/extra_codec_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ void main() {
return null;
},
);

addTearDown(router.dispose);
final SimpleDependency dependency = SimpleDependency();
addTearDown(() => dependency.dispose());

Expand Down
18 changes: 18 additions & 0 deletions packages/go_router/test/go_router_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -968,6 +968,8 @@ void main() {
testWidgets('does not crash when inherited widget changes',
(WidgetTester tester) async {
final ValueNotifier<String> notifier = ValueNotifier<String>('initial');

addTearDown(notifier.dispose);
final List<GoRoute> routes = <GoRoute>[
GoRoute(
path: '/',
Expand All @@ -985,6 +987,7 @@ void main() {
final GoRouter router = GoRouter(
routes: routes,
);
addTearDown(router.dispose);
await tester.pumpWidget(
MaterialApp.router(
routerConfig: router,
Expand Down Expand Up @@ -3212,6 +3215,7 @@ void main() {
(WidgetTester tester) async {
final GoRouterNamedLocationSpy router =
GoRouterNamedLocationSpy(routes: routes);
addTearDown(router.dispose);
await tester.pumpWidget(
MaterialApp.router(
routerConfig: router,
Expand All @@ -3230,6 +3234,7 @@ void main() {

testWidgets('calls [go] on closest GoRouter', (WidgetTester tester) async {
final GoRouterGoSpy router = GoRouterGoSpy(routes: routes);
addTearDown(router.dispose);
await tester.pumpWidget(
MaterialApp.router(
routerConfig: router,
Expand All @@ -3247,6 +3252,7 @@ void main() {
testWidgets('calls [goNamed] on closest GoRouter',
(WidgetTester tester) async {
final GoRouterGoNamedSpy router = GoRouterGoNamedSpy(routes: routes);
addTearDown(router.dispose);
await tester.pumpWidget(
MaterialApp.router(
routerConfig: router,
Expand All @@ -3268,6 +3274,7 @@ void main() {
testWidgets('calls [push] on closest GoRouter',
(WidgetTester tester) async {
final GoRouterPushSpy router = GoRouterPushSpy(routes: routes);
addTearDown(router.dispose);
await tester.pumpWidget(
MaterialApp.router(
routerConfig: router,
Expand All @@ -3285,6 +3292,7 @@ void main() {
testWidgets('calls [push] on closest GoRouter and waits for result',
(WidgetTester tester) async {
final GoRouterPushSpy router = GoRouterPushSpy(routes: routes);
addTearDown(router.dispose);
await tester.pumpWidget(
MaterialApp.router(
routeInformationProvider: router.routeInformationProvider,
Expand All @@ -3305,6 +3313,7 @@ void main() {
testWidgets('calls [pushNamed] on closest GoRouter',
(WidgetTester tester) async {
final GoRouterPushNamedSpy router = GoRouterPushNamedSpy(routes: routes);
addTearDown(router.dispose);
await tester.pumpWidget(
MaterialApp.router(
routerConfig: router,
Expand All @@ -3326,6 +3335,7 @@ void main() {
testWidgets('calls [pushNamed] on closest GoRouter and waits for result',
(WidgetTester tester) async {
final GoRouterPushNamedSpy router = GoRouterPushNamedSpy(routes: routes);
addTearDown(router.dispose);
await tester.pumpWidget(
MaterialApp.router(
routeInformationProvider: router.routeInformationProvider,
Expand All @@ -3349,6 +3359,7 @@ void main() {

testWidgets('calls [pop] on closest GoRouter', (WidgetTester tester) async {
final GoRouterPopSpy router = GoRouterPopSpy(routes: routes);
addTearDown(router.dispose);
await tester.pumpWidget(
MaterialApp.router(
routerConfig: router,
Expand All @@ -3363,6 +3374,7 @@ void main() {
testWidgets('calls [pop] on closest GoRouter with result',
(WidgetTester tester) async {
final GoRouterPopSpy router = GoRouterPopSpy(routes: routes);
addTearDown(router.dispose);
await tester.pumpWidget(
MaterialApp.router(
routerConfig: router,
Expand Down Expand Up @@ -4315,6 +4327,7 @@ void main() {
GoRoute(path: '/a', builder: (_, __) => const DummyScreen()),
],
);
addTearDown(router.dispose);

await tester.pumpWidget(
MaterialApp.router(
Expand Down Expand Up @@ -4377,6 +4390,7 @@ void main() {
),
],
);
addTearDown(router.dispose);

await tester.pumpWidget(
MaterialApp.router(
Expand Down Expand Up @@ -4443,6 +4457,7 @@ void main() {
),
],
);
addTearDown(router.dispose);

await tester.pumpWidget(
MaterialApp.router(
Expand Down Expand Up @@ -4499,6 +4514,7 @@ void main() {
),
],
);
addTearDown(router.dispose);

await tester.pumpWidget(MaterialApp.router(routerConfig: router));

Expand Down Expand Up @@ -4568,6 +4584,7 @@ void main() {
),
],
);
addTearDown(router.dispose);

await tester.pumpWidget(
MaterialApp.router(
Expand Down Expand Up @@ -4638,6 +4655,7 @@ void main() {
),
],
);
addTearDown(router.dispose);

await tester.pumpWidget(MaterialApp.router(routerConfig: router));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ WidgetTesterCallback testClickingTheButtonRedirectsToRoot({
),
],
);
addTearDown(router.dispose);
await tester.pumpWidget(appRouterBuilder(router));
await tester.tap(buttonFinder);
await tester.pumpAndSettle();
Expand Down
1 change: 1 addition & 0 deletions packages/go_router/test/inherited_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ void main() {
)
],
);
addTearDown(router.dispose);

await tester.pumpWidget(
MaterialApp.router(
Expand Down
1 change: 1 addition & 0 deletions packages/go_router/test/name_case_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ void main() {
),
],
);
addTearDown(router.dispose);

// run MaterialApp, initial screen path is '/' -> ScreenA
await tester.pumpWidget(
Expand Down
1 change: 1 addition & 0 deletions packages/go_router/test/parser_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ void main() {
redirectLimit: redirectLimit,
redirect: redirect,
);
addTearDown(router.dispose);
await tester.pumpWidget(MaterialApp.router(
routerConfig: router,
));
Expand Down
Loading