#!perl -T
use strict;
use warnings;
use utf8;
use Test::More tests => 7;
use Encode;
use_ok( 'CGI' );
ok( my $q = CGI->new, 'create a new CGI object' );
{
no warnings qw/ once /;
$CGI::PARAM_UTF8 = 1;
}
my $data = 'áéíóúµ';
ok Encode::is_utf8($data), "created UTF-8 encoded data string";
# now set the param.
$q->param(data => $data);
# if param() runs the data through Encode::decode(), this will fail.
is $q->param('data'), $data;
# make sure setting bytes decodes properly
my $bytes = Encode::encode(utf8 => $data);
ok !Encode::is_utf8($bytes), "converted UTF-8 to bytes";
$q->param(data => $bytes);
is $q->param('data'), $data;
ok Encode::is_utf8($q->param('data')), 'param() decoded UTF-8';