Skip to content

Commit

Permalink
Merge pull request #2 from enghitalo/master
Browse files Browse the repository at this point in the history
new syntax, new tests. Project is done
  • Loading branch information
enghitalo authored Feb 12, 2021
2 parents 55ab721 + 3f24cc4 commit 1281f0f
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 13 deletions.
25 changes: 12 additions & 13 deletions lib/get_navigation/src/extension_navigation.dart
Original file line number Diff line number Diff line change
Expand Up @@ -541,25 +541,24 @@ extension GetNavigation on GetInterface {
String page, {
dynamic arguments,
int id,
Map<String, String> parameters,
bool preventDuplicates = true,
}) {
Get.parameters.forEach((key, value) async {
if (await page.contains('?')) {
page = "$page${"&$key=$value"}";
} else {
page = "$page${"?$key=$value"}";
Get.parameters = ({});
if (parameters != null) {
for (var item in parameters.keys) {
if (page.contains('?')) {
page += "&$item=${parameters[item]}";
} else {
page += "?$item=${parameters[item]}";
}
}
});
}

if (preventDuplicates && page == currentRoute) {
return null;
}
// Get.parameters.clear();
return global(id)
?.currentState
?.pushNamed<T>(page, arguments: arguments)
?.then((_) {
Get.parameters.clear();
});
return global(id)?.currentState?.pushNamed<T>(page, arguments: arguments);
}

/// **Navigation.pushReplacementNamed()** shortcut.<br><br>
Expand Down
36 changes: 36 additions & 0 deletions test/navigation/parse_route_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -87,4 +87,40 @@ void main() {
expect(Get.parameters['name'], 'ana');
},
);

testWidgets(
'params in url by parameters',
(tester) async {
print("Iniciando test");
await tester.pumpWidget(GetMaterialApp(
initialRoute: '/first/juan',
getPages: [
GetPage(page: () => Container(), name: '/buda'),
GetPage(page: () => Container(), name: '/italy'),
],
));

// Get.parameters = ({"varginias": "varginia", "vinis": "viniiss"});
var parameters = <String, String>{
"varginias": "varginia",
"vinis": "viniiss"
};
// print("Get.parameters: ${Get.parameters}");
parameters.addAll({"a": "b", "c": "d"});
Get.toNamed("/buda", parameters: parameters);

await tester.pumpAndSettle();
expect(Get.parameters['varginias'], 'varginia');
expect(Get.parameters['vinis'], 'viniiss');
expect(Get.parameters['a'], 'b');
expect(Get.parameters['c'], 'd');

Map<String, String> italyParameters;
italyParameters = {"ja": "ca", "que": "i"};
Get.toNamed("/italy", parameters: italyParameters);
await tester.pumpAndSettle();
expect(Get.parameters['ja'], 'ca');
expect(Get.parameters['que'], 'i');
},
);
}

0 comments on commit 1281f0f

Please sign in to comment.