Committed by
GitHub
Merge pull request #2 from enghitalo/master
new syntax, new tests. Project is done
Showing
2 changed files
with
47 additions
and
12 deletions
@@ -541,25 +541,24 @@ extension GetNavigation on GetInterface { | @@ -541,25 +541,24 @@ extension GetNavigation on GetInterface { | ||
541 | String page, { | 541 | String page, { |
542 | dynamic arguments, | 542 | dynamic arguments, |
543 | int id, | 543 | int id, |
544 | + Map<String, String> parameters, | ||
544 | bool preventDuplicates = true, | 545 | bool preventDuplicates = true, |
545 | }) { | 546 | }) { |
546 | - Get.parameters.forEach((key, value) async { | ||
547 | - if (await page.contains('?')) { | ||
548 | - page = "$page${"&$key=$value"}"; | 547 | + Get.parameters = ({}); |
548 | + if (parameters != null) { | ||
549 | + for (var item in parameters.keys) { | ||
550 | + if (page.contains('?')) { | ||
551 | + page += "&$item=${parameters[item]}"; | ||
549 | } else { | 552 | } else { |
550 | - page = "$page${"?$key=$value"}"; | 553 | + page += "?$item=${parameters[item]}"; |
551 | } | 554 | } |
552 | - }); | 555 | + } |
556 | + } | ||
557 | + | ||
553 | if (preventDuplicates && page == currentRoute) { | 558 | if (preventDuplicates && page == currentRoute) { |
554 | return null; | 559 | return null; |
555 | } | 560 | } |
556 | - // Get.parameters.clear(); | ||
557 | - return global(id) | ||
558 | - ?.currentState | ||
559 | - ?.pushNamed<T>(page, arguments: arguments) | ||
560 | - ?.then((_) { | ||
561 | - Get.parameters.clear(); | ||
562 | - }); | 561 | + return global(id)?.currentState?.pushNamed<T>(page, arguments: arguments); |
563 | } | 562 | } |
564 | 563 | ||
565 | /// **Navigation.pushReplacementNamed()** shortcut.<br><br> | 564 | /// **Navigation.pushReplacementNamed()** shortcut.<br><br> |
@@ -87,4 +87,40 @@ void main() { | @@ -87,4 +87,40 @@ void main() { | ||
87 | expect(Get.parameters['name'], 'ana'); | 87 | expect(Get.parameters['name'], 'ana'); |
88 | }, | 88 | }, |
89 | ); | 89 | ); |
90 | + | ||
91 | + testWidgets( | ||
92 | + 'params in url by parameters', | ||
93 | + (tester) async { | ||
94 | + print("Iniciando test"); | ||
95 | + await tester.pumpWidget(GetMaterialApp( | ||
96 | + initialRoute: '/first/juan', | ||
97 | + getPages: [ | ||
98 | + GetPage(page: () => Container(), name: '/buda'), | ||
99 | + GetPage(page: () => Container(), name: '/italy'), | ||
100 | + ], | ||
101 | + )); | ||
102 | + | ||
103 | + // Get.parameters = ({"varginias": "varginia", "vinis": "viniiss"}); | ||
104 | + var parameters = <String, String>{ | ||
105 | + "varginias": "varginia", | ||
106 | + "vinis": "viniiss" | ||
107 | + }; | ||
108 | + // print("Get.parameters: ${Get.parameters}"); | ||
109 | + parameters.addAll({"a": "b", "c": "d"}); | ||
110 | + Get.toNamed("/buda", parameters: parameters); | ||
111 | + | ||
112 | + await tester.pumpAndSettle(); | ||
113 | + expect(Get.parameters['varginias'], 'varginia'); | ||
114 | + expect(Get.parameters['vinis'], 'viniiss'); | ||
115 | + expect(Get.parameters['a'], 'b'); | ||
116 | + expect(Get.parameters['c'], 'd'); | ||
117 | + | ||
118 | + Map<String, String> italyParameters; | ||
119 | + italyParameters = {"ja": "ca", "que": "i"}; | ||
120 | + Get.toNamed("/italy", parameters: italyParameters); | ||
121 | + await tester.pumpAndSettle(); | ||
122 | + expect(Get.parameters['ja'], 'ca'); | ||
123 | + expect(Get.parameters['que'], 'i'); | ||
124 | + }, | ||
125 | + ); | ||
90 | } | 126 | } |
-
Please register or login to post a comment