#!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;