1#!perl
2
3use utf8;
4use strict;
5use warnings;
6use Test::More;
7use Encode;
8use File::Temp;
9
10# Non-CORE module(s)
11unless (eval { require Test::More::UTF8; 1; } ) {
12    plan skip_all => '[ Test::More::UTF8 ] is required for testing';
13}
14
15plan tests => 3;
16
17use_ok 'Text::Template' or exit 1;
18
19my $tmp_fh = File::Temp->new;
20
21print $tmp_fh encode('UTF-8', "\x{4f60}\x{597d} {{\$name}}");
22
23$tmp_fh->flush;
24
25# UTF-8 encoded template file
26my $str = Text::Template->new(
27    TYPE     => 'FILE',
28    SOURCE   => $tmp_fh->filename,
29    ENCODING => 'UTF-8'
30)->fill_in(HASH => { name => 'World' });
31
32is $str, "\x{4f60}\x{597d} World";
33
34$tmp_fh = File::Temp->new;
35
36print $tmp_fh encode('iso-8859-1', "Ol\x{e1} {{\$name}}");
37
38$tmp_fh->flush;
39
40# ISO-8859-1 encoded template file
41$str = Text::Template->new(
42    TYPE     => 'FILE',
43    SOURCE   => $tmp_fh->filename,
44    ENCODING => 'iso-8859-1'
45)->fill_in(HASH => { name => 'World' });
46
47is $str, "Ol\x{e1} World";
48