4
BEGIN { plan tests => 24 };
6
#use Pod::Simple::Debug (2);
10
use Pod::Simple::DumpAsXML;
11
use Pod::Simple::XMLOutStream;
12
print "# Pod::Simple version $Pod::Simple::VERSION\n";
13
sub e ($$) { Pod::Simple::DumpAsXML->_duo(@_) }
15
my $x = 'Pod::Simple::XMLOutStream';
16
sub accept_Q { $_[0]->accept_codes('Q') }
17
sub accept_prok { $_[0]->accept_codes('prok') }
18
sub accept_zing_prok { $_[0]->accept_codes('zing:prok') }
19
sub accept_zing_superprok { $_[0]->accept_codes('z.i_ng:Prok-12') }
20
sub accept_zing_superduperprok {
21
$_[0]->accept_codes('A');
22
$_[0]->accept_codes('z.i_ng:Prok-12');
26
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
29
print "# Some sanity tests...\n";
30
ok( $x->_out( "=pod\n\nI like pie.\n"),
31
'<Document><Para>I like pie.</Para></Document>'
33
ok( $x->_out( "=extend N C Y,W\n\nI like pie.\n"),
34
'<Document><Para>I like pie.</Para></Document>'
36
ok( $x->_out( "=extend N C,F Y,W\n\nI like pie.\n"),
37
'<Document><Para>I like pie.</Para></Document>'
39
ok( $x->_out( "=extend N C,F,I Y,W\n\nI like pie.\n"),
40
'<Document><Para>I like pie.</Para></Document>'
44
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
47
print "## OK, actually trying to use an extended code...\n";
49
print "# extending but not accepted (so hitting fallback)\n";
51
ok( $x->_out( "=extend N B Y,W\n\nI N<like> pie.\n"),
52
'<Document><Para>I <B>like</B> pie.</Para></Document>'
54
ok( $x->_out( "=extend N B,I Y,W\n\nI N<like> pie.\n"),
55
'<Document><Para>I <B><I>like</I></B> pie.</Para></Document>'
57
ok( $x->_out( "=extend N C,B,I Y,W\n\nI N<like> pie.\n"),
58
'<Document><Para>I <C><B><I>like</I></B></C> pie.</Para></Document>'
63
print "# extending to one-letter accepted (not hitting fallback)\n";
65
ok( $x->_out( \&accept_Q, "=extend N B Y,Q,A,bzroch\n\nI N<like> pie.\n"),
66
'<Document><Para>I <Q>like</Q> pie.</Para></Document>'
68
ok( $x->_out( \&accept_Q, "=extend N B,I Y,Q,A,bzroch\n\nI N<like> pie.\n"),
69
'<Document><Para>I <Q>like</Q> pie.</Para></Document>'
71
ok( $x->_out( \&accept_Q, "=extend N C,B,I Y,Q,A,bzroch\n\nI N<like> pie.\n"),
72
'<Document><Para>I <Q>like</Q> pie.</Para></Document>'
77
print "# extending to many-letter accepted (not hitting fallback)\n";
79
ok( $x->_out( \&accept_prok, "=extend N B Y,prok,A,bzroch\n\nI N<like> pie.\n"),
80
'<Document><Para>I <prok>like</prok> pie.</Para></Document>'
82
ok( $x->_out( \&accept_prok, "=extend N B,I Y,prok,A,bzroch\n\nI N<like> pie.\n"),
83
'<Document><Para>I <prok>like</prok> pie.</Para></Document>'
85
ok( $x->_out( \&accept_prok, "=extend N C,B,I Y,prok,A,bzroch\n\nI N<like> pie.\n"),
86
'<Document><Para>I <prok>like</prok> pie.</Para></Document>'
91
print "# extending to :-containing, many-letter accepted (not hitting fallback)\n";
93
ok( $x->_out( \&accept_zing_prok, "=extend N B Y,zing:prok,A,bzroch\n\nI N<like> pie.\n"),
94
'<Document><Para>I <zing:prok>like</zing:prok> pie.</Para></Document>'
96
ok( $x->_out( \&accept_zing_prok, "=extend N B,I Y,zing:prok,A,bzroch\n\nI N<like> pie.\n"),
97
'<Document><Para>I <zing:prok>like</zing:prok> pie.</Para></Document>'
99
ok( $x->_out( \&accept_zing_prok, "=extend N C,B,I Y,zing:prok,A,bzroch\n\nI N<like> pie.\n"),
100
'<Document><Para>I <zing:prok>like</zing:prok> pie.</Para></Document>'
106
print "# extending to _:-0-9-containing, many-letter accepted (not hitting fallback)\n";
108
ok( $x->_out( \&accept_zing_superprok, "=extend N B Y,z.i_ng:Prok-12,A,bzroch\n\nI N<like> pie.\n"),
109
'<Document><Para>I <z.i_ng:Prok-12>like</z.i_ng:Prok-12> pie.</Para></Document>'
111
ok( $x->_out( \&accept_zing_superprok, "=extend N B,I Y,z.i_ng:Prok-12,A,bzroch\n\nI N<like> pie.\n"),
112
'<Document><Para>I <z.i_ng:Prok-12>like</z.i_ng:Prok-12> pie.</Para></Document>'
114
ok( $x->_out( \&accept_zing_superprok, "=extend N C,B,I Y,z.i_ng:Prok-12,A,bzroch\n\nI N<like> pie.\n"),
115
'<Document><Para>I <z.i_ng:Prok-12>like</z.i_ng:Prok-12> pie.</Para></Document>'
120
print "#\n# Testing acceptance order\n";
122
ok( $x->_out( \&accept_zing_superduperprok, "=extend N B Y,z.i_ng:Prok-12,A,bzroch\n\nI N<like> pie.\n"),
123
'<Document><Para>I <z.i_ng:Prok-12>like</z.i_ng:Prok-12> pie.</Para></Document>'
125
ok( $x->_out( \&accept_zing_superduperprok, "=extend N B,I Y,z.i_ng:Prok-12,A,bzroch\n\nI N<like> pie.\n"),
126
'<Document><Para>I <z.i_ng:Prok-12>like</z.i_ng:Prok-12> pie.</Para></Document>'
128
ok( $x->_out( \&accept_zing_superduperprok, "=extend N C,B,I Y,z.i_ng:Prok-12,A,bzroch\n\nI N<like> pie.\n"),
129
'<Document><Para>I <z.i_ng:Prok-12>like</z.i_ng:Prok-12> pie.</Para></Document>'
134
print "# Wrapping up... one for the road...\n";
136
print "# --- Done with ", __FILE__, " --- \n";