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