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