Hitalo de Jesus do Rosário Souza
Committed by GitHub

Merge pull request #2 from enghitalo/master

new syntax, new tests. Project is done
... ... @@ -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>
... ...
... ... @@ -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');
},
);
}
... ...