parser_test.dart 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /*
  2. * fluro
  3. * Created by Yakka
  4. * https://theyakka.com
  5. *
  6. * Copyright (c) 2018 Yakka, LLC. All rights reserved.
  7. * See LICENSE for distribution and usage details.
  8. */
  9. import 'package:flutter_test/flutter_test.dart';
  10. import 'package:fluro/fluro.dart';
  11. void main() {
  12. testWidgets("Router correctly parses named parameters",
  13. (WidgetTester tester) async {
  14. String path = "/users/1234";
  15. String route = "/users/:id";
  16. Router router = new Router();
  17. router.define(route, handler: null);
  18. AppRouteMatch match = router.match(path);
  19. expect(
  20. match?.parameters,
  21. equals(<String, List<String>>{
  22. "id": ["1234"],
  23. }));
  24. });
  25. testWidgets("Router correctly parses named parameters with query",
  26. (WidgetTester tester) async {
  27. String path = "/users/1234?name=luke";
  28. String route = "/users/:id";
  29. Router router = new Router();
  30. router.define(route, handler: null);
  31. AppRouteMatch match = router.match(path);
  32. expect(
  33. match?.parameters,
  34. equals(<String, List<String>>{
  35. "id": ["1234"],
  36. "name": ["luke"],
  37. }));
  38. });
  39. testWidgets("Router correctly parses query parameters",
  40. (WidgetTester tester) async {
  41. String path = "/users/create?name=luke&phrase=hello%20world&number=7";
  42. String route = "/users/create";
  43. Router router = new Router();
  44. router.define(route, handler: null);
  45. AppRouteMatch match = router.match(path);
  46. expect(
  47. match?.parameters,
  48. equals(<String, List<String>>{
  49. "name": ["luke"],
  50. "phrase": ["hello world"],
  51. "number": ["7"],
  52. }));
  53. });
  54. testWidgets("Router correctly parses array parameters",
  55. (WidgetTester tester) async {
  56. String path =
  57. "/users/create?name=luke&phrase=hello%20world&number=7&number=10&number=13";
  58. String route = "/users/create";
  59. Router router = new Router();
  60. router.define(route, handler: null);
  61. AppRouteMatch match = router.match(path);
  62. expect(
  63. match?.parameters,
  64. equals(<String, List<String>>{
  65. "name": ["luke"],
  66. "phrase": ["hello world"],
  67. "number": ["7", "10", "13"],
  68. }));
  69. });
  70. }