Commit | Line | Data |
4fb27043 |
1 | use strict; |
2 | use warnings; |
3 | use Test::More; |
4 | use utf8; |
5 | |
6 | # setup library path |
7 | use FindBin qw($Bin); |
8 | use lib "$Bin/lib"; |
9 | |
10 | use Catalyst::Test 'TestAppWithoutUnicode'; |
11 | use Encode; |
12 | use HTTP::Request::Common; |
13 | use URI::Escape qw/uri_escape_utf8/; |
14 | use HTTP::Status 'is_server_error'; |
1a87d45c |
15 | use Data::Dumper; |
4fb27043 |
16 | |
17 | my $encode_str = "\x{e3}\x{81}\x{82}"; # e38182 is japanese 'あ' |
18 | my $decode_str = Encode::decode('utf-8' => $encode_str); |
19 | my $escape_str = uri_escape_utf8($decode_str); |
20 | |
21 | check_parameter(GET "/?myparam=$escape_str"); |
a6a3355f |
22 | check_parameter(POST '/', |
23 | Content_Type => 'form-data', |
24 | Content => [ |
25 | 'myparam' => [ |
26 | "$Bin/unicode_plugin_no_encoding.t", |
27 | "$Bin/unicode_plugin_request_decode.t", |
28 | ] |
29 | ], |
30 | ); |
4fb27043 |
31 | |
32 | sub check_parameter { |
33 | my ( undef, $c ) = ctx_request(shift); |
4fb27043 |
34 | |
35 | my $myparam = $c->req->param('myparam'); |
36 | ok !utf8::is_utf8($myparam); |
a6a3355f |
37 | unless ( $c->request->method eq 'POST' ) { |
38 | is $c->res->output => $encode_str; |
39 | is $myparam => $encode_str; |
40 | } |
4fb27043 |
41 | |
1a87d45c |
42 | is scalar(@TestLogger::ELOGS), 0 |
4fb27043 |
43 | or diag Dumper(\@TestLogger::ELOGS); |
4fb27043 |
44 | } |
45 | |
46 | done_testing; |