Skip to content

Instantly share code, notes, and snippets.

@ingydotnet
Created September 23, 2010 15:55
Show Gist options
  • Save ingydotnet/593854 to your computer and use it in GitHub Desktop.
Save ingydotnet/593854 to your computer and use it in GitHub Desktop.
> cat yamlxs-tt2-utf8b.t
use strict;
use warnings;
use Test::More tests => 8;
use Template::Toolkit::Simple;
use YAML::XS;
use Encode;
my $template = <<'...';
Hello, [% name %]
...
my ($a, $b, $c);
{
use utf8;
my $data1 = { name => 'Ingy döt Net' };
my $data2 = YAML::XS::Load(encode "UTF-8", "name: Ingy döt Net\n");
my $render1 = tt->data($data1)->render(\$template);
my $render2 = tt->data($data2)->render(\$template);
is $render1, $render2, 'YAML::XS + TT2 + UTF8 == \o/';
is length($render1), length($render2), 'length matches';
$a = $render2;
}
{
my $data1 = { name => 'Ingy döt Net' };
$data1->{name} = decode "UTF-8", $data1->{name};
my $data2 = YAML::XS::Load("name: Ingy döt Net\n");
my $render1 = tt->data($data1)->render(\$template);
my $render2 = tt->data($data2)->render(\$template);
is $render1, $render2, 'YAML::XS + TT2 + UTF8 == \o/';
is length($render1), length($render2), 'length matches';
$b = $render2;
}
{
my $data1 = { name => 'Ingy döt Net' };
my $data2 = YAML::XS::Load("name: Ingy döt Net\n");
$data2->{name} = encode "UTF-8", $data2->{name};
my $render1 = tt->data($data1)->render(\$template);
my $render2 = tt->data($data2)->render(\$template);
is $render1, $render2, 'YAML::XS + TT2 + OCTETS == \o/';
is length($render1), length($render2), 'length matches';
$c = $render2;
}
is $a, $b, '$a == $b';
is $b, $c, '$b == $c';
> perl yamlxs-tt2-utf8b.t
1..8
ok 1 - YAML::XS + TT2 + UTF8 == \o/
ok 2 - length matches
ok 3 - YAML::XS + TT2 + UTF8 == \o/
ok 4 - length matches
ok 5 - YAML::XS + TT2 + OCTETS == \o/
ok 6 - length matches
ok 7 - $a == $b
not ok 8 - $b == $c
# Failed test '$b == $c'
# at yamlxs-tt2-utf8b.t line 52.
# got: 'Hello, Ingy d?t Net
# '
# expected: 'Hello, Ingy döt Net
# '
# Looks like you failed 1 test of 8.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment