#!perl -w
use strict;
use Test::More;
use Text::Clevery;
use Text::Clevery::Parser;
my $tc = Text::Clevery->new(verbose => 2);
my @set = (
[<<'T', { opts => [ [1800, 'Joe'], [9904, 'Jack'] ], sel => 9904 }, <<'X'],
{html_options name=foo options=$opts selected=$sel}
T
X
[<<'T', { ids => [100, 101], names => ['Joe', 'Jack'], sel => 101 }, <<'X'],
{html_options name=foo values=$ids output=$names selected=$sel}
T
X
[<<'T', { ids => [100, 101], names => ['Joe', 'Jack'], sel => 101 }, <<'X'],
T
X
[<<'T', { grp => { sport => { 1 => 'golf', 2 => 'swim' }, rest => { 3 => 'sauna', 4 => 'massage' } }, , sel => 2 }, <<'X'],
{html_options name=foo options=$grp selected=$sel}
T
X
[<<'T', { ids => [qw(<100> <101>)], names => [qw( )], sel => '<101>' }, <<'X', 'escape html'],
{html_options name="foo" values=$ids output=$names selected=$sel}
T
X
);
for my $d(@set) {
my($source, $vars, $expected, $msg) = @{$d};
is eval { $tc->render_string($source, $vars) }, $expected, $msg
or do { ($@ && diag $@); diag $source };
}
done_testing;