Mirko Mucaria
Committed by GitHub

fixes issue 343 (#344)

@@ -73,7 +73,7 @@ class _PageBasedMaterialPageRoute<T> extends MaterialExtendedPageRoute<T> { @@ -73,7 +73,7 @@ class _PageBasedMaterialPageRoute<T> extends MaterialExtendedPageRoute<T> {
73 73
74 @override 74 @override
75 Widget buildContent(BuildContext context) { 75 Widget buildContent(BuildContext context) {
76 - return builder(context); 76 + return _page.child;
77 } 77 }
78 78
79 @override 79 @override
@@ -150,7 +150,7 @@ class _PageBasedCupertinoPageRoute<T> extends CupertinoExtendedPageRoute<T> { @@ -150,7 +150,7 @@ class _PageBasedCupertinoPageRoute<T> extends CupertinoExtendedPageRoute<T> {
150 150
151 @override 151 @override
152 Widget buildContent(BuildContext context) { 152 Widget buildContent(BuildContext context) {
153 - return builder(context); 153 + return _page.child;
154 } 154 }
155 155
156 @override 156 @override
@@ -55,6 +55,36 @@ void main() { @@ -55,6 +55,36 @@ void main() {
55 expect(find.text('child'), findsOneWidget); 55 expect(find.text('child'), findsOneWidget);
56 }); 56 });
57 57
  58 + testWidgets('navigating to different routes keeping the same page',
  59 + (WidgetTester tester) async {
  60 + await tester.pumpWidget(MaterialApp(
  61 + builder: (context, child) {
  62 + return Navigator(
  63 + pages: [
  64 + MaterialExtendedPage(child: Text('first child')),
  65 + ],
  66 + onPopPage: (route, result) => false,
  67 + );
  68 + },
  69 + ));
  70 + await tester.pumpAndSettle();
  71 + expect(find.text('first child'), findsOneWidget);
  72 +
  73 + await tester.pumpWidget(MaterialApp(
  74 + builder: (context, child) {
  75 + return Navigator(
  76 + pages: [
  77 + MaterialExtendedPage(child: Text('second child')),
  78 + ],
  79 + onPopPage: (route, result) => false,
  80 + );
  81 + },
  82 + ));
  83 +
  84 + await tester.pumpAndSettle();
  85 + expect(find.text('second child'), findsOneWidget);
  86 + });
  87 +
58 testWidgets('route is a MaterialExtendedPageRoute', 88 testWidgets('route is a MaterialExtendedPageRoute',
59 (WidgetTester tester) async { 89 (WidgetTester tester) async {
60 await tester.pumpWidget(MaterialApp( 90 await tester.pumpWidget(MaterialApp(
@@ -156,6 +186,36 @@ void main() { @@ -156,6 +186,36 @@ void main() {
156 expect(find.text('child'), findsOneWidget); 186 expect(find.text('child'), findsOneWidget);
157 }); 187 });
158 188
  189 + testWidgets('navigating to different routes keeping the same page',
  190 + (WidgetTester tester) async {
  191 + await tester.pumpWidget(MaterialApp(
  192 + builder: (context, child) {
  193 + return Navigator(
  194 + pages: [
  195 + CupertinoExtendedPage(child: Text('first child')),
  196 + ],
  197 + onPopPage: (route, result) => false,
  198 + );
  199 + },
  200 + ));
  201 + await tester.pumpAndSettle();
  202 + expect(find.text('first child'), findsOneWidget);
  203 +
  204 + await tester.pumpWidget(MaterialApp(
  205 + builder: (context, child) {
  206 + return Navigator(
  207 + pages: [
  208 + CupertinoExtendedPage(child: Text('second child')),
  209 + ],
  210 + onPopPage: (route, result) => false,
  211 + );
  212 + },
  213 + ));
  214 +
  215 + await tester.pumpAndSettle();
  216 + expect(find.text('second child'), findsOneWidget);
  217 + });
  218 +
159 testWidgets('route is a CupertinoExtendedPageRoute', 219 testWidgets('route is a CupertinoExtendedPageRoute',
160 (WidgetTester tester) async { 220 (WidgetTester tester) async {
161 await tester.pumpWidget(MaterialApp( 221 await tester.pumpWidget(MaterialApp(