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 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
|
#!/usr/bin/perl -w
#
# text.t -- Additional specialized tests for Pod::Text.
#
# Copyright 2002, 2004, 2006, 2007, 2008, 2009 Russ Allbery <rra@stanford.edu>
#
# This program is free software; you may redistribute it and/or modify it
# under the same terms as Perl itself.
BEGIN {
chdir 't' if -d 't';
if ($ENV{PERL_CORE}) {
@INC = '../lib';
} else {
unshift (@INC, '../blib/lib');
}
unshift (@INC, '../blib/lib');
$| = 1;
print "1..6\n";
}
END {
print "not ok 1\n" unless $loaded;
}
use Pod::Text;
use Pod::Simple;
$loaded = 1;
print "ok 1\n";
my $parser = Pod::Text->new or die "Cannot create parser\n";
my $n = 2;
while (<DATA>) {
next until $_ eq "###\n";
open (TMP, '> tmp.pod') or die "Cannot create tmp.pod: $!\n";
while (<DATA>) {
last if $_ eq "###\n";
print TMP $_;
}
close TMP;
open (OUT, '> out.tmp') or die "Cannot create out.tmp: $!\n";
$parser->parse_from_file ('tmp.pod', \*OUT);
close OUT;
open (TMP, 'out.tmp') or die "Cannot open out.tmp: $!\n";
my $output;
{
local $/;
$output = <TMP>;
}
close TMP;
unlink ('tmp.pod', 'out.tmp');
my $expected = '';
while (<DATA>) {
last if $_ eq "###\n";
$expected .= $_;
}
if ($output eq $expected) {
print "ok $n\n";
} elsif ($n == 4 && $Pod::Simple::VERSION < 3.06) {
print "ok $n # skip Pod::Simple S<> parsing bug\n";
} else {
print "not ok $n\n";
print "Expected\n========\n$expected\nOutput\n======\n$output\n";
}
$n++;
}
# Below the marker are bits of POD and corresponding expected text output.
# This is used to test specific features or problems with Pod::Text. The
# input and output are separated by lines containing only ###.
__DATA__
###
=head1 PERIODS
This C<.> should be quoted.
###
PERIODS
This "." should be quoted.
###
###
=head1 CE<lt>E<gt> WITH SPACES
What does C<< this. >> end up looking like?
###
C<> WITH SPACES
What does "this." end up looking like?
###
###
=head1 Test of SE<lt>E<gt>
This is some S< > whitespace.
###
Test of S<>
This is some whitespace.
###
###
=head1 Test of =for
=for comment
This won't be seen.
Yes.
=for text
This should be seen.
=for TEXT As should this.
=for man
But this shouldn't.
Some more text.
###
Test of =for
Yes.
This should be seen.
As should this.
Some more text.
###
###
=pod
text
line1
line3
###
text
line1
line3
###
|