fix for bug around evil query params and docs
[catagits/Catalyst-Runtime.git] / t / not_utf8_query_bug.t
diff --git a/t/not_utf8_query_bug.t b/t/not_utf8_query_bug.t
new file mode 100644 (file)
index 0000000..52578bc
--- /dev/null
@@ -0,0 +1,45 @@
+use utf8;
+use warnings;
+use strict;
+
+# For reported: https://rt.cpan.org/Ticket/Display.html?id=103063
+
+{
+  package MyApp::Controller::Root;
+  $INC{'MyApp/Controller/Root.pm'} = __FILE__;
+
+  use base 'Catalyst::Controller';
+
+  sub example :Local Args(0) {
+    pop->stash->{testing1} = 'testing2';
+  }
+
+  package MyApp;
+  use Catalyst;
+
+  #MyApp->config(decode_query_using_global_encoding=>1, encoding => 'SHIFT_JIS');
+  #MyApp->config(do_not_decode_query=>1);
+  #MyApp->config(decode_query_using_global_encoding=>1, encoding => undef);
+  MyApp->config(default_query_encoding=>'SHIFT_JIS');
+
+  MyApp->setup;
+}
+
+use Test::More;
+use Catalyst::Test 'MyApp';
+use Encode;
+use HTTP::Request::Common;
+
+{
+  my $shiftjs = 'test ใƒ†ใ‚นใƒˆ';
+  my $encoded = Encode::encode('SHIFT_JIS', $shiftjs);
+
+  ok my $req = GET "/root/example?a=$encoded";
+  my ($res, $c) = ctx_request $req;
+
+  is $c->req->query_parameters->{'a'}, $shiftjs, 'got expected value';
+}
+
+
+done_testing;
+