~ubuntu-branches/debian/sid/libpandoc-wrapper-perl/sid

« back to all changes in this revision

Viewing changes to t/run.t

  • Committer: Package Import Robot
  • Author(s): Jonas Smedegaard
  • Date: 2017-03-29 18:16:34 UTC
  • Revision ID: package-import@ubuntu.com-20170329181634-oyx1tvs2gyoe6210
Tags: upstream-0.6.0
ImportĀ upstreamĀ versionĀ 0.6.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
use strict;
 
2
use Test::More 0.96; # for subtests
 
3
use Test::Exception;
 
4
use Pandoc;
 
5
 
 
6
plan skip_all => 'pandoc executable required' unless pandoc;
 
7
# XXX: does Test::More/IPC::Run3 lack write permissions?
 
8
 
 
9
my $args = ['-t' => 'markdown'];
 
10
 
 
11
subtest 'pandoc( ... )' => sub {
 
12
    my ($html, $md);
 
13
    is pandoc({ in => \'*.*', out => \$html }), 0, 'pandoc({in =>..., out=>...}';
 
14
    is $html, "<p><em>.</em></p>\n", 'markdown => html';
 
15
 
 
16
    ## no critic
 
17
    pandoc -f => 'html', -t => 'markdown', { in => \$html, out => \$md };
 
18
    like $md, qr/^\*\.\*/, 'html => markdown';
 
19
};
 
20
 
 
21
subtest 'run(@args, \%opts)' => sub {
 
22
    my $in = 'foo';
 
23
    my %opts = ( in => \$in, out => \my($out), err => \my($err) );
 
24
    lives_ok { pandoc->run( @$args, \%opts ) }, 'run';
 
25
    like $out, qr!^\s*foo\s*$!, 'stdout';
 
26
    note $out;
 
27
    is $err //= "", "", 'stderr';
 
28
 
 
29
    lives_ok { pandoc->run( 'README.md', \%opts ) }, 'run with filename';
 
30
};
 
31
 
 
32
subtest '->run(\@args, \%opts)' => sub {
 
33
    my $in = 'foo';
 
34
    my %opts = ( in => \$in, out => \my($out), err => \my($err) );
 
35
    lives_ok { pandoc->run( $args, \%opts ) }, 'run';
 
36
    like $out, qr!^\s*foo\s*$!, 'stdout';
 
37
    is $err //= "", "", 'stderr';
 
38
};
 
39
 
 
40
subtest '->run(\@args, %opts)' => sub {
 
41
    my $in = 'foo';
 
42
    my %opts = ( in => \$in, out => \my($out), err => \my($err) );
 
43
    lives_ok { pandoc->run( $args, %opts ) }, 'run';
 
44
    like $out, qr!^\s*foo\s*$!, 'stdout';
 
45
    is $err //= "", "", 'stderr';
 
46
};
 
47
 
 
48
subtest '->run([], %opts)' => sub {
 
49
    my $in = 'foo';
 
50
    my %opts = ( in => \$in, out => \my($out), err => \my($err) );
 
51
    lives_ok { pandoc->run( [], %opts ) }, 'run';
 
52
    like $out, qr!<p>foo</p>!, 'stdout';
 
53
    is $err //= "", "", 'stderr';
 
54
};
 
55
 
 
56
subtest 'run(%opts)' => sub {
 
57
    my $out;
 
58
    lives_ok { pandoc in => \"# hi", out => \$out };
 
59
    is $out, "<h1 id=\"hi\">hi</h1>\n", 'run( %opts )';
 
60
};
 
61
 
 
62
subtest '->run(\@args, qw[odd length list])' => sub {
 
63
    my $in = 'foo';
 
64
    my %opts = ( in => \$in, out => \my($out), err => \my($err) );
 
65
    throws_ok { pandoc->run( $args, %opts, 'foo' ) } 
 
66
        qr!^\QToo many or ambiguous arguments!, 'run';
 
67
};
 
68
 
 
69
subtest '->run(\@args, ..., \%opts)' => sub {
 
70
    my $in = 'foo';
 
71
    my %opts = ( in => \$in, out => \my($out), err => \my($err) );
 
72
    throws_ok { pandoc->run( $args, qw[foo, bar], \%opts ) } 
 
73
        qr!^\QToo many or ambiguous arguments!, 'run';
 
74
};
 
75
 
 
76
done_testing;