X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=t%2Funicode_plugin_no_encoding.t;h=feed6810c8a7340c868b594b71824a6bf8387cb4;hp=5d0dfe33ac7702fab2ddc20d610c68b58db4f46c;hb=ca6d4ff660abd0bc8cd2e6590a5d8c76a5cae64a;hpb=4fb27043578a31f1ffd7498d1097c817a932d173 diff --git a/t/unicode_plugin_no_encoding.t b/t/unicode_plugin_no_encoding.t index 5d0dfe3..feed681 100644 --- a/t/unicode_plugin_no_encoding.t +++ b/t/unicode_plugin_no_encoding.t @@ -1,5 +1,3 @@ -#!/usr/bin/env perl - use strict; use warnings; use Test::More; @@ -14,24 +12,39 @@ use Encode; use HTTP::Request::Common; use URI::Escape qw/uri_escape_utf8/; use HTTP::Status 'is_server_error'; +use Data::Dumper; my $encode_str = "\x{e3}\x{81}\x{82}"; # e38182 is japanese 'あ' my $decode_str = Encode::decode('utf-8' => $encode_str); my $escape_str = uri_escape_utf8($decode_str); -check_parameter(GET "/?myparam=$escape_str"); +# JNAP - I am removing this test case because I think its not correct. I think +# we do not check the server encoding to determine if the parts of a request URL +# both paths and query should be decoded. I think its always safe to assume utf8 +# encoded urlencoded bits. That is my reading of the spec. Please correct me if +# I am wrong +#check_parameter(GET "/?myparam=$escape_str"); +check_parameter(POST '/', + Content_Type => 'form-data', + Content => [ + 'myparam' => [ + "$Bin/unicode_plugin_no_encoding.t", + "$Bin/unicode_plugin_request_decode.t", + ] + ], +); sub check_parameter { my ( undef, $c ) = ctx_request(shift); - is $c->res->output => $encode_str; my $myparam = $c->req->param('myparam'); - ok !utf8::is_utf8($myparam); - is $myparam => $encode_str; + unless ( $c->request->method eq 'POST' ) { + is $c->res->output => $encode_str; + is $myparam => $encode_str; + } - is scalar(@TestLogger::ELOGS), 2 + is scalar(@TestLogger::ELOGS), 0 or diag Dumper(\@TestLogger::ELOGS); - like $TestLogger::ELOGS[0], qr/method \"decode\"/; } done_testing;