#!/usr/bin/perl -w # t/xhtml01.t - check basic output from Pod::Simple::XHTML BEGIN { chdir 't' if -d 't'; } use strict; use lib '../lib'; use Test::More tests => 48; #use Test::More 'no_plan'; use_ok('Pod::Simple::XHTML') or exit; my $parser = Pod::Simple::XHTML->new (); isa_ok ($parser, 'Pod::Simple::XHTML'); my $results; my $PERLDOC = "http://search.cpan.org/perldoc"; my $MANURL = "http://man.he.net/man"; initialize($parser, $results); $parser->parse_string_document( "=head1 Poit!" ); is($results, qq{
Gee, Brain, what do you want to do tonight?
EOHTML initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod B: Now, Pinky, if by any chance you are captured during this mission, remember you are Gunther Heindriksen from Appenzell. You moved to Grindelwald to drive the cog train to Murren. Can you repeat that? P: Mmmm, no, Brain, don't think I can. EOPOD is($results, <<'EOHTML', "multiple paragraphs");B: Now, Pinky, if by any chance you are captured during this mission, remember you are Gunther Heindriksen from Appenzell. You moved to Grindelwald to drive the cog train to Murren. Can you repeat that?
P: Mmmm, no, Brain, don't think I can.
EOHTML initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =over =item * P: Gee, Brain, what do you want to do tonight? =item * B: The same thing we do every night, Pinky. Try to take over the world! =back EOPOD is($results, <<'EOHTML', "simple bulleted list");P: Gee, Brain, what do you want to do tonight?
B: The same thing we do every night, Pinky. Try to take over the world!
P: Gee, Brain, what do you want to do tonight?
B: The same thing we do every night, Pinky. Try to take over the world!
Gee, Brain, what do you want to do tonight?
The same thing we do every night, Pinky. Try to take over the world!
Pinky
Gee, Brain, what do you want to do tonight?
Brain
The same thing we do every night, Pinky. Try to take over the world!
Brain <brain@binkyandthebrain.com>
Pinky <pinky@binkyandthebrain.com>
On the list:
Fight the good fight
(Steve Martin joke)
Not so much
1 + 1 = 2;
2 + 2 = 4;
EOHTML
initialize($parser, $results);
$parser->parse_string_document(<<'EOPOD');
=pod
A plain paragraph with a CA plain paragraph with a functionname
.
A plain paragraph with body tags turned on.
EOHTML initialize($parser, $results); $parser->html_css('style.css'); $parser->html_header(undef); $parser->html_footer(undef); $parser->parse_string_document(<<'EOPOD'); =pod A plain paragraph with body tags and css tags turned on. EOPOD like($results, qr//, "adding html body tags and css tags"); initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod A plain paragraph with SA plain paragraph with
A plain paragraph with a Newlines.
EOHTML initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod A plain paragraph with a LA plain paragraph with a "Newlines" in perlport.
EOHTML initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod A plain paragraph with a LA plain paragraph with a Boo.
EOHTML initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod A plain paragraph with a LA plain paragraph with a http://link.included.here.
EOHTML initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod A plain paragraph with BA plain paragraph with bold text.
EOHTML initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod A plain paragraph with IA plain paragraph with italic text.
EOHTML initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod A plain paragraph with a FA plain paragraph with a filename.
EOHTML # It's not important that 's (apostrophes) be encoded for XHTML output. initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod # this header is very important & dont you forget it my $text = "File is: " . # this header is very important & dont you forget it
my \$text = "File is: " . <FILE>;
EOHTML
initialize($parser, $results);
$parser->parse_string_document(<<'EOPOD');
=pod
A text paragraph using EA text paragraph using / and | special POD entities.
EOHTML initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod A text paragraph using numeric POD entities: E<60>, E<62>. EOPOD is($results, <<"EOHTML", "Text with numeric entities");A text paragraph using numeric POD entities: <, >.
EOHTML SKIP: for my $use_html_entities (0, 1) { if ($use_html_entities and not $Pod::Simple::XHTML::HAS_HTML_ENTITIES) { skip("HTML::Entities not installed", 1); } local $Pod::Simple::XHTML::HAS_HTML_ENTITIES = $use_html_entities; initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod # this header is very important & dont you forget it B # this header is very important & dont you forget it
my \$file = <FILE> || 'Blank!';
my \$text = "File is: " . <FILE>;
EOHTML
}
ok $parser = Pod::Simple::XHTML->new, 'Construct a new parser';
$results = '';
$parser->output_string( \$results ); # Send the resulting output to a string
ok $parser->parse_string_document( "=head1 Poit!" ), 'Parse with headers';
like $results, qr{},
'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';
# Make sure that batch_mode_page_object_init() works.
ok $parser->batch_mode_page_object_init(0, 0, 0, 0, 6),
'Call batch_mode_page_object_init()';
ok $parser->batch_mode, 'We should be in batch mode';
is $parser->batch_mode_current_level, 6,
'The level should have been set';
######################################
sub initialize {
$_[0] = Pod::Simple::XHTML->new ();
$_[0]->html_header("");
$_[0]->html_footer("");
$_[0]->output_string( \$results ); # Send the resulting output to a string
$_[1] = '';
return;
}