The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl Synapse-Object.t'

#########################

# change 'tests => 1' to 'tests => last_test_to_print';

use lib ('../lib', './lib');
use Test::More;
BEGIN { use_ok('Petal::Tiny') };


my $data   = join '', <DATA>;
my $petal  = Petal::Tiny->new($data);
my $output = $petal->process(
    foo     => 'bar',
    content => 'CONTENT',
    dquote  => '"',
    squote  => "'",
    andamp  => "&",
    lesser  => "<",
    greate  => ">",
    list    => [ qw /foo bar baz buz/ ],
    count   => [ 1 .. 5 ],
);

like ($output, qr/\<plain i='am' un='touched'\/\>/);
like ($output, qr/\<define\s*\/\>/);
like ($output, qr/\<condition\s*\/\>/);
unlike ($output, qr/\<nogo\s*\/\>/);
like ($output, qr/\<repeat/);
like ($output, qr/\<repeat count="1"/);
like ($output, qr/\<repeat count="2"/);
like ($output, qr/\<repeat count="3"/);
like ($output, qr/\<repeat count="4"/);
like ($output, qr/\<repeat count="5"/);
unlike ($output, qr/\<replace\s*\/\>/);
like ($output, qr/CONTENT/);
like ($output, qr/\<content\>bar\<\/content\>/);
like ($output, qr/\<error\>something bad happened\<\/error\>/);

Test::More::done_testing();


__DATA__
<XML xmlns:tal="http://purl.org/petal/1.0/">
  <plain i='am' un='touched'/>
  <define tal:define="variable content; variable2 string:hello, world" />
  <condition tal:define="variable content; variable2 string:hello, world" tal:condition="true:variable" />
  <nogo tal:define="variable content; variable2 string:hello, world" tal:condition="false:variable" />
  <repeat tal:attributes="count count" tal:define="variable content; variable2 string:hello, world" tal:condition="true:variable" tal:repeat="count count" />
  <replace tal:replace="content" />
  <content tal:content="foo" />
  <error tal:content="foo/bar/baz" tal:on-error="string:something bad happened" />
</XML>