#!perl -w use strict; use Test::More; use t::lib::TTSimple; use Text::Xslate::Util qw(p); my @data = ( [<<'T', <<'X'], [% SET i = 0 -%] [% WHILE i < 3 -%] [% i %] [% i = i + 1 -%] [% END -%] T 0 1 2 X [<<'T', <<'X'], [% SET i = 0 -%] [% WHILE i < 3 -%] [% SET j = 10 -%] [% WHILE j < 12 -%] [% i %]-[% j %] [% j = j + 1 -%] [% END -%] [% i = i + 1 -%] [% END -%] T 0-10 0-11 1-10 1-11 2-10 2-11 X [<<'T', <<'X'], [% set i = 0 -%] [% while i < 3 -%] [% i %] [% i = i + 1 -%] [% end -%] T 0 1 2 X [<<'T', <<'X'], [% set i = 0 -%] [% while !(i == 3) -%] [% i %] [% i = i + 1 -%] [% end -%] T 0 1 2 X [<<'T', <<'X'], [% set i = 0 -%] [% while !!!(i == 3) -%] [% i %] [% i = i + 1 -%] [% end -%] T 0 1 2 X [<<'T', <<'X'], [% set i = 0 -%] [% while not(i == 3) -%] [% i %] [% i = i + 1 -%] [% end -%] T 0 1 2 X ); my %vars = (lang => 'Xslate', foo => '', '$lang' => 'XXX'); foreach my $d(@data) { my($in, $out, $msg) = @$d; is join(' ', split ' ', render_str($in, \%vars)), join(' ', split ' ', $out), $msg or diag $in; } done_testing;