Update podlators to version 4.03
[perl.git] / cpan / podlators / t / text / termcap.t
1 #!/usr/bin/perl -w
2 #
3 # termcap.t -- Additional specialized tests for Pod::Text::Termcap.
4 #
5 # Copyright 2002, 2004, 2006, 2009, 2012, 2013, 2014
6 #     Russ Allbery <rra@cpan.org>
7 #
8 # This program is free software; you may redistribute it and/or modify it
9 # under the same terms as Perl itself.
10
11 BEGIN {
12     chdir 't' if -d 't';
13     if ($ENV{PERL_CORE}) {
14         @INC = '../lib';
15     }
16     unshift (@INC, '../blib/lib');
17     $| = 1;
18 }
19
20 use strict;
21
22 use File::Spec;
23 use Test::More tests => 4;
24
25 BEGIN { use_ok ('Pod::Text::Termcap') }
26
27 # Find the path to the test source files.  This requires some fiddling when
28 # these tests are run as part of Perl core.
29 sub source_path {
30     my $file = shift;
31     if ($ENV{PERL_CORE}) {
32         my $updir = File::Spec->updir;
33         my $dir = File::Spec->catdir ($updir, 'lib', 'Pod', 't', 'data');
34         return File::Spec->catfile ($dir, $file);
35     } else {
36         return File::Spec->catfile ('data', $file);
37     }
38 }
39
40 # Hard-code a few values to try to get reproducible results.
41 $ENV{COLUMNS}  = 80;
42 $ENV{TERM}     = 'xterm';
43 $ENV{TERMPATH} = source_path ('termcap');
44 $ENV{TERMCAP}  = 'xterm:co=#80:do=^J:md=\E[1m:us=\E[4m:me=\E[m';
45
46 my $parser = Pod::Text::Termcap->new;
47 isa_ok ($parser, 'Pod::Text::Termcap', 'Parser module');
48 my $n = 1;
49 while (<DATA>) {
50     next until $_ eq "###\n";
51     open (TMP, "> tmp$$.pod") or die "Cannot create tmp$$.pod: $!\n";
52     while (<DATA>) {
53         last if $_ eq "###\n";
54         print TMP $_;
55     }
56     close TMP;
57     open (OUT, "> out$$.tmp") or die "Cannot create out$$.tmp: $!\n";
58     $parser->parse_from_file ("tmp$$.pod", \*OUT);
59     close OUT;
60     open (TMP, "out$$.tmp") or die "Cannot open out$$.tmp: $!\n";
61     my $output;
62     {
63         local $/;
64         $output = <TMP>;
65     }
66     close TMP;
67     1 while unlink ("tmp$$.pod", "out$$.tmp");
68     my $expected = '';
69     while (<DATA>) {
70         last if $_ eq "###\n";
71         $expected .= $_;
72     }
73     is ($output, $expected, "Output correct for test $n");
74     $n++;
75 }
76
77 # Below the marker are bits of POD and corresponding expected output.  This is
78 # used to test specific features or problems with Pod::Text::Termcap.  The
79 # input and output are separated by lines containing only ###.
80
81 __DATA__
82
83 ###
84 =head1 WRAPPING
85
86 B<I<Do>> I<B<not>> B<I<include>> B<I<formatting codes when>> B<I<wrapping>>.
87 ###
88 \e[1mWRAPPING\e[m
89     \e[1m\e[4mDo\e[m\e[m \e[4m\e[1mnot\e[m\e[m \e[1m\e[4minclude\e[m\e[m \e[1m\e[4mformatting codes when\e[m\e[m \e[1m\e[4mwrapping\e[m\e[m.
90
91 ###
92
93 ###
94 =head1 TAG WIDTH
95
96 =over 10
97
98 =item 12345678
99
100 A
101
102 =item B<12345678>
103
104 B
105
106 =item 1Z<>
107
108 C
109
110 =item B<1>
111
112 D
113
114 =back
115 ###
116 \e[1mTAG WIDTH\e[m
117     12345678  A
118
119     \e[1m12345678\e[m  B
120
121     1         C
122
123     \e[1m1\e[m         D
124
125 ###