/xt/params.t

http://github.com/gshank/html-formhandler · Raku · 85 lines · 69 code · 16 blank · 0 comment · 0 complexity · 5e17d67dd7d7f2d1aabd88223e2360f3 MD5 · raw file

  1. use Test::More tests => 6;
  2. use_ok( 'HTML::FormHandler::Params' );
  3. my $_params = HTML::FormHandler::Params->new;
  4. my $p1 = {
  5. 'book.author' => 'J.Doe',
  6. 'book.title' => 'Doing something',
  7. 'book.date' => '2002',
  8. };
  9. my $p1_exp = $_params->expand_hash( $p1 );
  10. is_deeply( $p1_exp, { book => { author => 'J.Doe',
  11. title => 'Doing something',
  12. date => '2002' } }, 'get expanded has' );
  13. my $p2 = {
  14. 'books.0.author' => 'Jane Doe',
  15. 'books.0.title' => 'Janes Book',
  16. 'books.0.date' => '2003',
  17. 'books.1.author' => 'Miss Muffet',
  18. 'books.1.title' => 'Sitting on a Tuffet',
  19. 'books.1.date' => '2004'
  20. };
  21. my $p_hash = {
  22. books => [
  23. { author => 'Jane Doe',
  24. title => 'Janes Book',
  25. date => '2003',
  26. },
  27. {
  28. author => 'Miss Muffet',
  29. title => 'Sitting on a Tuffet',
  30. date => '2004',
  31. }
  32. ]
  33. };
  34. my $p2_exp = $_params->expand_hash( $p2 );
  35. is_deeply( $p2_exp, $p_hash, 'get expanded hash for dot notation' );
  36. my $p3 = {
  37. 'books+0+author' => 'Jane Doe',
  38. 'books+0+title' => 'Janes Book',
  39. 'books+0+date' => '2003',
  40. 'books+1+author' => 'Miss Muffet',
  41. 'books+1+title' => 'Sitting on a Tuffet',
  42. 'books+1+date' => '2004'
  43. };
  44. my $p3_exp = $_params->expand_hash( $p3, '+' );
  45. is_deeply( $p3_exp, $p_hash, 'get expanded hash for plus notation' );
  46. my $p4 = {
  47. 'books[0]author' => 'Jane Doe',
  48. 'books[0]title' => 'Janes Book',
  49. 'books[0]date' => '2003',
  50. 'books[1]author' => 'Miss Muffet',
  51. 'books[1]title' => 'Sitting on a Tuffet',
  52. 'books[1]date' => '2004'
  53. };
  54. my $p4_exp = $_params->expand_hash( $p4, '[]' );
  55. is_deeply( $p4_exp, $p_hash, 'get expanded hash for bracket notation' );
  56. my $p5 = {
  57. 'book.author' => 'Jane Doe',
  58. 'book.title' => 'Janes Book',
  59. 'book.date' => '2003',
  60. };
  61. my $p5_hash = {
  62. book =>
  63. { author => 'Jane Doe',
  64. title => 'Janes Book',
  65. date => '2003',
  66. },
  67. };
  68. my $p5_exp = $_params->expand_hash( $p5 );
  69. is_deeply( $p5_exp, $p5_hash, 'get hash from single brackets');