File: run.t

package info (click to toggle)
libpandoc-wrapper-perl 0.9.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 304 kB
  • sloc: perl: 589; makefile: 5; sh: 1
file content (75 lines) | stat: -rw-r--r-- 2,312 bytes parent folder | download | duplicates (3)
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;