The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w

use strict;
use Test;

BEGIN { plan tests => 9 }

my $loaded;
END { ok(0) unless $loaded; }

use Text::MicroMason qw( safe_compile safe_execute try_safe_compile try_safe_execute );

ok( $loaded = 1 );

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

my $scr_bold = '<b><% $ARGS{label} %></b>';
ok( safe_compile($scr_bold)->(label=>'Foo'), '<b>Foo</b>' );
ok( safe_execute($scr_bold, label=>'Foo'), '<b>Foo</b>' );
  
my $scr_time = 'The time is <% time() %>';
ok( ! try_safe_compile( $scr_time ) );
ok( ! try_safe_execute( $scr_time ) );

my $safe = Safe->new();
$safe->permit('time');
ok( try_safe_compile( $safe, $scr_time ) );
ok( try_safe_execute( $safe, $scr_time ) );
ok( safe_compile( $safe, $scr_time )->() );
ok( safe_execute( $safe, $scr_time ) );