Showing
1 changed file
with
69 additions
and
36 deletions
@@ -20,9 +20,9 @@ void main() { | @@ -20,9 +20,9 @@ void main() { | ||
20 | testWidgets("Get.toNamed navigates to provided named route", (tester) async { | 20 | testWidgets("Get.toNamed navigates to provided named route", (tester) async { |
21 | await tester.pumpWidget( | 21 | await tester.pumpWidget( |
22 | GetMaterialApp( | 22 | GetMaterialApp( |
23 | - initialRoute: '/', | 23 | + initialRoute: '/first', |
24 | getPages: [ | 24 | getPages: [ |
25 | - GetPage(page: () => FirstScreen(), name: '/'), | 25 | + GetPage(page: () => FirstScreen(), name: '/first'), |
26 | GetPage(page: () => SecondScreen(), name: '/second'), | 26 | GetPage(page: () => SecondScreen(), name: '/second'), |
27 | GetPage(page: () => ThirdScreen(), name: '/third') | 27 | GetPage(page: () => ThirdScreen(), name: '/third') |
28 | ], | 28 | ], |
@@ -38,10 +38,9 @@ void main() { | @@ -38,10 +38,9 @@ void main() { | ||
38 | 38 | ||
39 | testWidgets("Get.off navigates to provided route", (tester) async { | 39 | testWidgets("Get.off navigates to provided route", (tester) async { |
40 | await tester.pumpWidget( | 40 | await tester.pumpWidget( |
41 | - Wrapper(child: Container()), | 41 | + Wrapper(child: FirstScreen()), |
42 | ); | 42 | ); |
43 | 43 | ||
44 | - Get.to(FirstScreen()); | ||
45 | Get.off(SecondScreen()); | 44 | Get.off(SecondScreen()); |
46 | 45 | ||
47 | await tester.pumpAndSettle(); | 46 | await tester.pumpAndSettle(); |
@@ -51,10 +50,9 @@ void main() { | @@ -51,10 +50,9 @@ void main() { | ||
51 | 50 | ||
52 | testWidgets("Get.off removes current route", (tester) async { | 51 | testWidgets("Get.off removes current route", (tester) async { |
53 | await tester.pumpWidget( | 52 | await tester.pumpWidget( |
54 | - Wrapper(child: Container()), | 53 | + Wrapper(child: FirstScreen()), |
55 | ); | 54 | ); |
56 | 55 | ||
57 | - Get.to(FirstScreen()); | ||
58 | Get.off(SecondScreen()); | 56 | Get.off(SecondScreen()); |
59 | Get.back(); | 57 | Get.back(); |
60 | 58 | ||
@@ -66,9 +64,8 @@ void main() { | @@ -66,9 +64,8 @@ void main() { | ||
66 | testWidgets("Get.offNamed navigates to provided named route", (tester) async { | 64 | testWidgets("Get.offNamed navigates to provided named route", (tester) async { |
67 | await tester.pumpWidget( | 65 | await tester.pumpWidget( |
68 | GetMaterialApp( | 66 | GetMaterialApp( |
69 | - initialRoute: '/', | 67 | + initialRoute: '/first', |
70 | getPages: [ | 68 | getPages: [ |
71 | - GetPage(name: '/', page: () => Container()), | ||
72 | GetPage(name: '/first', page: () => FirstScreen()), | 69 | GetPage(name: '/first', page: () => FirstScreen()), |
73 | GetPage(name: '/second', page: () => SecondScreen()), | 70 | GetPage(name: '/second', page: () => SecondScreen()), |
74 | GetPage(name: '/third', page: () => ThirdScreen()), | 71 | GetPage(name: '/third', page: () => ThirdScreen()), |
@@ -76,19 +73,18 @@ void main() { | @@ -76,19 +73,18 @@ void main() { | ||
76 | ), | 73 | ), |
77 | ); | 74 | ); |
78 | 75 | ||
79 | - Get.offNamed('/first'); | 76 | + Get.offNamed('/second'); |
80 | 77 | ||
81 | await tester.pumpAndSettle(); | 78 | await tester.pumpAndSettle(); |
82 | 79 | ||
83 | - expect(find.byType(FirstScreen), findsOneWidget); | 80 | + expect(find.byType(SecondScreen), findsOneWidget); |
84 | }); | 81 | }); |
85 | 82 | ||
86 | testWidgets("Get.offNamed removes current route", (tester) async { | 83 | testWidgets("Get.offNamed removes current route", (tester) async { |
87 | await tester.pumpWidget( | 84 | await tester.pumpWidget( |
88 | GetMaterialApp( | 85 | GetMaterialApp( |
89 | - initialRoute: '/', | 86 | + initialRoute: '/first', |
90 | getPages: [ | 87 | getPages: [ |
91 | - GetPage(name: '/', page: () => Container()), | ||
92 | GetPage(name: '/first', page: () => FirstScreen()), | 88 | GetPage(name: '/first', page: () => FirstScreen()), |
93 | GetPage(name: '/second', page: () => SecondScreen()), | 89 | GetPage(name: '/second', page: () => SecondScreen()), |
94 | GetPage(name: '/third', page: () => ThirdScreen()), | 90 | GetPage(name: '/third', page: () => ThirdScreen()), |
@@ -96,7 +92,6 @@ void main() { | @@ -96,7 +92,6 @@ void main() { | ||
96 | ), | 92 | ), |
97 | ); | 93 | ); |
98 | 94 | ||
99 | - Get.toNamed('/first'); | ||
100 | Get.offNamed('/second'); | 95 | Get.offNamed('/second'); |
101 | Get.back(); | 96 | Get.back(); |
102 | 97 | ||
@@ -108,9 +103,8 @@ void main() { | @@ -108,9 +103,8 @@ void main() { | ||
108 | testWidgets("Get.offNamed removes only current route", (tester) async { | 103 | testWidgets("Get.offNamed removes only current route", (tester) async { |
109 | await tester.pumpWidget( | 104 | await tester.pumpWidget( |
110 | GetMaterialApp( | 105 | GetMaterialApp( |
111 | - initialRoute: '/', | 106 | + initialRoute: '/first', |
112 | getPages: [ | 107 | getPages: [ |
113 | - GetPage(name: '/', page: () => Container()), | ||
114 | GetPage(name: '/first', page: () => FirstScreen()), | 108 | GetPage(name: '/first', page: () => FirstScreen()), |
115 | GetPage(name: '/second', page: () => SecondScreen()), | 109 | GetPage(name: '/second', page: () => SecondScreen()), |
116 | GetPage(name: '/third', page: () => ThirdScreen()), | 110 | GetPage(name: '/third', page: () => ThirdScreen()), |
@@ -118,33 +112,32 @@ void main() { | @@ -118,33 +112,32 @@ void main() { | ||
118 | ), | 112 | ), |
119 | ); | 113 | ); |
120 | 114 | ||
121 | - Get.toNamed('/first'); | ||
122 | - Get.offNamed('/second'); | 115 | + Get.toNamed('/second'); |
116 | + Get.offNamed('/third'); | ||
123 | Get.back(); | 117 | Get.back(); |
124 | 118 | ||
125 | await tester.pumpAndSettle(); | 119 | await tester.pumpAndSettle(); |
126 | 120 | ||
127 | - expect(find.byType(Container), findsOneWidget); | 121 | + expect(find.byType(FirstScreen), findsOneWidget); |
128 | }); | 122 | }); |
129 | 123 | ||
130 | testWidgets("Get.offAll navigates to provided route", (tester) async { | 124 | testWidgets("Get.offAll navigates to provided route", (tester) async { |
131 | await tester.pumpWidget( | 125 | await tester.pumpWidget( |
132 | - Wrapper(child: Container()), | 126 | + Wrapper(child: FirstScreen()), |
133 | ); | 127 | ); |
134 | 128 | ||
135 | - Get.offAll(FirstScreen()); | 129 | + Get.offAll(SecondScreen()); |
136 | 130 | ||
137 | await tester.pumpAndSettle(); | 131 | await tester.pumpAndSettle(); |
138 | 132 | ||
139 | - expect(find.byType(FirstScreen), findsOneWidget); | 133 | + expect(find.byType(SecondScreen), findsOneWidget); |
140 | }); | 134 | }); |
141 | 135 | ||
142 | testWidgets("Get.offAll removes all previous routes", (tester) async { | 136 | testWidgets("Get.offAll removes all previous routes", (tester) async { |
143 | await tester.pumpWidget( | 137 | await tester.pumpWidget( |
144 | - Wrapper(child: Container()), | 138 | + Wrapper(child: FirstScreen()), |
145 | ); | 139 | ); |
146 | 140 | ||
147 | - Get.to(FirstScreen()); | ||
148 | Get.to(SecondScreen()); | 141 | Get.to(SecondScreen()); |
149 | Get.offAll(ThirdScreen()); | 142 | Get.offAll(ThirdScreen()); |
150 | Get.back(); | 143 | Get.back(); |
@@ -207,53 +200,93 @@ void main() { | @@ -207,53 +200,93 @@ void main() { | ||
207 | expect(find.byType(FirstScreen), findsNothing); | 200 | expect(find.byType(FirstScreen), findsNothing); |
208 | }); | 201 | }); |
209 | 202 | ||
210 | - testWidgets("Get.offAndToNamed smoke test", (tester) async { | 203 | + testWidgets("Get.offAndToNamed navigates to provided route", (tester) async { |
211 | await tester.pumpWidget( | 204 | await tester.pumpWidget( |
212 | WrapperNamed( | 205 | WrapperNamed( |
213 | - initialRoute: '/', | 206 | + initialRoute: '/first', |
214 | namedRoutes: [ | 207 | namedRoutes: [ |
215 | - GetPage(page: () => Container(), name: '/'), | ||
216 | GetPage(page: () => FirstScreen(), name: '/first'), | 208 | GetPage(page: () => FirstScreen(), name: '/first'), |
217 | GetPage(page: () => SecondScreen(), name: '/second'), | 209 | GetPage(page: () => SecondScreen(), name: '/second'), |
218 | - GetPage(page: () => ThirdScreen(), name: '/third'), | 210 | + GetPage(page: () => ThirdScreen(), name: '/third') |
219 | ], | 211 | ], |
220 | ), | 212 | ), |
221 | ); | 213 | ); |
222 | 214 | ||
223 | - Get.toNamed('/first'); | 215 | + Get.offAndToNamed('/second'); |
224 | 216 | ||
225 | await tester.pumpAndSettle(); | 217 | await tester.pumpAndSettle(); |
226 | 218 | ||
227 | - expect(find.byType(FirstScreen), findsOneWidget); | 219 | + expect(find.byType(SecondScreen), findsOneWidget); |
220 | + }); | ||
221 | + | ||
222 | + testWidgets("Get.offAndToNamed removes previous route", (tester) async { | ||
223 | + await tester.pumpWidget( | ||
224 | + WrapperNamed( | ||
225 | + initialRoute: '/first', | ||
226 | + namedRoutes: [ | ||
227 | + GetPage(page: () => FirstScreen(), name: '/first'), | ||
228 | + GetPage(page: () => SecondScreen(), name: '/second'), | ||
229 | + GetPage(page: () => ThirdScreen(), name: '/third') | ||
230 | + ], | ||
231 | + ), | ||
232 | + ); | ||
228 | 233 | ||
229 | Get.offAndToNamed('/second'); | 234 | Get.offAndToNamed('/second'); |
235 | + Get.back(); | ||
230 | 236 | ||
231 | await tester.pumpAndSettle(); | 237 | await tester.pumpAndSettle(); |
232 | 238 | ||
233 | - expect(find.byType(SecondScreen), findsOneWidget); | 239 | + expect(find.byType(FirstScreen), findsNothing); |
234 | }); | 240 | }); |
235 | 241 | ||
236 | - testWidgets("Get.offUntil smoke test", (tester) async { | 242 | + testWidgets("Get.offUntil navigates to provided route", (tester) async { |
237 | await tester.pumpWidget( | 243 | await tester.pumpWidget( |
238 | Wrapper( | 244 | Wrapper( |
239 | - child: Container(), | 245 | + child: FirstScreen(), |
240 | ), | 246 | ), |
241 | ); | 247 | ); |
242 | 248 | ||
243 | - Get.to(FirstScreen()); | 249 | + Get.offUntil(GetPageRoute(page: () => ThirdScreen()), |
250 | + (route) => (route as GetPageRoute).routeName == '/FirstScreen'); | ||
244 | 251 | ||
245 | await tester.pumpAndSettle(); | 252 | await tester.pumpAndSettle(); |
246 | 253 | ||
247 | - Get.to(SecondScreen()); | 254 | + expect(find.byType(ThirdScreen), findsOneWidget); |
255 | + }); | ||
248 | 256 | ||
249 | - await tester.pumpAndSettle(); | 257 | + testWidgets( |
258 | + "Get.offUntil removes previous routes if they don't match predicate", | ||
259 | + (tester) async { | ||
260 | + await tester.pumpWidget( | ||
261 | + Wrapper( | ||
262 | + child: Container(), | ||
263 | + ), | ||
264 | + ); | ||
250 | 265 | ||
266 | + Get.to(FirstScreen()); | ||
267 | + Get.to(SecondScreen()); | ||
251 | Get.offUntil(GetPageRoute(page: () => ThirdScreen()), | 268 | Get.offUntil(GetPageRoute(page: () => ThirdScreen()), |
252 | (route) => (route as GetPageRoute).routeName == '/FirstScreen'); | 269 | (route) => (route as GetPageRoute).routeName == '/FirstScreen'); |
270 | + Get.back(); | ||
253 | 271 | ||
254 | await tester.pumpAndSettle(); | 272 | await tester.pumpAndSettle(); |
255 | 273 | ||
256 | - expect(find.byType(ThirdScreen), findsOneWidget); | 274 | + expect(find.byType(SecondScreen), findsNothing); |
275 | + }); | ||
276 | + | ||
277 | + testWidgets( | ||
278 | + "Get.offUntil leaves previous routes that match provided predicate", | ||
279 | + (tester) async { | ||
280 | + await tester.pumpWidget( | ||
281 | + Wrapper( | ||
282 | + child: Container(), | ||
283 | + ), | ||
284 | + ); | ||
285 | + | ||
286 | + Get.to(FirstScreen()); | ||
287 | + Get.to(SecondScreen()); | ||
288 | + Get.offUntil(GetPageRoute(page: () => ThirdScreen()), | ||
289 | + (route) => (route as GetPageRoute).routeName == '/FirstScreen'); | ||
257 | Get.back(); | 290 | Get.back(); |
258 | 291 | ||
259 | await tester.pumpAndSettle(); | 292 | await tester.pumpAndSettle(); |
-
Please register or login to post a comment