6394731e140a7d9da9a2d4725e6d243e6ce442fe
[perl.git] / cpan / podlators / t / pod-parser.t
1 #!/usr/bin/perl -w
2 #
3 # pod-parser.t -- Tests for backward compatibility with Pod::Parser.
4 #
5 # Copyright 2006, 2008, 2009, 2012 by Russ Allbery <rra@stanford.edu>
6 #
7 # This program is free software; you may redistribute it and/or modify it
8 # under the same terms as Perl itself.
9
10 BEGIN {
11     chdir 't' if -d 't';
12     if ($ENV{PERL_CORE}) {
13         @INC = '../lib';
14     }
15     unshift (@INC, '../blib/lib');
16     $| = 1;
17 }
18
19 use strict;
20
21 use Test::More tests => 7;
22 BEGIN {
23     use_ok ('Pod::Man');
24     use_ok ('Pod::Text');
25 }
26
27 my $parser = Pod::Man->new;
28 isa_ok ($parser, 'Pod::Man', 'Pod::Man parser object');
29 open (TMP, "> tmp$$.pod") or die "Cannot create tmp$$.pod: $!\n";
30 print TMP "Some random B<text>.\n";
31 close TMP;
32 open (OUT, "> out$$.tmp") or die "Cannot create out$$.tmp: $!\n";
33 $parser->parse_from_file ({ -cutting => 0 }, "tmp$$.pod", \*OUT);
34 close OUT;
35 open (OUT, "out$$.tmp") or die "Cannot open out$$.tmp: $!\n";
36 while (<OUT>) { last if /^\.nh/ }
37 my $output;
38 {
39     local $/;
40     $output = <OUT>;
41 }
42 close OUT;
43 is ($output, "Some random \\fBtext\\fR.\n", 'Pod::Man -cutting output');
44
45 $parser = Pod::Text->new;
46 isa_ok ($parser, 'Pod::Text', 'Pod::Text parser object');
47 open (OUT, "> out$$.tmp") or die "Cannot create out$$.tmp: $!\n";
48 $parser->parse_from_file ({ -cutting => 0 }, "tmp$$.pod", \*OUT);
49 close OUT;
50 open (OUT, "out$$.tmp") or die "Cannot open out$$.tmp: $!\n";
51 {
52     local $/;
53     $output = <OUT>;
54 }
55 close OUT;
56 is ($output, "    Some random text.\n\n", 'Pod::Text -cutting output');
57
58 # Test the pod2text function, particularly with only one argument.
59 open (TMP, "> tmp$$.pod") or die "Cannot create tmp$$.pod: $!\n";
60 print TMP "=pod\n\nSome random B<text>.\n";
61 close TMP;
62 open (OUT, "> out$$.tmp") or die "Cannot create out$$.tmp: $!\n";
63 open (SAVE, '>&STDOUT') or die "Cannot dup stdout: $!\n";
64 open (STDOUT, '>&OUT') or die "Cannot replace stdout: $!\n";
65 pod2text ("tmp$$.pod");
66 close OUT;
67 open (STDOUT, '>&SAVE') or die "Cannot fix stdout: $!\n";
68 close SAVE;
69 open (OUT, "out$$.tmp") or die "Cannot open out$$.tmp: $!\n";
70 {
71     local $/;
72     $output = <OUT>;
73 }
74 close OUT;
75 is ($output, "    Some random text.\n\n", 'Pod::Text pod2text function');
76
77 1 while unlink ("tmp$$.pod", "out$$.tmp");
78 exit 0;