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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
use strict;
use Test::More 0.96; # for subtests
use Test::Exception;
use Pandoc;
plan skip_all => 'pandoc executable required' unless pandoc;
my $args = ['-t' => 'markdown'];
subtest 'pandoc( ... )' => sub {
my ($html, $md);
is pandoc({ in => \'*.*', out => \$html }), 0, 'pandoc({in =>..., out=>...}';
is $html, "<p><em>.</em></p>\n", 'markdown => html';
## no critic
pandoc -f => 'html', -t => 'markdown', { in => \$html, out => \$md };
like $md, qr/^\*\.\*/, 'html => markdown';
};
subtest 'run(@args, \%opts)' => sub {
my $in = 'foo';
my %opts = ( in => \$in, out => \my($out), err => \my($err) );
lives_ok { pandoc->run( @$args, \%opts ) }, 'run';
like $out, qr!^\s*foo\s*$!, 'stdout';
note $out;
is $err //= "", "", 'stderr';
lives_ok { pandoc->run( 'README.md', \%opts ) }, 'run with filename';
};
subtest '->run(\@args, \%opts)' => sub {
my $in = 'foo';
my %opts = ( in => \$in, out => \my($out), err => \my($err) );
lives_ok { pandoc->run( $args, \%opts ) }, 'run';
like $out, qr!^\s*foo\s*$!, 'stdout';
is $err //= "", "", 'stderr';
};
subtest '->run(\@args, %opts)' => sub {
my $in = 'foo';
my %opts = ( in => \$in, out => \my($out), err => \my($err) );
lives_ok { pandoc->run( $args, %opts ) }, 'run';
like $out, qr!^\s*foo\s*$!, 'stdout';
is $err //= "", "", 'stderr';
};
subtest '->run([], %opts)' => sub {
my $in = 'foo';
my %opts = ( in => \$in, out => \my($out), err => \my($err) );
lives_ok { pandoc->run( [], %opts ) }, 'run';
like $out, qr!<p>foo</p>!, 'stdout';
is $err //= "", "", 'stderr';
};
subtest 'run(%opts)' => sub {
my $out;
lives_ok { pandoc in => \"# hi", out => \$out };
is $out, "<h1 id=\"hi\">hi</h1>\n", 'run( %opts )';
};
subtest '->run(\@args, qw[odd length list])' => sub {
my $in = 'foo';
my %opts = ( in => \$in, out => \my($out), err => \my($err) );
throws_ok { pandoc->run( $args, %opts, 'foo' ) }
qr!^Too many or ambiguous arguments!, 'run';
};
subtest '->run(\@args, ..., \%opts)' => sub {
my $in = 'foo';
my %opts = ( in => \$in, out => \my($out), err => \my($err) );
throws_ok { pandoc->run( $args, qw[foo, bar], \%opts ) }
qr!^Too many or ambiguous arguments!, 'run';
};
done_testing;
|