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