File: utf8.t

package info (click to toggle)
perl 5.20.2-3%2Bdeb8u11
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 102,964 kB
  • sloc: perl: 555,553; ansic: 214,041; sh: 38,121; pascal: 8,783; cpp: 3,895; makefile: 2,393; xml: 2,325; yacc: 1,741
file content (34 lines) | stat: -rw-r--r-- 721 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!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';