simple param parser
[catagits/Web-Simple.git] / t / param_parser.t
diff --git a/t/param_parser.t b/t/param_parser.t
new file mode 100644 (file)
index 0000000..b6c0f71
--- /dev/null
@@ -0,0 +1,41 @@
+use strict;
+use warnings FATAL => 'all';
+
+use Test::More qw(no_plan);
+
+use Web::Simple::ParamParser;
+
+use Data::Dumper::Concise;
+
+my $param_sample = 'foo=bar&baz=quux&foo=%2F';
+my $unpacked = {
+  baz => [
+    "quux"
+  ],
+  foo => [
+    "bar",
+    "/"
+  ]
+};
+
+is_deeply(
+  Web::Simple::ParamParser::_unpack_params('foo=bar&baz=quux&foo=%2F'),
+  $unpacked,
+  'Simple unpack ok'
+);
+
+my $env = { 'QUERY_STRING' => $param_sample };
+
+is_deeply(
+  Web::Simple::ParamParser::get_unpacked_query_from($env),
+  $unpacked,
+  'Dynamic unpack ok'
+);
+
+is_deeply(
+  $env->{+Web::Simple::ParamParser::UNPACKED_QUERY},
+  $unpacked,
+  'Unpack cached ok'
+);
+
+1;