File: 05-file.t

package info (click to toggle)
libtext-micromason-perl 2.13-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 624 kB
  • ctags: 180
  • sloc: perl: 3,222; makefile: 23
file content (58 lines) | stat: -rw-r--r-- 1,614 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/usr/bin/perl -w

use strict;
use Test::More tests => 12;

use_ok 'Text::MicroMason';

ok my $m = Text::MicroMason->new( -CatchErrors );

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

FILE: {
    like $m->execute( file=>'samples/test.msn', name=>'Sam', hour => 14),
        qr/\QGood afternoon, Sam!\E/;
}

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

TAG: {
    my $scr_hello = "<& 'samples/test-recur.msn', name => 'Dave' &>";
    my $res_hello = "Test greeting:\n" . 'Good afternoon, Dave!' . "\n";
    is $m->execute(text=>$scr_hello), $res_hello;
}

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

SYNTAX: {
    my $script = <<'TEXT_END';

<%perl>
  my $hour = $ARGS{hour};
</%perl> xx
% if ( $ARGS{name} eq 'Dave' and $hour > 22 ) {
  I'm sorry <% $ARGS{name} %>, I'm afraid I can't do that right now.
% } else {
  <& 'samples/test.msn', name => $ARGS{name}, hour => $hour &>
% }
TEXT_END

    ok my $code = $m->compile(text => $script);
    ok my ( $output, $error ) = $m->execute( code=>$code, name => 'Sam', hour => 9);

    like $output, qr/\QGood morning, Sam!\E/;
    is $error, '';
    like $m->execute( code=>$code, name => 'Dave', hour => 23), 
        qr/\Qsorry Dave\E/;
}

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

HANDLE: {
    ok open my $TEST, '<', 'samples/test.msn';
    ok my $output = $m->execute( handle => $TEST, name=>'Sam', hour => 14);
    close $TEST;
    like $output, qr/\QGood afternoon, Sam!\E/;
}

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