diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2015-07-19 17:50:38 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2015-07-19 17:50:38 +0000 |
commit | d403562e3f7ac96df7cee2c1709ecd970b6c9761 (patch) | |
tree | 0c8ec1bc7a6e0bf408a0e183b52ef7de174cde9a /t/message-decode-xml.t | |
download | HTTP-Message-tarball-master.tar.gz |
HTTP-Message-6.10HEADHTTP-Message-6.10master
Diffstat (limited to 't/message-decode-xml.t')
-rw-r--r-- | t/message-decode-xml.t | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/t/message-decode-xml.t b/t/message-decode-xml.t new file mode 100644 index 0000000..0bf7626 --- /dev/null +++ b/t/message-decode-xml.t @@ -0,0 +1,33 @@ +# https://rt.cpan.org/Public/Bug/Display.html?id=52572 + +use strict; +use warnings; + +use Test::More; +plan tests => 2; + +use Encode qw( encode ); +use HTTP::Headers qw( ); +use HTTP::Response qw( ); +use PerlIO::encoding qw( ); + +{ + my $builder = Test::More->builder; + local $PerlIO::encoding::fallback = Encode::PERLQQ(); + binmode $builder->output, ":encoding(US-ASCII)"; + binmode $builder->failure_output, ":encoding(US-ASCII)"; + binmode $builder->todo_output, ":encoding(US-ASCII)"; +} + +for my $enc (qw( UTF-8 UTF-16le )) { + my $file = encode($enc, + ($enc =~ /^UTF-/ ? "\x{FEFF}" : "") . + qq{<?xml version="1.0" encoding="$enc"?>\n} . + qq{<root>\x{C9}ric</root>\n} + ); + + my $headers = HTTP::Headers->new(Content_Type => "application/xml"); + my $response = HTTP::Response->new(200, "OK", $headers, $file); + + is($response->decoded_content, qq(<?xml version="1.0"?>\n<root>\x{c9}ric</root>\n), $enc); +} |