From: Gianni Ceccarelli Date: Wed, 21 Jan 2015 17:13:00 +0000 (+0000) Subject: more comprehensive test for part_data X-Git-Tag: v1.20^0 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FHTTP-Body.git;a=commitdiff_plain;h=af65f6d38b74acbf2f621084b1968204a3e57af4 more comprehensive test for part_data --- diff --git a/t/10mixparamcontent.t b/t/10mixparamcontent.t index 88a09a4..726fe0b 100644 --- a/t/10mixparamcontent.t +++ b/t/10mixparamcontent.t @@ -3,6 +3,7 @@ use warnings; use strict; use Test::More; +use Test::Deep; use HTTP::Body; use HTTP::Request::Common; use Encode; @@ -11,8 +12,10 @@ use File::Spec::Functions; use File::Temp qw/ tempdir /; -my $utf8 = 'test ♥'; -my $shiftjs = 'test テスト'; +my $string_for_utf8 = 'test ♥'; +my $string_in_utf8 = Encode::encode('UTF-8',$string_for_utf8); +my $string_for_shiftjis = 'test テスト'; +my $string_in_shiftjis = Encode::encode('SHIFT_JIS',$string_for_shiftjis); my $path = File::Spec->catfile('t', 'utf8.txt'); ok my $req = POST '/root/echo_arg', @@ -22,15 +25,15 @@ ok my $req = POST '/root/echo_arg', arg1 => [ undef, '', 'Content-Type' =>'text/plain; charset=UTF-8', - 'Content' => Encode::encode('UTF-8', $utf8)], + 'Content' => $string_in_utf8, ], arg2 => [ undef, '', 'Content-Type' =>'text/plain; charset=SHIFT_JIS', - 'Content' => Encode::encode('SHIFT_JIS', $shiftjs)], + 'Content' => $string_in_shiftjis, ], arg2 => [ undef, '', 'Content-Type' =>'text/plain; charset=SHIFT_JIS', - 'Content' => Encode::encode('SHIFT_JIS', $shiftjs)], + 'Content' => $string_in_shiftjis, ], file => [ "$path", Encode::encode_utf8('♥ttachment.txt'), 'Content-Type' =>'text/html; charset=UTF-8' ], @@ -50,11 +53,53 @@ while ( $fh->read( my $buffer, 1024 ) ) { } is $body->param->{'arg0'}, 'helloworld'; -is Encode::decode('UTF-8', $body->param->{'arg1'}), $utf8; -is Encode::decode('SHIFT_JIS', $body->param->{'arg2'}[0]), $shiftjs; +is $body->param->{'arg1'}, $string_in_utf8; +is $body->param->{'arg2'}[0], $string_in_shiftjis; +is $body->param->{'arg2'}[1], $string_in_shiftjis; -is $body->part_data->{'arg0'}->{data}, 'helloworld'; -is Encode::decode('UTF-8', $body->part_data->{'arg1'}->{data}), $utf8; -is Encode::decode('SHIFT_JIS', $body->part_data->{'arg2'}[0]->{data}), $shiftjs; +cmp_deeply( + $body->part_data->{'arg0'}, + { + data => 'helloworld', + headers => { + 'Content-Disposition' => re(qr{^form-data\b}), + }, + done => 1, + name => 'arg0', + size => 10, + }, + 'arg0 part data correct', +); +cmp_deeply( + $body->part_data->{'arg1'}, + { + data => $string_in_utf8, + headers => { + 'Content-Disposition' => re(qr{^form-data\b}), + 'Content-Type' => 'text/plain; charset=UTF-8', + }, + done => 1, + name => 'arg1', + size => length($string_in_utf8), + }, + 'arg1 part data correct', +); + +cmp_deeply( + $body->part_data->{'arg2'}, + [ + ({ + data => $string_in_shiftjis, + headers => { + 'Content-Disposition' => re(qr{^form-data\b}), + 'Content-Type' => 'text/plain; charset=SHIFT_JIS', + }, + done => 1, + name => 'arg2', + size => length($string_in_shiftjis), + }) x 2, + ], + 'arg2 part data correct', +); done_testing;