10 BEGIN { plan tests => 61 };
13 #use Pod::Simple::Debug (\$d, 0);
18 use Pod::Simple::DumpAsXML;
19 use Pod::Simple::XMLOutStream;
20 print "# Pod::Simple version $Pod::Simple::VERSION\n";
21 sub e ($$) { Pod::Simple::DumpAsXML->_duo(@_) }
23 my $x = 'Pod::Simple::XMLOutStream';
24 $Pod::Simple::XMLOutStream::ATTR_PAD = ' ';
25 $Pod::Simple::XMLOutStream::SORT_ATTRS = 1; # for predictably testable output
28 sub moj {$_[0]->accept_target('mojojojo')}
29 sub mojtext {$_[0]->accept_target_as_text('mojojojo')}
30 sub any {$_[0]->accept_target_as_text('*')}
32 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33 print "# Testing non-matching complaint...\n";
37 ok( ($out = $x->_out( "=pod\n\nI like pie.\n\n=begin mojojojo\n\nStuff\n\n=end blorp\n\nYup.\n"))
39 ) or print "# Didn't contain POD ERRORS:\n# $out\n";
41 ok( ($out = $x->_out( \&moj, "=pod\n\nI like pie.\n\n=begin :mojojojo\n\nStuff\n\n=end :blorp\n\nYup.\n"))
43 ) or print "# Didn't contain POD ERRORS:\n# $out\n";
44 ok( ($out = $x->_out( \&moj, "=pod\n\nI like pie.\n\n=begin :mojojojo\n\n=begin :zaz\n\nStuff\n\n=end :blorp\n\nYup.\n"))
46 ) or print "# Didn't contain POD ERRORS:\n# $out\n";
50 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
53 print "# Testing some trivial cases of non-acceptance...\n";
55 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin mojojojo\n\nStuff\n\n=end mojojojo\n\nYup.\n"),
56 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>'
58 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin mojojojo\n\n\nStuff\n\n=end mojojojo\n\nYup.\n"),
59 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>'
61 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin :mojojojo\n\n\nStuff\n\n=end :mojojojo\n\nYup.\n"),
62 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>'
65 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin mojojojo\n\n Stuff\n\n=end mojojojo\n\nYup.\n"),
66 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>'
68 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin mojojojo\n\n\n Stuff\n\n=end mojojojo\n\nYup.\n"),
69 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>'
71 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin :mojojojo\n\n\n Stuff\n\n=end :mojojojo\n\nYup.\n"),
72 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>'
75 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin mojojojo\n\nI<Stuff>\n\n=end mojojojo\n\nYup.\n"),
76 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>'
78 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin mojojojo\n\n\nI<Stuff>\n\n=end mojojojo\n\nYup.\n"),
79 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>'
81 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin :mojojojo\n\n\nI<Stuff>\n\n=end :mojojojo\n\nYup.\n"),
82 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>'
87 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin psketti,mojojojo,crunk\n\nStuff\n\n=end psketti,mojojojo,crunk\n\nYup.\n"),
88 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>'
90 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin psketti,mojojojo,crunk\n\n\nStuff\n\n=end psketti,mojojojo,crunk\n\nYup.\n"),
91 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>'
93 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin :psketti,mojojojo,crunk\n\n\nStuff\n\n=end :psketti,mojojojo,crunk\n\nYup.\n"),
94 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>'
97 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin psketti,mojojojo,crunk\n\n Stuff\n\n=end psketti,mojojojo,crunk\n\nYup.\n"),
98 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>'
100 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin psketti,mojojojo,crunk\n\n\n Stuff\n\n=end psketti,mojojojo,crunk\n\nYup.\n"),
101 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>'
103 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin :psketti,mojojojo,crunk\n\n\n Stuff\n\n=end :psketti,mojojojo,crunk\n\nYup.\n"),
104 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>'
107 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin psketti,mojojojo,crunk\n\nI<Stuff>\n\n=end psketti,mojojojo,crunk\n\nYup.\n"),
108 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>'
110 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin psketti,mojojojo,crunk\n\n\nI<Stuff>\n\n=end psketti,mojojojo,crunk\n\nYup.\n"),
111 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>'
113 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin :psketti,mojojojo,crunk\n\n\nI<Stuff>\n\n=end :psketti,mojojojo,crunk\n\nYup.\n"),
114 '<Document><Para>I like pie.</Para><Para>Yup.</Para></Document>'
118 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
120 print "# Testing matching because of negated non-acceptance...\n";
122 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin !crunk\n\nstuff\n\n=end !crunk\n\nYup.\n"),
123 '<Document><Para>I like pie.</Para><for target="!crunk" target_matching="!"><Data xml:space="preserve">stuff</Data></for><Para>Yup.</Para></Document>'
125 ok( $x->_out( \&moj, "=pod\n\nI like pie.\n\n=begin !crunk\n\nstuff\n\n=end !crunk\n\nYup.\n"),
126 '<Document><Para>I like pie.</Para><for target="!crunk" target_matching="!"><Data xml:space="preserve">stuff</Data></for><Para>Yup.</Para></Document>'
128 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin !mojojojo\n\nstuff\n\n=end !mojojojo\n\nYup.\n"),
129 '<Document><Para>I like pie.</Para><for target="!mojojojo" target_matching="!"><Data xml:space="preserve">stuff</Data></for><Para>Yup.</Para></Document>'
131 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin !mojojojo\n\nI<stuff>\n\n=end !mojojojo\n\nYup.\n"),
132 '<Document><Para>I like pie.</Para><for target="!mojojojo" target_matching="!"><Data xml:space="preserve">I<stuff></Data></for><Para>Yup.</Para></Document>'
134 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin !:mojojojo\n\nI<stuff>\n\n=end !:mojojojo\n\nYup.\n"),
135 '<Document><Para>I like pie.</Para><for target="!:mojojojo" target_matching="!"><Para><I>stuff</I></Para></for><Para>Yup.</Para></Document>'
137 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin :!mojojojo \n\nI<stuff>\n\n=end :!mojojojo \t \n\nYup.\n"),
138 '<Document><Para>I like pie.</Para><for target=":!mojojojo" target_matching="!"><Para><I>stuff</I></Para></for><Para>Yup.</Para></Document>'
141 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin !crunk,zaz\n\nstuff\n\n=end !crunk,zaz\n\nYup.\n"),
142 '<Document><Para>I like pie.</Para><for target="!crunk,zaz" target_matching="!"><Data xml:space="preserve">stuff</Data></for><Para>Yup.</Para></Document>'
144 ok( $x->_out( \&moj, "=pod\n\nI like pie.\n\n=begin !crunk\n\nstuff\n\n=end !crunk\n\nYup.\n"),
145 '<Document><Para>I like pie.</Para><for target="!crunk" target_matching="!"><Data xml:space="preserve">stuff</Data></for><Para>Yup.</Para></Document>'
147 ok( $x->_out( \&mojtext, "=pod\n\nI like pie.\n\n=begin !crunk\n\nstuff\n\n=end !crunk\n\nYup.\n"),
148 '<Document><Para>I like pie.</Para><for target="!crunk" target_matching="!"><Data xml:space="preserve">stuff</Data></for><Para>Yup.</Para></Document>'
150 ok( $x->_out( \&any, "=pod\n\nI like pie.\n\n=begin !crunk\n\nstuff\n\n=end !crunk\n\nYup.\n"),
151 '<Document><Para>I like pie.</Para><for target="!crunk" target_matching="!"><Data xml:space="preserve">stuff</Data></for><Para>Yup.</Para></Document>'
154 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin !mojojojo\n\nstuff\n\n=end !mojojojo\n\nYup.\n"),
155 '<Document><Para>I like pie.</Para><for target="!mojojojo" target_matching="!"><Data xml:space="preserve">stuff</Data></for><Para>Yup.</Para></Document>'
157 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin !mojojojo\n\nI<stuff>\n\n\n=end !mojojojo\n\nYup.\n"),
158 '<Document><Para>I like pie.</Para><for target="!mojojojo" target_matching="!"><Data xml:space="preserve">I<stuff></Data></for><Para>Yup.</Para></Document>'
161 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin !psketti,mojojojo,crunk\n\n\nI<stuff>\n\n=end !psketti,mojojojo,crunk\n\nYup.\n"),
162 '<Document><Para>I like pie.</Para><for target="!psketti,mojojojo,crunk" target_matching="!"><Data xml:space="preserve">I<stuff></Data></for><Para>Yup.</Para></Document>'
164 ok( $x->_out( "=pod\n\nI like pie.\n\n=begin !:psketti,mojojojo,crunk\n\nI<stuff>\n\n=end !:psketti,mojojojo,crunk\n\nYup.\n"),
165 '<Document><Para>I like pie.</Para><for target="!:psketti,mojojojo,crunk" target_matching="!"><Para><I>stuff</I></Para></for><Para>Yup.</Para></Document>'
168 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
170 print "# Testing accept_target + simple ...\n";
171 ok( $x->_out( \&moj, "=pod\n\nI like pie.\n\n=begin mojojojo\n\nI<stuff>\n\n=end mojojojo \n\nYup.\n"),
172 '<Document><Para>I like pie.</Para><for target="mojojojo" target_matching="mojojojo"><Data xml:space="preserve">I<stuff></Data></for><Para>Yup.</Para></Document>'
174 ok( $x->_out( \&moj, "=pod\n\nI like pie.\n\n=begin psketti,mojojojo,crunk\n\nI<stuff>\n\n=end psketti,mojojojo,crunk \n\nYup.\n"),
175 '<Document><Para>I like pie.</Para><for target="psketti,mojojojo,crunk" target_matching="mojojojo"><Data xml:space="preserve">I<stuff></Data></for><Para>Yup.</Para></Document>'
178 print "# Testing accept_target_as_text + simple ...\n";
179 ok( $x->_out( \&mojtext, "=pod\n\nI like pie.\n\n=begin mojojojo\n\nI<stuff>\n\n=end mojojojo \n\nYup.\n"),
180 '<Document><Para>I like pie.</Para><for target="mojojojo" target_matching="mojojojo"><Para><I>stuff</I></Para></for><Para>Yup.</Para></Document>'
182 ok( $x->_out( \&mojtext, "=pod\n\nI like pie.\n\n=begin psketti,mojojojo,crunk\n\nI<stuff>\n\n=end psketti,mojojojo,crunk \n\nYup.\n"),
183 '<Document><Para>I like pie.</Para><for target="psketti,mojojojo,crunk" target_matching="mojojojo"><Para><I>stuff</I></Para></for><Para>Yup.</Para></Document>'
186 print "# Testing accept_target + two simples ...\n";
188 ok( $x->_out( \&moj, "=pod\n\nI like pie.\n\n=begin mojojojo\n\nI<stuff>\n\nHm, B<things>!\n\n=end mojojojo\n\n\nYup.\n"),
189 '<Document><Para>I like pie.</Para><for target="mojojojo" target_matching="mojojojo"><Data xml:space="preserve">I<stuff></Data><Data xml:space="preserve">Hm, B<things>!</Data></for><Para>Yup.</Para></Document>'
192 ok( $x->_out( \&moj, "=pod\n\nI like pie.\n\n=begin psketti,mojojojo,crunk\n\nI<stuff>\n\nHm, B<things>!\n\n=end psketti,mojojojo,crunk\n\nYup.\n"),
193 '<Document><Para>I like pie.</Para><for target="psketti,mojojojo,crunk" target_matching="mojojojo"><Data xml:space="preserve">I<stuff></Data><Data xml:space="preserve">Hm, B<things>!</Data></for><Para>Yup.</Para></Document>'
196 ok( $x->_out( \&moj, "=pod\n\nI like pie.\n\n=begin :mojojojo\n\nI<stuff>\n\nHm, B<things>!\n\n=end :mojojojo\n\nYup.\n"),
197 '<Document><Para>I like pie.</Para><for target=":mojojojo" target_matching="mojojojo"><Para><I>stuff</I></Para><Para>Hm, <B>things</B>!</Para></for><Para>Yup.</Para></Document>'
199 ok( $x->_out( \&moj, "=pod\n\nI like pie.\n\n=begin :psketti,mojojojo,crunk\n\nI<stuff>\n\nHm, B<things>!\n\n=end :psketti,mojojojo,crunk\n\nYup.\n"),
200 '<Document><Para>I like pie.</Para><for target=":psketti,mojojojo,crunk" target_matching="mojojojo"><Para><I>stuff</I></Para><Para>Hm, <B>things</B>!</Para></for><Para>Yup.</Para></Document>'
203 print "# Testing accept_target_as_text + two simples ...\n";
205 ok( $x->_out( \&mojtext, "=pod\n\nI like pie.\n\n=begin psketti,mojojojo,crunk\n\nI<stuff>\n\nHm, B<things>!\n\n=end psketti,mojojojo,crunk\n\nYup.\n"),
206 '<Document><Para>I like pie.</Para><for target="psketti,mojojojo,crunk" target_matching="mojojojo"><Para><I>stuff</I></Para><Para>Hm, <B>things</B>!</Para></for><Para>Yup.</Para></Document>'
208 ok( $x->_out( \&mojtext, "=pod\n\nI like pie.\n\n=begin :psketti,mojojojo,crunk\n\nI<stuff>\n\nHm, B<things>!\n\n=end :psketti,mojojojo,crunk\n\nYup.\n"),
209 '<Document><Para>I like pie.</Para><for target=":psketti,mojojojo,crunk" target_matching="mojojojo"><Para><I>stuff</I></Para><Para>Hm, <B>things</B>!</Para></for><Para>Yup.</Para></Document>'
214 print "# Testing accept_target + two simples, latter with leading whitespace ...\n";
217 ok( $x->_out( \&moj, "=pod\n\nI like pie.\n\n=begin mojojojo\n\nI<stuff>\n\n Hm, B<things>!\nTrala.\n\n=end mojojojo\n\n\nYup.\n"),
218 qq{<Document><Para>I like pie.</Para><for target="mojojojo" target_matching="mojojojo"><Data xml:space="preserve">I<stuff></Data><Data xml:space="preserve"> Hm, B<things>!\nTrala.\n</Data></for><Para>Yup.</Para></Document>}
220 ok( $x->_out( \&moj, "=pod\n\nI like pie.\n\n=begin psketti,mojojojo,crunk\n\nI<stuff>\n\n Hm, B<things>!\nTrala.\n\n=end psketti,mojojojo,crunk\n\nYup.\n"),
221 qq{<Document><Para>I like pie.</Para><for target="psketti,mojojojo,crunk" target_matching="mojojojo"><Data xml:space="preserve">I<stuff></Data><Data xml:space="preserve"> Hm, B<things>!\nTrala.\n</Data></for><Para>Yup.</Para></Document>}
224 ok( $x->_out( \&moj, "=pod\n\nI like pie.\n\n=begin mojojojo\n\nI<stuff>\n\n Hm, B<things>!\nTrala.\n\n\n=end mojojojo\n\n\nYup.\n"),
225 qq{<Document><Para>I like pie.</Para><for target="mojojojo" target_matching="mojojojo"><Data xml:space="preserve">I<stuff></Data><Data xml:space="preserve"> Hm, B<things>!\nTrala.\n\n</Data></for><Para>Yup.</Para></Document>}
227 ok( $x->_out( \&moj, "=pod\n\nI like pie.\n\n=begin psketti,mojojojo,crunk\n\nI<stuff>\n\n Hm, B<things>!\nTrala.\n\n\n=end psketti,mojojojo,crunk\n\nYup.\n"),
228 qq{<Document><Para>I like pie.</Para><for target="psketti,mojojojo,crunk" target_matching="mojojojo"><Data xml:space="preserve">I<stuff></Data><Data xml:space="preserve"> Hm, B<things>!\nTrala.\n\n</Data></for><Para>Yup.</Para></Document>}
232 print "# Testing :-target and accept_target + two simples, latter with leading whitespace ...\n";
234 ok( $x->_out( \&moj, "=pod\n\nI like pie.\n\n=begin :mojojojo\n\nI<stuff>\nTrala!\n\n Hm, B<things>!\nTrala.\n\n=end :mojojojo\n\nYup.\n"),
235 qq{<Document><Para>I like pie.</Para><for target=":mojojojo" target_matching="mojojojo"><Para><I>stuff</I> Trala!</Para><Verbatim xml:space="preserve"> Hm, B<things>!\nTrala.</Verbatim></for><Para>Yup.</Para></Document>}
237 ok( $x->_out( \&moj, "=pod\n\nI like pie.\n\n=begin :psketti,mojojojo,crunk\n\nI<stuff>\nTrala!\n\n Hm, B<things>!\nTrala.\n\n=end :psketti,mojojojo,crunk\n\nYup.\n"),
238 qq{<Document><Para>I like pie.</Para><for target=":psketti,mojojojo,crunk" target_matching="mojojojo"><Para><I>stuff</I> Trala!</Para><Verbatim xml:space="preserve"> Hm, B<things>!\nTrala.</Verbatim></for><Para>Yup.</Para></Document>}
241 print "# now with accept_target_as_text\n";
242 ok( $x->_out( \&mojtext, "=pod\n\nI like pie.\n\n=begin mojojojo\n\nI<stuff>\nTrala!\n\n Hm, B<things>!\nTrala.\n\n=end mojojojo\n\nYup.\n"),
243 qq{<Document><Para>I like pie.</Para><for target="mojojojo" target_matching="mojojojo"><Para><I>stuff</I> Trala!</Para><Verbatim xml:space="preserve"> Hm, B<things>!\nTrala.</Verbatim></for><Para>Yup.</Para></Document>}
245 ok( $x->_out( \&mojtext, join "\n\n" =>
246 "=pod\n\nI like pie.\n\n=begin psketti,mojojojo,crunk",
248 " Hm, B<things>!\nTrala.",
249 "=end psketti,mojojojo,crunk",
252 qq{<Document><Para>I like pie.</Para>}.
253 qq{<for target="psketti,mojojojo,crunk" target_matching="mojojojo">}.
254 qq{<Para><I>stuff</I> Trala!</Para>}.
255 qq{<Verbatim xml:space="preserve"> Hm, B<things>!\nTrala.</Verbatim>}.
256 qq{</for><Para>Yup.</Para></Document>}
259 print "# Now with five paragraphs (p,v,v,p,p) and accept_target_as_text\n";
261 ok( $x->_out( \&mojtext, join "\n\n" =>
262 "=pod\n\nI like pie.\n\n=begin psketti,mojojojo,crunk",
264 " Hm, B<things>!\nTrala.",
265 " Oh, F<< dodads >>!\nHurf.",
266 "Boing C<spr-\t\n\t\t\toink>\n Blorg!",
267 "Woohah S<thwack\nwoohah>squim!",
268 "=end psketti,mojojojo,crunk",
271 qq{<Document><Para>I like pie.</Para>}.
272 qq{<for target="psketti,mojojojo,crunk" target_matching="mojojojo">}.
273 qq{<Para><I>stuff</I> Trala!</Para>}.
274 qq{<Verbatim xml:space="preserve"> Hm, B<things>!\nTrala.\n\n}.
275 qq{ Oh, F<< dodads >>!\nHurf.</Verbatim>}.
276 qq{<Para>Boing <C>spr- oink</C> Blorg!</Para>}.
277 qq{<Para>Woohah <S>thwack woohah</S>squim!</Para>}.
278 qq{</for><Para>Yup.</Para></Document>}
283 print "#\n# Now nested begin...end regions...\n";
285 sub mojprok { shift->accept_targets(qw{mojojojo prok}) }
287 ok( $x->_out( \&mojprok, join "\n\n" =>
288 "=pod\n\nI like pie.",
289 "=begin :psketti,mojojojo,crunk",
291 " Hm, B<things>!\nTrala.",
292 " Oh, F<< dodads >>!\nHurf.",
293 "Boing C<spr-\t\n\t\t\toink>\n Blorg!",
295 "Woohah S<thwack\nwoohah>squim!",
298 "=end :psketti,mojojojo,crunk",
301 qq{<Document><Para>I like pie.</Para>}.
302 qq{<for target=":psketti,mojojojo,crunk" target_matching="mojojojo">}.
303 qq{<Para><I>stuff</I> Trala!</Para>}.
304 qq{<Verbatim xml:space="preserve"> Hm, B<things>!\nTrala.\n\n}.
305 qq{ Oh, F<< dodads >>!\nHurf.</Verbatim>}.
306 qq{<Para>Boing <C>spr- oink</C> Blorg!</Para>}.
307 qq{<for target=":prok" target_matching="prok">}.
308 qq{<Para>Woohah <S>thwack woohah</S>squim!</Para>}.
310 qq{<Para>Zubaaz.</Para>}.
312 qq{<Para>Yup.</Para></Document>}
316 print "# a little more complex this time...\n";
318 ok( $x->_out( \&mojprok, join "\n\n" =>
319 "=pod\n\nI like pie.",
320 "=begin :psketti,mojojojo,crunk",
322 " Hm, B<things>!\nTrala.",
323 " Oh, F<< dodads >>!\nHurf.",
324 "Boing C<spr-\t\n\t\t\toink>\n Blorg!",
326 " Blorp, B<things>!\nTrala.",
327 " Khh, F<< dodads >>!\nHurf.",
328 "Woohah S<thwack\nwoohah>squim!",
331 "=end :psketti,mojojojo,crunk",
334 qq{<Document><Para>I like pie.</Para>}.
335 qq{<for target=":psketti,mojojojo,crunk" target_matching="mojojojo">}.
336 qq{<Para><I>stuff</I> Trala!</Para>}.
337 qq{<Verbatim xml:space="preserve"> Hm, B<things>!\nTrala.\n\n}.
338 qq{ Oh, F<< dodads >>!\nHurf.</Verbatim>}.
339 qq{<Para>Boing <C>spr- oink</C> Blorg!</Para>}.
340 qq{<for target=":prok" target_matching="prok">}.
341 qq{<Verbatim xml:space="preserve"> Blorp, B<things>!\nTrala.\n\n}.
342 qq{ Khh, F<< dodads >>!\nHurf.</Verbatim>}.
343 qq{<Para>Woohah <S>thwack woohah</S>squim!</Para>}.
345 qq{<Para>Zubaaz.</Para>}.
347 qq{<Para>Yup.</Para></Document>}
352 print "# Now with nesting where inner region is non-resolving...\n";
354 ok( $x->_out( \&mojprok, join "\n\n" =>
355 "=pod\n\nI like pie.",
356 "=begin :psketti,mojojojo,crunk",
358 " Hm, B<things>!\nTrala.",
359 " Oh, F<< dodads >>!\nHurf.",
360 "Boing C<spr-\t\n\t\t\toink>\n Blorg!",
362 " Blorp, B<things>!\nTrala.",
363 " Khh, F<< dodads >>!\nHurf.",
364 "Woohah S<thwack\nwoohah>squim!",
367 "=end :psketti,mojojojo,crunk",
370 qq{<Document><Para>I like pie.</Para>}.
371 qq{<for target=":psketti,mojojojo,crunk" target_matching="mojojojo">}.
372 qq{<Para><I>stuff</I> Trala!</Para>}.
373 qq{<Verbatim xml:space="preserve"> Hm, B<things>!\nTrala.\n\n}.
374 qq{ Oh, F<< dodads >>!\nHurf.</Verbatim>}.
375 qq{<Para>Boing <C>spr- oink</C> Blorg!</Para>}.
376 qq{<for target="prok" target_matching="prok">}.
377 qq{<Data xml:space="preserve"> Blorp, B<things>!\nTrala.\n\n}.
378 qq{ Khh, F<< dodads >>!\nHurf.\n</Data>}.
379 qq{<Data xml:space="preserve">Woohah S<thwack\nwoohah>squim!</Data>}.
381 qq{<Para>Zubaaz.</Para>}.
383 qq{<Para>Yup.</Para></Document>}
388 print "# Now a begin...end with a non-resolving for inside\n";
390 ok( $x->_out( \&mojprok, join "\n\n" =>
391 "=pod\n\nI like pie.",
392 "=begin :psketti,mojojojo,crunk",
394 " Hm, B<things>!\nTrala.",
395 " Oh, F<< dodads >>!\nHurf.",
396 "Boing C<spr-\t\n\t\t\toink>\n Blorg!",
398 . " Blorp, B<things>!\nTrala.\n Khh, F<< dodads >>!\nHurf.",
400 "=end :psketti,mojojojo,crunk",
403 qq{<Document><Para>I like pie.</Para>}.
404 qq{<for target=":psketti,mojojojo,crunk" target_matching="mojojojo">}.
405 qq{<Para><I>stuff</I> Trala!</Para>}.
406 qq{<Verbatim xml:space="preserve"> Hm, B<things>!\nTrala.\n\n}.
407 qq{ Oh, F<< dodads >>!\nHurf.</Verbatim>}.
408 qq{<Para>Boing <C>spr- oink</C> Blorg!</Para>}.
409 qq{<for target="prok" target_matching="prok">}.
410 qq{<Data xml:space="preserve">Blorp, B<things>!\nTrala.\n}.
411 qq{ Khh, F<< dodads >>!\nHurf.</Data>}.
413 qq{<Para>Zubaaz.</Para>}.
415 qq{<Para>Yup.</Para></Document>}
421 print "# Now a begin...end with a resolving for inside\n";
423 ok( $x->_out( \&mojprok, join "\n\n" =>
424 "=pod\n\nI like pie.",
425 "=begin :psketti,mojojojo,crunk",
427 " Hm, B<things>!\nTrala.",
428 " Oh, F<< dodads >>!\nHurf.",
429 "Boing C<spr-\t\n\t\t\toink>\n Blorg!",
431 . " Blorp, B<things>!\nTrala.\n Khh, F<< dodads >>!\nHurf.",
433 "=end :psketti,mojojojo,crunk",
436 qq{<Document><Para>I like pie.</Para>}.
437 qq{<for target=":psketti,mojojojo,crunk" target_matching="mojojojo">}.
438 qq{<Para><I>stuff</I> Trala!</Para>}.
439 qq{<Verbatim xml:space="preserve"> Hm, B<things>!\nTrala.\n\n}.
440 qq{ Oh, F<< dodads >>!\nHurf.</Verbatim>}.
441 qq{<Para>Boing <C>spr- oink</C> Blorg!</Para>}.
442 qq{<for target=":prok" target_matching="prok">}.
443 qq{<Para>Blorp, <B>things</B>! Trala. Khh, }.
444 qq{<F>dodads</F>! Hurf.</Para>}.
446 qq{<Para>Zubaaz.</Para>}.
448 qq{<Para>Yup.</Para></Document>}
454 print "# Wrapping up... one for the road...\n";
456 print "# --- Done with ", __FILE__, " --- \n";