summaryrefslogtreecommitdiff
path: root/cpan/Pod-Simple/t
diff options
context:
space:
mode:
authorJesse Vincent <jesse@bestpractical.com>2009-12-10 11:44:26 -0500
committerJesse Vincent <jesse@bestpractical.com>2009-12-10 12:53:17 -0500
commita242eeb4c06c63af5ec7e01d5602b14bde94aa81 (patch)
treeec150bb0465359e98917433c36f94c184cb92302 /cpan/Pod-Simple/t
parentc722fa88c82df2b147e7acc05736e2bc6ae85bc2 (diff)
downloadperl-a242eeb4c06c63af5ec7e01d5602b14bde94aa81.tar.gz
Updated to Pod::Simple 3.11 from CPAN [perl #71004]
Diffstat (limited to 'cpan/Pod-Simple/t')
-rw-r--r--cpan/Pod-Simple/t/fcodes_s.t358
-rw-r--r--cpan/Pod-Simple/t/html01.t19
-rw-r--r--cpan/Pod-Simple/t/htmlbat.t17
-rw-r--r--cpan/Pod-Simple/t/items02.t1
-rw-r--r--cpan/Pod-Simple/t/xhtml01.t33
5 files changed, 415 insertions, 13 deletions
diff --git a/cpan/Pod-Simple/t/fcodes_s.t b/cpan/Pod-Simple/t/fcodes_s.t
index 0c66d2c466..cada7e4ab9 100644
--- a/cpan/Pod-Simple/t/fcodes_s.t
+++ b/cpan/Pod-Simple/t/fcodes_s.t
@@ -8,7 +8,7 @@ BEGIN {
use strict;
use Test;
-BEGIN { plan tests => 14 };
+BEGIN { plan tests => 80 };
#use Pod::Simple::Debug (6);
@@ -102,6 +102,362 @@ Do they always lose the rest of the line?
END
);
+$x = 'Pod::Simple::Text';
+# Test text output of links.
+ok(
+ $x->_out(qq{=pod\n\nL<Net::Ping>\n}),
+ " Net::Ping\n\n"
+);
+
+ok(
+ $x->_out(qq{=pod\n\nBe sure to read the L<Net::Ping> docs\n}),
+ " Be sure to read the Net::Ping docs\n\n"
+);
+
+ok(
+ $x->_out(qq{=pod\n\nL<http://www.perl.com>\n}),
+ " http://www.perl.com\n\n"
+);
+
+ok(
+ $x->_out(qq{=pod\n\nL<crontab(5)>\n}),
+ " crontab(5)\n\n"
+);
+
+ok(
+ $x->_out(qq{=pod\n\nL<Net::Ping/Ping-pong>\n}),
+ qq{ "Ping-pong" in Net::Ping\n\n}
+);
+
+ok(
+ $x->_out(qq{=pod\n\nL</"Object Methods">\n}),
+ qq{ "Object Methods"\n\n}
+);
+
+ok(
+ $x->_out(qq{=pod\n\nL</Object Methods>\n}),
+ qq{ "Object Methods"\n\n}
+);
+
+ok(
+ $x->_out(qq{=pod\n\nL<"Object Methods">\n}),
+ qq{ "Object Methods"\n\n}
+);
+
+ok(
+ $x->_out(qq{=pod\n\nL<Net::Ping/Ping-E<112>ong>\n}),
+ qq{ "Ping-pong" in Net::Ping\n\n}
+);
+
+ok(
+ $x->_out(qq{=pod\n\nL<news:comp.lang.perl.misc>\n}),
+ " news:comp.lang.perl.misc\n\n"
+);
+
+ok(
+ $x->_out(qq{=pod\n\nL<http://www.perl.org>\n}),
+ " http://www.perl.org\n\n"
+);
+
+ok(
+ $x->_out(qq{=pod\n\nSee L<http://www.perl.org>\n}),
+ " See http://www.perl.org\n\n"
+);
+
+ok(
+ $x->_out(qq{=pod\n\nL<http://www.perl.org/CPAN/authors/id/S/SB/SBURKE/>\n}),
+ " http://www.perl.org/CPAN/authors/id/S/SB/SBURKE/\n\n"
+);
+
+ok(
+ $x->_out(qq{=pod\n\nL<news:compE<46>lang.perl.misc>\n}),
+ " news:comp.lang.perl.misc\n\n"
+);
+
+ok(
+ $x->_out(qq{=pod\n\nL<http://wwwE<46>perl.org>\n}),
+ " http://www.perl.org\n\n"
+);
+
+ok(
+ $x->_out(qq{=pod\n\nL<things|crontab(5)>\n}),
+ " things\n\n"
+);
+
+ok(
+ $x->_out(qq{=pod\n\nL<things|crontab(5)/ENVIRONMENT>\n}),
+ " things\n\n"
+);
+
+ok(
+ $x->_out(qq{=pod\n\nL<Perl Error Messages|perldiag>\n}),
+ " Perl Error Messages\n\n"
+);
+
+ok(
+ $x->_out(qq{=pod\n\nL<Perl\nError\nMessages|perldiag>\n}),
+ " Perl Error Messages\n\n"
+);
+
+ok(
+ $x->_out(qq{=pod\n\nL<Perl\nError\t Messages|perldiag>\n}),
+ " Perl Error Messages\n\n"
+);
+
+ok(
+ $x->_out(qq{=pod\n\nL<perl.org|http://www.perl.org>\n}),
+ " perl.org <http://www.perl.org>\n\n"
+);
+
+ok(
+ $x->_out(qq{=pod\n\nSee L<perl.org|http://www.perl.org>\n}),
+ " See perl.org <http://www.perl.org>\n\n"
+);
+
+
+# Test HTML output of links.
+use Pod::Simple::HTML;
+my $PERLDOC = "http://search.cpan.org/perldoc";
+my $MANURL = "http://man.he.net/man";
+sub x ($) {
+ Pod::Simple::HTML->_out(
+ sub { $_[0]->bare_output(1) },
+ "=pod\n\n$_[0]",
+ )
+}
+
+ok(
+ x(qq{L<Net::Ping>\n}),
+ qq{\n<p><a href="$PERLDOC?Net%3A%3APing" class="podlinkpod"\n>Net::Ping</a></p>\n}
+);
+
+ok(
+ x(qq{Be sure to read the L<Net::Ping> docs\n}),
+ qq{\n<p>Be sure to read the <a href="$PERLDOC?Net%3A%3APing" class="podlinkpod"\n>Net::Ping</a> docs</p>\n}
+);
+
+ok(
+ x(qq{L<http://www.perl.com>\n}),
+ qq{\n<p><a href="http://www.perl.com" class="podlinkurl"\n>http://www.perl.com</a></p>\n}
+);
+
+ok(
+ x(qq{L<crontab(5)>\n}),
+ qq{\n<p><a href="${MANURL}5/crontab" class="podlinkman"\n>crontab(5)</a></p>\n}
+);
+
+ok(
+ x(qq{L<Net::Ping/Ping-pong>\n}),
+ qq{\n<p><a href="$PERLDOC?Net%3A%3APing#Ping-pong" class="podlinkpod"\n>&#34;Ping-pong&#34; in Net::Ping</a></p>\n}
+);
+
+ok(
+ x(qq{L</"Object Methods">\n}),
+ qq{\n<p><a href="#Object_Methods" class="podlinkpod"\n>&#34;Object Methods&#34;</a></p>\n}
+);
+
+ok(
+ x(qq{L</Object Methods>\n}),
+ qq{\n<p><a href="#Object_Methods" class="podlinkpod"\n>&#34;Object Methods&#34;</a></p>\n}
+);
+
+ok(
+ x(qq{L<"Object Methods">\n}),
+ qq{\n<p><a href="#Object_Methods" class="podlinkpod"\n>&#34;Object Methods&#34;</a></p>\n}
+);
+
+ok(
+ x(qq{L<Net::Ping/Ping-E<112>ong>\n}),
+ qq{\n<p><a href="$PERLDOC?Net%3A%3APing#Ping-pong" class="podlinkpod"\n>&#34;Ping-pong&#34; in Net::Ping</a></p>\n}
+);
+
+ok(
+ x(qq{L<news:comp.lang.perl.misc>\n}),
+ qq{\n<p><a href="news:comp.lang.perl.misc" class="podlinkurl"\n>news:comp.lang.perl.misc</a></p>\n}
+);
+
+ok(
+ x(qq{L<http://www.perl.org>\n}),
+ qq{\n<p><a href="http://www.perl.org" class="podlinkurl"\n>http://www.perl.org</a></p>\n}
+);
+
+ok(
+ x(qq{See L<http://www.perl.org>\n}),
+ qq{\n<p>See <a href="http://www.perl.org" class="podlinkurl"\n>http://www.perl.org</a></p>\n}
+);
+
+ok(
+ x(qq{L<http://www.perl.org/CPAN/authors/id/S/SB/SBURKE/>\n}),
+ qq{\n<p><a href="http://www.perl.org/CPAN/authors/id/S/SB/SBURKE/" class="podlinkurl"\n>http://www.perl.org/CPAN/authors/id/S/SB/SBURKE/</a></p>\n}
+);
+
+ok(
+ x(qq{L<news:compE<46>lang.perl.misc>\n}),
+ qq{\n<p><a href="news:comp.lang.perl.misc" class="podlinkurl"\n>news:comp.lang.perl.misc</a></p>\n}
+);
+
+ok(
+ x(qq{L<http://wwwE<46>perl.org>\n}),
+ qq{\n<p><a href="http://www.perl.org" class="podlinkurl"\n>http://www.perl.org</a></p>\n}
+);
+
+ok(
+ x(qq{L<things|crontab(5)>\n}),
+ qq{\n<p><a href="${MANURL}5/crontab" class="podlinkman"\n>things</a></p>\n}
+);
+
+ok(
+ x(qq{L<things|crontab(5)/ENVIRONMENT>\n}),
+ qq{\n<p><a href="${MANURL}5/crontab" class="podlinkman"\n>things</a></p>\n}
+);
+
+ok(
+ x(qq{L<Perl Error Messages|perldiag>\n}),
+ qq{\n<p><a href="$PERLDOC?perldiag" class="podlinkpod"\n>Perl Error Messages</a></p>\n}
+);
+
+ok(
+ x(qq{L<Perl\nError\nMessages|perldiag>\n}),
+ qq{\n<p><a href="$PERLDOC?perldiag" class="podlinkpod"\n>Perl Error Messages</a></p>\n}
+);
+
+ok(
+ x(qq{L<Perl\nError\t Messages|perldiag>\n}),
+ qq{\n<p><a href="$PERLDOC?perldiag" class="podlinkpod"\n>Perl Error Messages</a></p>\n}
+);
+
+ok(
+ x(qq{L<perl.org|http://www.perl.org>\n}),
+ qq{\n<p><a href="http://www.perl.org" class="podlinkurl"\n>perl.org</a></p>\n}
+);
+
+ok(
+ x(qq{See L<perl.org|http://www.perl.org>\n}),
+ qq{\n<p>See <a href="http://www.perl.org" class="podlinkurl"\n>perl.org</a></p>\n}
+);
+
+# Test link output in XHTML.
+use Pod::Simple::XHTML;
+sub o ($) {
+ my $p = Pod::Simple::XHTML->new;
+ $p->html_header("");
+ $p->html_footer("");
+ my $results = '';
+ $p->output_string( \$results ); # Send the resulting output to a string
+ $p->parse_string_document("=pod\n\n$_[0]");
+ return $results;
+}
+
+ok(
+ o(qq{L<Net::Ping>}),
+ qq{<p><a href="$PERLDOC?Net::Ping">Net::Ping</a></p>\n\n}
+);
+
+ok(
+ o(qq{Be sure to read the L<Net::Ping> docs}),
+ qq{<p>Be sure to read the <a href="$PERLDOC?Net::Ping">Net::Ping</a> docs</p>\n\n}
+);
+
+ok(
+ o(qq{L<http://www.perl.com>}),
+ qq{<p><a href="http://www.perl.com">http://www.perl.com</a></p>\n\n}
+);
+
+ok(
+ o(qq{L<crontab(5)>}),
+ qq{<p><a href="${MANURL}5/crontab">crontab(5)</a></p>\n\n}
+);
+
+ok(
+ o(qq{L<Net::Ping/Ping-pong>}),
+ qq{<p><a href="$PERLDOC?Net::Ping#Ping-pong">&quot;Ping-pong&quot; in Net::Ping</a></p>\n\n}
+);
+
+ok(
+ o(qq{L</"Object Methods">}),
+ qq{<p><a href="#Object-Methods">&quot;Object Methods&quot;</a></p>\n\n}
+);
+
+ok(
+ o(qq{L</Object Methods>}),
+ qq{<p><a href="#Object-Methods">&quot;Object Methods&quot;</a></p>\n\n}
+);
+
+ok(
+ o(qq{L<"Object Methods">}),
+ qq{<p><a href="#Object-Methods">&quot;Object Methods&quot;</a></p>\n\n}
+);
+
+ok(
+ o(qq{L<Net::Ping/Ping-E<112>ong>}),
+ qq{<p><a href="$PERLDOC?Net::Ping#Ping-pong">&quot;Ping-pong&quot; in Net::Ping</a></p>\n\n}
+);
+
+ok(
+ o(qq{L<news:comp.lang.perl.misc>}),
+ qq{<p><a href="news:comp.lang.perl.misc">news:comp.lang.perl.misc</a></p>\n\n}
+);
+
+ok(
+ o(qq{L<http://www.perl.org>}),
+ qq{<p><a href="http://www.perl.org">http://www.perl.org</a></p>\n\n}
+);
+
+ok(
+ o(qq{See L<http://www.perl.org>}),
+ qq{<p>See <a href="http://www.perl.org">http://www.perl.org</a></p>\n\n}
+);
+
+ok(
+ o(qq{L<http://www.perl.org/CPAN/authors/id/S/SB/SBURKE/>}),
+ qq{<p><a href="http://www.perl.org/CPAN/authors/id/S/SB/SBURKE/">http://www.perl.org/CPAN/authors/id/S/SB/SBURKE/</a></p>\n\n}
+);
+
+ok(
+ o(qq{L<news:compE<46>lang.perl.misc>}),
+ qq{<p><a href="news:comp.lang.perl.misc">news:comp.lang.perl.misc</a></p>\n\n}
+);
+
+ok(
+ o(qq{L<http://wwwE<46>perl.org>}),
+ qq{<p><a href="http://www.perl.org">http://www.perl.org</a></p>\n\n}
+);
+
+ok(
+ o(qq{L<things|crontab(5)>}),
+ qq{<p><a href="${MANURL}5/crontab">things</a></p>\n\n}
+);
+
+ok(
+ o(qq{L<things|crontab(5)/ENVIRONMENT>}),
+ qq{<p><a href="${MANURL}5/crontab">things</a></p>\n\n}
+);
+
+ok(
+ o(qq{L<Perl Error Messages|perldiag>}),
+ qq{<p><a href="$PERLDOC?perldiag">Perl Error Messages</a></p>\n\n}
+);
+
+ok(
+ o(qq{L<Perl\nError\nMessages|perldiag>}),
+ qq{<p><a href="$PERLDOC?perldiag">Perl Error Messages</a></p>\n\n}
+);
+
+ok(
+ o(qq{L<Perl\nError\t Messages|perldiag>}),
+ qq{<p><a href="$PERLDOC?perldiag">Perl Error Messages</a></p>\n\n}
+);
+
+ok(
+ o(qq{L<perl.org|http://www.perl.org>}),
+ qq{<p><a href="http://www.perl.org">perl.org</a></p>\n\n}
+);
+
+ok(
+ o(qq{See L<perl.org|http://www.perl.org>}),
+ qq{<p>See <a href="http://www.perl.org">perl.org</a></p>\n\n}
+);
+
print "# Wrapping up... one for the road...\n";
ok 1;
print "# --- Done with ", __FILE__, " --- \n";
diff --git a/cpan/Pod-Simple/t/html01.t b/cpan/Pod-Simple/t/html01.t
index 18e84a8019..86e84ee777 100644
--- a/cpan/Pod-Simple/t/html01.t
+++ b/cpan/Pod-Simple/t/html01.t
@@ -9,7 +9,7 @@ BEGIN {
use strict;
use Test;
-BEGIN { plan tests => 9 };
+BEGIN { plan tests => 10 };
#use Pod::Simple::Debug (10);
@@ -71,7 +71,6 @@ ok(x(
"heading building"
);
-print x("=over 4\n\n=item one\n\n=item two\n\nHello\n\n=back\n");
ok(
x("=over 4\n\n=item one\n\n=item two\n\nHello\n\n=back\n"),
q{
@@ -90,6 +89,22 @@ ok(
}
);
+# Check subclass.
+SUBCLASS: {
+ package My::Pod::HTML;
+ use vars '@ISA', '$VERSION';
+ @ISA = ('Pod::Simple::HTML');
+ $VERSION = '0.01';
+ sub do_section { 'howdy' }
+}
+
+ok(
+ My::Pod::HTML->_out(
+ sub{ $_[0]->bare_output(1) },
+ "=pod\n\n=over\n\n=item Foo\n\n",
+ ),
+ "\n<dl>\n<dt><a name=\"howdy\"\n>Foo</a></dt>\n</dl>\n",
+);
print "# And one for the road...\n";
ok 1;
diff --git a/cpan/Pod-Simple/t/htmlbat.t b/cpan/Pod-Simple/t/htmlbat.t
index 559754b6e6..ca58e6ea8e 100644
--- a/cpan/Pod-Simple/t/htmlbat.t
+++ b/cpan/Pod-Simple/t/htmlbat.t
@@ -13,7 +13,7 @@ my $DEBUG = 0;
#sub Pod::Simple::HTMLBatch::DEBUG () {5};
use Test;
-BEGIN { plan tests => 9 }
+BEGIN { plan tests => 17 }
require Pod::Simple::HTMLBatch;;
@@ -62,13 +62,24 @@ mkdir $outdir, 0777 or die "Can't mkdir $outdir: $!";
print "# Converting $corpus_dir => $outdir\n" if $DEBUG;
my $conv = Pod::Simple::HTMLBatch->new;
$conv->verbose(0);
+$conv->index(1);
$conv->batch_convert( [$corpus_dir], $outdir );
ok 1;
print "# OK, back from converting.\n" if $DEBUG;
my @files;
use File::Find;
-find( sub { push @files, $File::Find::name; return }, $outdir );
+find( sub {
+ push @files, $File::Find::name;
+ if (/[.]html$/ && $_ !~ /perl|index/) {
+ # Make sure an index was generated.
+ open HTML, $_ or die "Cannot open $_: $!\n";
+ my $html = do { local $/; <HTML> };
+ close HTML;
+ ok $html =~ /<div class='indexgroup'>/;
+ }
+ return;
+}, $outdir );
{
my $long = ( grep m/zikzik\./i, @files )[0];
@@ -101,8 +112,6 @@ if (my @long = grep { /^[^.]{9,}/ } map { s{^[^/]/}{} } @files) {
ok 1;
}
-
-
# use Pod::Simple;
# *pretty = \&Pod::Simple::BlackBox::pretty;
diff --git a/cpan/Pod-Simple/t/items02.t b/cpan/Pod-Simple/t/items02.t
index 4898fe4bb3..3119682dda 100644
--- a/cpan/Pod-Simple/t/items02.t
+++ b/cpan/Pod-Simple/t/items02.t
@@ -41,4 +41,3 @@ ok( $x->_out("\n=over\n\n=item 5.\n\nStuff\n\n=cut\n\nCrunk\nZorp\n\n=item 4.\n\
print "# Wrapping up... one for the road...\n";
ok 1;
print "# --- Done with ", __FILE__, " --- \n";
-
diff --git a/cpan/Pod-Simple/t/xhtml01.t b/cpan/Pod-Simple/t/xhtml01.t
index 8517dda699..e0993a56da 100644
--- a/cpan/Pod-Simple/t/xhtml01.t
+++ b/cpan/Pod-Simple/t/xhtml01.t
@@ -8,7 +8,8 @@ BEGIN {
use strict;
use lib '../lib';
-use Test::More tests => 35;
+use Test::More tests => 43;
+#use Test::More 'no_plan';
use_ok('Pod::Simple::XHTML') or exit;
@@ -17,7 +18,8 @@ isa_ok ($parser, 'Pod::Simple::XHTML');
my $results;
-my $PERLDOC = "http://search.cpan.org/perldoc?";
+my $PERLDOC = "http://search.cpan.org/perldoc";
+my $MANURL = "http://man.he.net/man";
initialize($parser, $results);
$parser->parse_string_document( "=head1 Poit!" );
@@ -403,7 +405,7 @@ $parser->parse_string_document(<<'EOPOD');
A plain paragraph with a L<Newlines>.
EOPOD
is($results, <<"EOHTML", "Link entity in a paragraph");
-<p>A plain paragraph with a <a href="${PERLDOC}Newlines">Newlines</a>.</p>
+<p>A plain paragraph with a <a href="$PERLDOC?Newlines">Newlines</a>.</p>
EOHTML
@@ -414,7 +416,7 @@ $parser->parse_string_document(<<'EOPOD');
A plain paragraph with a L<perlport/Newlines>.
EOPOD
is($results, <<"EOHTML", "Link entity in a paragraph");
-<p>A plain paragraph with a <a href="${PERLDOC}perlport/Newlines">&quot;Newlines&quot; in perlport</a>.</p>
+<p>A plain paragraph with a <a href="$PERLDOC?perlport#Newlines">&quot;Newlines&quot; in perlport</a>.</p>
EOHTML
@@ -507,7 +509,7 @@ A text paragraph using numeric POD entities: E<60>, E<62>.
EOPOD
is($results, <<"EOHTML", "Text with numeric entities");
-<p>A text paragraph using numeric POD entities: &#60;, &#62;.</p>
+<p>A text paragraph using numeric POD entities: &lt;, &gt;.</p>
EOHTML
@@ -540,6 +542,27 @@ ok $parser->parse_string_document( "=head1 Poit!" ), 'Parse with headers';
like $results, qr{<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />},
'Should have proper http-equiv meta tag';
+# Test the link generation methods.
+is $parser->resolve_pod_page_link('Net::Ping', 'INSTALL'),
+ "$PERLDOC?Net::Ping#INSTALL",
+ 'POD link with fragment';
+is $parser->resolve_pod_page_link('perlpodspec'),
+ "$PERLDOC?perlpodspec", 'Simple POD link';
+is $parser->resolve_pod_page_link(undef, 'SYNOPSIS'), '#SYNOPSIS',
+ 'Simple fragment link';
+is $parser->resolve_pod_page_link(undef, 'this that'), '#this-that',
+ 'Fragment link with space';
+is $parser->resolve_pod_page_link('perlpod', 'this that'),
+ "$PERLDOC?perlpod#this-that",
+ 'POD link with fragment with space';
+
+is $parser->resolve_man_page_link('crontab(5)', 'EXAMPLE CRON FILE'),
+ "${MANURL}5/crontab", 'Man link with fragment';
+is $parser->resolve_man_page_link('crontab(5)'),
+ "${MANURL}5/crontab", 'Man link without fragment';
+is $parser->resolve_man_page_link('crontab'),
+ "${MANURL}1/crontab", 'Man link without section';
+
######################################
sub initialize {