#! /usr/bin/env perl # -*- perl -*-
use
JSON 2
qw(decode_json)
;
my
$vars
= {
data
=> {
foo
=> 1,
bar
=> 2,
baz
=> 3
}
};
my
$tt
= Template->new;
my
(
$json
,
$newlines
,
$round_trip
,
$template
);
$template
=
<<EOF;
[%- USE q = Qgoda -%]
[%- q.encodeJSON(data) -%]
EOF
ok
$tt
->process(\
$template
,
$vars
, \
$json
);
ok
$json
;
$round_trip
= decode_json(
$json
);
ok
ref
$round_trip
;
is
$round_trip
->{foo}, 1;
is
$round_trip
->{bar}, 2;
is
$round_trip
->{baz}, 3;
$newlines
=
$json
=~ y/\n/\n/;
is
$newlines
, 0;
$json
=
''
;
$template
=
<<EOF;
[%- USE q = Qgoda -%]
[%- q.encodeJSON(data, 'pretty', 'canonical') -%]
EOF
ok
$tt
->process(\
$template
,
$vars
, \
$json
);
$json
=~ s{[ \t]+}{}g;
my
$expected
=
<<EOF;
{
"bar":2,
"baz":3,
"foo":1
}
EOF
is
$json
,
$expected
;
$json
=
''
;
$template
=
<<EOF;
[%- USE q = Qgoda -%]
[%- q.encodeJSON(data, 'pretty', 'canonical', '-pretty') -%]
EOF
ok
$tt
->process(\
$template
,
$vars
, \
$json
);
$json
=~ s{[ \t]+}{}g;
my
$expected
=
'{"bar":2,"baz":3,"foo":1}'
;
is
$json
,
$expected
;
done_testing();