1*91f110e0Safresh1# t/xhtml20.t - test subclassing of Pod::Simple::XHTML 2*91f110e0Safresh1 3*91f110e0Safresh1use strict; 4*91f110e0Safresh1use warnings; 5*91f110e0Safresh1use Test::More tests => 1; 6*91f110e0Safresh1 7*91f110e0Safresh1BEGIN { 8*91f110e0Safresh1 package MyXHTML; 9*91f110e0Safresh1 use base 'Pod::Simple::XHTML'; 10*91f110e0Safresh1 11*91f110e0Safresh1 sub handle_code { 12*91f110e0Safresh1 my($self, $code, $kind) = @_; 13*91f110e0Safresh1 $code = $kind . "[$code]"; 14*91f110e0Safresh1 $self->SUPER::handle_code($code); 15*91f110e0Safresh1 } 16*91f110e0Safresh1 17*91f110e0Safresh1 sub start_code { 18*91f110e0Safresh1 my($self, $kind) = @_; 19*91f110e0Safresh1 $self->{scratch} .= "<code class=\"$kind\">"; 20*91f110e0Safresh1 } 21*91f110e0Safresh1 22*91f110e0Safresh1 sub end_code { 23*91f110e0Safresh1 my($self, $kind) = @_; 24*91f110e0Safresh1 $self->{scratch} .= "</code><!-- $kind -->"; 25*91f110e0Safresh1 } 26*91f110e0Safresh1} 27*91f110e0Safresh1 28*91f110e0Safresh1 29*91f110e0Safresh1 30*91f110e0Safresh1my ($parser, $results); 31*91f110e0Safresh1 32*91f110e0Safresh1initialize(); 33*91f110e0Safresh1$parser->parse_string_document(<<'EOT'); 34*91f110e0Safresh1=head1 Foo 35*91f110e0Safresh1 36*91f110e0Safresh1This is C<$code> and so is: 37*91f110e0Safresh1 38*91f110e0Safresh1 my $foo = 1; 39*91f110e0Safresh1 40*91f110e0Safresh1Code might even be C<<< nested( B<< C<1> >> ) >>>. 41*91f110e0Safresh1EOT 42*91f110e0Safresh1 43*91f110e0Safresh1is($results, <<'EOT'); 44*91f110e0Safresh1<h1 id="Foo">Foo</h1> 45*91f110e0Safresh1 46*91f110e0Safresh1<p>This is <code class="C">C[$code]</code><!-- C --> and so is:</p> 47*91f110e0Safresh1 48*91f110e0Safresh1<pre><code class="Verbatim">Verbatim[ my $foo = 1;]</code><!-- Verbatim --></pre> 49*91f110e0Safresh1 50*91f110e0Safresh1<p>Code might even be <code class="C">C[nested( ]<b><code class="C">C[1]</code><!-- C --></b>C[ )]</code><!-- C -->.</p> 51*91f110e0Safresh1 52*91f110e0Safresh1EOT 53*91f110e0Safresh1 54*91f110e0Safresh1 55*91f110e0Safresh1sub initialize { 56*91f110e0Safresh1 $parser = MyXHTML->new; 57*91f110e0Safresh1 $parser->html_header(''); 58*91f110e0Safresh1 $parser->html_footer(''); 59*91f110e0Safresh1 $parser->output_string( \$results ); 60*91f110e0Safresh1 $results = ''; 61*91f110e0Safresh1} 62