1 # Testing extend and accept_codes
12 BEGIN { plan tests => 24 };
14 #use Pod::Simple::Debug (2);
18 use Pod::Simple::DumpAsXML;
19 use Pod::Simple::XMLOutStream;
20 print "# Pod::Simple version $Pod::Simple::VERSION\n";
24 unshift @INC, $FindBin::Bin . '/lib';
29 my $x = 'Pod::Simple::XMLOutStream';
30 sub accept_Q { $_[0]->accept_codes('Q') }
31 sub accept_prok { $_[0]->accept_codes('prok') }
32 sub accept_zing_prok { $_[0]->accept_codes('zing:prok') }
33 sub accept_zing_superprok { $_[0]->accept_codes('z.i_ng:Prok-12') }
34 sub accept_zing_superduperprok {
35 $_[0]->accept_codes('A');
36 $_[0]->accept_codes('z.i_ng:Prok-12');
40 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
43 print "# Some sanity tests...\n";
44 ok( $x->_out( "=pod\n\nI like pie.\n"),
45 '<Document><Para>I like pie.</Para></Document>'
47 ok( $x->_out( "=extend N C Y,W\n\nI like pie.\n"),
48 '<Document><Para>I like pie.</Para></Document>'
50 ok( $x->_out( "=extend N C,F Y,W\n\nI like pie.\n"),
51 '<Document><Para>I like pie.</Para></Document>'
53 ok( $x->_out( "=extend N C,F,I Y,W\n\nI like pie.\n"),
54 '<Document><Para>I like pie.</Para></Document>'
58 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
61 print "## OK, actually trying to use an extended code...\n";
63 print "# extending but not accepted (so hitting fallback)\n";
65 ok( $x->_out( "=extend N B Y,W\n\nI N<like> pie.\n"),
66 '<Document><Para>I <B>like</B> pie.</Para></Document>'
68 ok( $x->_out( "=extend N B,I Y,W\n\nI N<like> pie.\n"),
69 '<Document><Para>I <B><I>like</I></B> pie.</Para></Document>'
71 ok( $x->_out( "=extend N C,B,I Y,W\n\nI N<like> pie.\n"),
72 '<Document><Para>I <C><B><I>like</I></B></C> pie.</Para></Document>'
77 print "# extending to one-letter accepted (not hitting fallback)\n";
79 ok( $x->_out( \&accept_Q, "=extend N B Y,Q,A,bzroch\n\nI N<like> pie.\n"),
80 '<Document><Para>I <Q>like</Q> pie.</Para></Document>'
82 ok( $x->_out( \&accept_Q, "=extend N B,I Y,Q,A,bzroch\n\nI N<like> pie.\n"),
83 '<Document><Para>I <Q>like</Q> pie.</Para></Document>'
85 ok( $x->_out( \&accept_Q, "=extend N C,B,I Y,Q,A,bzroch\n\nI N<like> pie.\n"),
86 '<Document><Para>I <Q>like</Q> pie.</Para></Document>'
91 print "# extending to many-letter accepted (not hitting fallback)\n";
93 ok( $x->_out( \&accept_prok, "=extend N B Y,prok,A,bzroch\n\nI N<like> pie.\n"),
94 '<Document><Para>I <prok>like</prok> pie.</Para></Document>'
96 ok( $x->_out( \&accept_prok, "=extend N B,I Y,prok,A,bzroch\n\nI N<like> pie.\n"),
97 '<Document><Para>I <prok>like</prok> pie.</Para></Document>'
99 ok( $x->_out( \&accept_prok, "=extend N C,B,I Y,prok,A,bzroch\n\nI N<like> pie.\n"),
100 '<Document><Para>I <prok>like</prok> pie.</Para></Document>'
105 print "# extending to :-containing, many-letter accepted (not hitting fallback)\n";
107 ok( $x->_out( \&accept_zing_prok, "=extend N B Y,zing:prok,A,bzroch\n\nI N<like> pie.\n"),
108 '<Document><Para>I <zing:prok>like</zing:prok> pie.</Para></Document>'
110 ok( $x->_out( \&accept_zing_prok, "=extend N B,I Y,zing:prok,A,bzroch\n\nI N<like> pie.\n"),
111 '<Document><Para>I <zing:prok>like</zing:prok> pie.</Para></Document>'
113 ok( $x->_out( \&accept_zing_prok, "=extend N C,B,I Y,zing:prok,A,bzroch\n\nI N<like> pie.\n"),
114 '<Document><Para>I <zing:prok>like</zing:prok> pie.</Para></Document>'
120 print "# extending to _:-0-9-containing, many-letter accepted (not hitting fallback)\n";
122 ok( $x->_out( \&accept_zing_superprok, "=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_superprok, "=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_superprok, "=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 "#\n# Testing acceptance order\n";
136 ok( $x->_out( \&accept_zing_superduperprok, "=extend N B Y,z.i_ng:Prok-12,A,bzroch\n\nI N<like> pie.\n"),
137 '<Document><Para>I <z.i_ng:Prok-12>like</z.i_ng:Prok-12> pie.</Para></Document>'
139 ok( $x->_out( \&accept_zing_superduperprok, "=extend N B,I Y,z.i_ng:Prok-12,A,bzroch\n\nI N<like> pie.\n"),
140 '<Document><Para>I <z.i_ng:Prok-12>like</z.i_ng:Prok-12> pie.</Para></Document>'
142 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"),
143 '<Document><Para>I <z.i_ng:Prok-12>like</z.i_ng:Prok-12> pie.</Para></Document>'
148 print "# Wrapping up... one for the road...\n";
150 print "# --- Done with ", __FILE__, " --- \n";