xref: /openbsd-src/gnu/usr.bin/perl/cpan/Pod-Simple/t/fcodes_l.t (revision 5486feefcc8cb79b19e014ab332cc5dfd05b3b33)
1# fcodes L
2use strict;
3use warnings;
4use Test::More tests => 99;
5
6BEGIN {
7  require FindBin;
8  unshift @INC, $FindBin::Bin . '/lib';
9}
10use helpers;
11
12#use Pod::Simple::Debug (10);
13
14use Pod::Simple::DumpAsXML;
15use Pod::Simple::XMLOutStream;
16print "# Pod::Simple version $Pod::Simple::VERSION\n";
17
18my $x = 'Pod::Simple::XMLOutStream';
19
20print "##### Testing L codes via x class $x...\n";
21
22$Pod::Simple::XMLOutStream::ATTR_PAD   = ' ';
23$Pod::Simple::XMLOutStream::SORT_ATTRS = 1; # for predictably testable output
24
25print "# Simple/moderate L<stuff> tests...\n";
26
27is($x->_out(qq{=pod\n\nL<Net::Ping>\n}),
28 '<Document><Para><L content-implicit="yes" raw="Net::Ping" to="Net::Ping" type="pod">Net::Ping</L></Para></Document>'
29);
30
31is($x->_out(qq{=pod\n\nL<crontab(5)>\n}),
32 '<Document><Para><L content-implicit="yes" raw="crontab(5)" to="crontab(5)" type="man">crontab(5)</L></Para></Document>'
33);
34
35is($x->_out(qq{=pod\n\nL<login.conf(5)>\n}),
36 '<Document><Para><L content-implicit="yes" raw="login.conf(5)" to="login.conf(5)" type="man">login.conf(5)</L></Para></Document>'
37);
38
39is($x->_out(qq{=pod\n\nL<foo_bar(5)>\n}),
40 '<Document><Para><L content-implicit="yes" raw="foo_bar(5)" to="foo_bar(5)" type="man">foo_bar(5)</L></Para></Document>'
41);
42
43is( $x->_out(qq{=pod\n\nL<Net::Ping/Ping-pong>\n}),
44 '<Document><Para><L content-implicit="yes" raw="Net::Ping/Ping-pong" section="Ping-pong" to="Net::Ping" type="pod">&#34;Ping-pong&#34; in Net::Ping</L></Para></Document>'
45);
46
47is( $x->_out(qq{=pod\n\nL<Net::Ping/"Ping-pong">\n}),
48 '<Document><Para><L content-implicit="yes" raw="Net::Ping/&#34;Ping-pong&#34;" section="Ping-pong" to="Net::Ping" type="pod">&#34;Ping-pong&#34; in Net::Ping</L></Para></Document>'
49);
50
51is( $x->_out(qq{=pod\n\nL</"Object Methods">\n}),
52 '<Document><Para><L content-implicit="yes" raw="/&#34;Object Methods&#34;" section="Object Methods" type="pod">&#34;Object Methods&#34;</L></Para></Document>'
53);
54is( $x->_out(qq{=pod\n\nL</Object Methods>\n}),
55 '<Document><Para><L content-implicit="yes" raw="/Object Methods" section="Object Methods" type="pod">&#34;Object Methods&#34;</L></Para></Document>'
56);
57is( $x->_out(qq{=pod\n\nL<"Object Methods">\n}),
58 '<Document><Para><L content-implicit="yes" raw="&#34;Object Methods&#34;" section="Object Methods" type="pod">&#34;Object Methods&#34;</L></Para></Document>'
59);
60
61
62print "# Complex L<stuff> tests...\n";
63print "#  Ents in the middle...\n";
64
65is($x->_out(qq{=pod\n\nL<Net::Ping>\n}),
66 '<Document><Para><L content-implicit="yes" raw="Net::Ping" to="Net::Ping" type="pod">Net::Ping</L></Para></Document>'
67);
68is( $x->_out(qq{=pod\n\nL<Net::Ping/Ping-E<112>ong>\n}),
69 '<Document><Para><L content-implicit="yes" raw="Net::Ping/Ping-E&#60;112&#62;ong" section="Ping-pong" to="Net::Ping" type="pod">&#34;Ping-pong&#34; in Net::Ping</L></Para></Document>'
70);
71is( $x->_out(qq{=pod\n\nL<Net::Ping/"Ping-E<112>ong">\n}),
72 '<Document><Para><L content-implicit="yes" raw="Net::Ping/&#34;Ping-E&#60;112&#62;ong&#34;" section="Ping-pong" to="Net::Ping" type="pod">&#34;Ping-pong&#34; in Net::Ping</L></Para></Document>'
73);
74
75is( $x->_out(qq{=pod\n\nL</"Object E<77>ethods">\n}),
76 '<Document><Para><L content-implicit="yes" raw="/&#34;Object E&#60;77&#62;ethods&#34;" section="Object Methods" type="pod">&#34;Object Methods&#34;</L></Para></Document>'
77);
78is( $x->_out(qq{=pod\n\nL</Object E<77>ethods>\n}),
79 '<Document><Para><L content-implicit="yes" raw="/Object E&#60;77&#62;ethods" section="Object Methods" type="pod">&#34;Object Methods&#34;</L></Para></Document>'
80);
81is( $x->_out(qq{=pod\n\nL<"Object E<77>ethods">\n}),
82 '<Document><Para><L content-implicit="yes" raw="&#34;Object E&#60;77&#62;ethods&#34;" section="Object Methods" type="pod">&#34;Object Methods&#34;</L></Para></Document>'
83);
84
85
86
87print "#  Ents in the middle and at the start...\n";
88
89is($x->_out(qq{=pod\n\nL<E<78>et::Ping>\n}),
90 '<Document><Para><L content-implicit="yes" raw="E&#60;78&#62;et::Ping" to="Net::Ping" type="pod">Net::Ping</L></Para></Document>'
91);
92is( $x->_out(qq{=pod\n\nL<E<78>et::Ping/Ping-E<112>ong>\n}),
93 '<Document><Para><L content-implicit="yes" raw="E&#60;78&#62;et::Ping/Ping-E&#60;112&#62;ong" section="Ping-pong" to="Net::Ping" type="pod">&#34;Ping-pong&#34; in Net::Ping</L></Para></Document>'
94);
95is( $x->_out(qq{=pod\n\nL<E<78>et::Ping/"Ping-E<112>ong">\n}),
96 '<Document><Para><L content-implicit="yes" raw="E&#60;78&#62;et::Ping/&#34;Ping-E&#60;112&#62;ong&#34;" section="Ping-pong" to="Net::Ping" type="pod">&#34;Ping-pong&#34; in Net::Ping</L></Para></Document>'
97);
98
99is( $x->_out(qq{=pod\n\nL</"E<79>bject E<77>ethods">\n}),
100 '<Document><Para><L content-implicit="yes" raw="/&#34;E&#60;79&#62;bject E&#60;77&#62;ethods&#34;" section="Object Methods" type="pod">&#34;Object Methods&#34;</L></Para></Document>'
101);
102is( $x->_out(qq{=pod\n\nL</E<79>bject E<77>ethods>\n}),
103 '<Document><Para><L content-implicit="yes" raw="/E&#60;79&#62;bject E&#60;77&#62;ethods" section="Object Methods" type="pod">&#34;Object Methods&#34;</L></Para></Document>'
104);
105is( $x->_out(qq{=pod\n\nL<"E<79>bject E<77>ethods">\n}),
106 '<Document><Para><L content-implicit="yes" raw="&#34;E&#60;79&#62;bject E&#60;77&#62;ethods&#34;" section="Object Methods" type="pod">&#34;Object Methods&#34;</L></Para></Document>'
107);
108
109
110print "#  Ents in the middle and at the start and at the end...\n";
111
112is($x->_out(qq{=pod\n\nL<E<78>et::PinE<103>>\n}),
113 '<Document><Para><L content-implicit="yes" raw="E&#60;78&#62;et::PinE&#60;103&#62;" to="Net::Ping" type="pod">Net::Ping</L></Para></Document>'
114);
115is( $x->_out(qq{=pod\n\nL<E<78>et::PinE<103>/Ping-E<112>onE<103>>\n}),
116 '<Document><Para><L content-implicit="yes" raw="E&#60;78&#62;et::PinE&#60;103&#62;/Ping-E&#60;112&#62;onE&#60;103&#62;" section="Ping-pong" to="Net::Ping" type="pod">&#34;Ping-pong&#34; in Net::Ping</L></Para></Document>'
117);
118is( $x->_out(qq{=pod\n\nL<E<78>et::PinE<103>/"Ping-E<112>onE<103>">\n}),
119 '<Document><Para><L content-implicit="yes" raw="E&#60;78&#62;et::PinE&#60;103&#62;/&#34;Ping-E&#60;112&#62;onE&#60;103&#62;&#34;" section="Ping-pong" to="Net::Ping" type="pod">&#34;Ping-pong&#34; in Net::Ping</L></Para></Document>'
120);
121
122is( $x->_out(qq{=pod\n\nL</"E<79>bject E<77>ethodE<115>">\n}),
123 '<Document><Para><L content-implicit="yes" raw="/&#34;E&#60;79&#62;bject E&#60;77&#62;ethodE&#60;115&#62;&#34;" section="Object Methods" type="pod">&#34;Object Methods&#34;</L></Para></Document>'
124);
125is( $x->_out(qq{=pod\n\nL</E<79>bject E<77>ethodE<115>>\n}),
126 '<Document><Para><L content-implicit="yes" raw="/E&#60;79&#62;bject E&#60;77&#62;ethodE&#60;115&#62;" section="Object Methods" type="pod">&#34;Object Methods&#34;</L></Para></Document>'
127);
128is( $x->_out(qq{=pod\n\nL<"E<79>bject E<77>ethodE<115>">\n}),
129 '<Document><Para><L content-implicit="yes" raw="&#34;E&#60;79&#62;bject E&#60;77&#62;ethodE&#60;115&#62;&#34;" section="Object Methods" type="pod">&#34;Object Methods&#34;</L></Para></Document>'
130);
131
132
133print "# Even more complex L<stuff> tests...\n";
134
135
136print "#  Ents in the middle...\n";
137
138is($x->_out(qq{=pod\n\nL<Net::Ping>\n}),
139 '<Document><Para><L content-implicit="yes" raw="Net::Ping" to="Net::Ping" type="pod">Net::Ping</L></Para></Document>'
140);
141is( $x->_out(qq{=pod\n\nL<Net::Ping/Ping-E<112>ong>\n}),
142 '<Document><Para><L content-implicit="yes" raw="Net::Ping/Ping-E&#60;112&#62;ong" section="Ping-pong" to="Net::Ping" type="pod">&#34;Ping-pong&#34; in Net::Ping</L></Para></Document>'
143);
144is( $x->_out(qq{=pod\n\nL<Net::Ping/"Ping-E<112>ong">\n}),
145 '<Document><Para><L content-implicit="yes" raw="Net::Ping/&#34;Ping-E&#60;112&#62;ong&#34;" section="Ping-pong" to="Net::Ping" type="pod">&#34;Ping-pong&#34; in Net::Ping</L></Para></Document>'
146);
147
148is( $x->_out(qq{=pod\n\nL</"Object E<77>ethods">\n}),
149 '<Document><Para><L content-implicit="yes" raw="/&#34;Object E&#60;77&#62;ethods&#34;" section="Object Methods" type="pod">&#34;Object Methods&#34;</L></Para></Document>'
150);
151is( $x->_out(qq{=pod\n\nL</Object E<77>ethods>\n}),
152 '<Document><Para><L content-implicit="yes" raw="/Object E&#60;77&#62;ethods" section="Object Methods" type="pod">&#34;Object Methods&#34;</L></Para></Document>'
153);
154is( $x->_out(qq{=pod\n\nL<"Object E<77>ethods">\n}),
155 '<Document><Para><L content-implicit="yes" raw="&#34;Object E&#60;77&#62;ethods&#34;" section="Object Methods" type="pod">&#34;Object Methods&#34;</L></Para></Document>'
156);
157
158
159###########################################################################
160
161print "# VERY complex L sequences...\n";
162print "#  Ents in the middle and at the start...\n";
163
164
165is($x->_out(qq{=pod\n\nL<Net::Ping>\n}),
166 '<Document><Para><L content-implicit="yes" raw="Net::Ping" to="Net::Ping" type="pod">Net::Ping</L></Para></Document>'
167);
168is( $x->_out(qq{=pod\n\nL<Net::Ping/Ping-B<E<112>ong>>\n}),
169 '<Document><Para><L content-implicit="yes" raw="Net::Ping/Ping-B&#60;E&#60;112&#62;ong&#62;" section="Ping-pong" to="Net::Ping" type="pod">&#34;Ping-<B>pong</B>&#34; in Net::Ping</L></Para></Document>'
170);
171is( $x->_out(qq{=pod\n\nL<Net::Ping/"Ping-B<E<112>ong>">\n}),
172 '<Document><Para><L content-implicit="yes" raw="Net::Ping/&#34;Ping-B&#60;E&#60;112&#62;ong&#62;&#34;" section="Ping-pong" to="Net::Ping" type="pod">&#34;Ping-<B>pong</B>&#34; in Net::Ping</L></Para></Document>'
173);
174
175is( $x->_out(qq{=pod\n\nL</"B<Object> E<77>ethods">\n}),
176 '<Document><Para><L content-implicit="yes" raw="/&#34;B&#60;Object&#62; E&#60;77&#62;ethods&#34;" section="Object Methods" type="pod">&#34;<B>Object</B> Methods&#34;</L></Para></Document>'
177);
178is( $x->_out(qq{=pod\n\nL</B<Object> E<77>ethods>\n}),
179 '<Document><Para><L content-implicit="yes" raw="/B&#60;Object&#62; E&#60;77&#62;ethods" section="Object Methods" type="pod">&#34;<B>Object</B> Methods&#34;</L></Para></Document>'
180);
181is( $x->_out(qq{=pod\n\nL<"B<Object> E<77>ethods">\n}),
182 '<Document><Para><L content-implicit="yes" raw="&#34;B&#60;Object&#62; E&#60;77&#62;ethods&#34;" section="Object Methods" type="pod">&#34;<B>Object</B> Methods&#34;</L></Para></Document>'
183);
184
185
186
187print "#  Ents in the middle and at the start...\n";
188
189is($x->_out(qq{=pod\n\nL<E<78>et::Ping>\n}),
190 '<Document><Para><L content-implicit="yes" raw="E&#60;78&#62;et::Ping" to="Net::Ping" type="pod">Net::Ping</L></Para></Document>'
191);
192is( $x->_out(qq{=pod\n\nL<E<78>et::Ping/Ping-B<E<112>ong>>\n}),
193 '<Document><Para><L content-implicit="yes" raw="E&#60;78&#62;et::Ping/Ping-B&#60;E&#60;112&#62;ong&#62;" section="Ping-pong" to="Net::Ping" type="pod">&#34;Ping-<B>pong</B>&#34; in Net::Ping</L></Para></Document>'
194);
195is( $x->_out(qq{=pod\n\nL<E<78>et::Ping/"Ping-B<E<112>ong>">\n}),
196 '<Document><Para><L content-implicit="yes" raw="E&#60;78&#62;et::Ping/&#34;Ping-B&#60;E&#60;112&#62;ong&#62;&#34;" section="Ping-pong" to="Net::Ping" type="pod">&#34;Ping-<B>pong</B>&#34; in Net::Ping</L></Para></Document>'
197);
198
199is( $x->_out(qq{=pod\n\nL</"B<E<79>bject> E<77>ethods">\n}),
200 '<Document><Para><L content-implicit="yes" raw="/&#34;B&#60;E&#60;79&#62;bject&#62; E&#60;77&#62;ethods&#34;" section="Object Methods" type="pod">&#34;<B>Object</B> Methods&#34;</L></Para></Document>'
201);
202is( $x->_out(qq{=pod\n\nL</B<E<79>bject> E<77>ethods>\n}),
203 '<Document><Para><L content-implicit="yes" raw="/B&#60;E&#60;79&#62;bject&#62; E&#60;77&#62;ethods" section="Object Methods" type="pod">&#34;<B>Object</B> Methods&#34;</L></Para></Document>'
204);
205is( $x->_out(qq{=pod\n\nL<"B<E<79>bject> E<77>ethods">\n}),
206 '<Document><Para><L content-implicit="yes" raw="&#34;B&#60;E&#60;79&#62;bject&#62; E&#60;77&#62;ethods&#34;" section="Object Methods" type="pod">&#34;<B>Object</B> Methods&#34;</L></Para></Document>'
207);
208
209
210print "#  Ents in the middle and at the start and at the end...\n";
211
212is($x->_out(qq{=pod\n\nL<E<78>et::PinE<103>>\n}),
213 '<Document><Para><L content-implicit="yes" raw="E&#60;78&#62;et::PinE&#60;103&#62;" to="Net::Ping" type="pod">Net::Ping</L></Para></Document>'
214);
215is( $x->_out(qq{=pod\n\nL<E<78>et::PinE<103>/Ping-B<E<112>onE<103>>>\n}),
216 '<Document><Para><L content-implicit="yes" raw="E&#60;78&#62;et::PinE&#60;103&#62;/Ping-B&#60;E&#60;112&#62;onE&#60;103&#62;&#62;" section="Ping-pong" to="Net::Ping" type="pod">&#34;Ping-<B>pong</B>&#34; in Net::Ping</L></Para></Document>'
217);
218is( $x->_out(qq{=pod\n\nL<E<78>et::PinE<103>/"Ping-B<E<112>onE<103>>">\n}),
219 '<Document><Para><L content-implicit="yes" raw="E&#60;78&#62;et::PinE&#60;103&#62;/&#34;Ping-B&#60;E&#60;112&#62;onE&#60;103&#62;&#62;&#34;" section="Ping-pong" to="Net::Ping" type="pod">&#34;Ping-<B>pong</B>&#34; in Net::Ping</L></Para></Document>'
220);
221
222is( $x->_out(qq{=pod\n\nL</"B<E<79>bject> E<77>ethodE<115>">\n}),
223 '<Document><Para><L content-implicit="yes" raw="/&#34;B&#60;E&#60;79&#62;bject&#62; E&#60;77&#62;ethodE&#60;115&#62;&#34;" section="Object Methods" type="pod">&#34;<B>Object</B> Methods&#34;</L></Para></Document>'
224);
225is( $x->_out(qq{=pod\n\nL</B<E<79>bject> E<77>ethodE<115>>\n}),
226 '<Document><Para><L content-implicit="yes" raw="/B&#60;E&#60;79&#62;bject&#62; E&#60;77&#62;ethodE&#60;115&#62;" section="Object Methods" type="pod">&#34;<B>Object</B> Methods&#34;</L></Para></Document>'
227);
228is( $x->_out(qq{=pod\n\nL<"B<E<79>bject> E<77>ethodE<115>">\n}),
229 '<Document><Para><L content-implicit="yes" raw="&#34;B&#60;E&#60;79&#62;bject&#62; E&#60;77&#62;ethodE&#60;115&#62;&#34;" section="Object Methods" type="pod">&#34;<B>Object</B> Methods&#34;</L></Para></Document>'
230);
231
232
233###########################################################################
234
235print "#\n# L<url> tests...\n";
236
237is( $x->_out(qq{=pod\n\nL<news:comp.lang.perl.misc>\n}),
238 '<Document><Para><L content-implicit="yes" raw="news:comp.lang.perl.misc" to="news:comp.lang.perl.misc" type="url">news:comp.lang.perl.misc</L></Para></Document>'
239);
240is( $x->_out(qq{=pod\n\nL<http://www.perl.com>\n}),
241 '<Document><Para><L content-implicit="yes" raw="http://www.perl.com" to="http://www.perl.com" type="url">http://www.perl.com</L></Para></Document>'
242);
243is( $x->_out(qq{=pod\n\nL<http://www.perl.com/CPAN/authors/id/S/SB/SBURKE/>\n}),
244 '<Document><Para><L content-implicit="yes" raw="http://www.perl.com/CPAN/authors/id/S/SB/SBURKE/" to="http://www.perl.com/CPAN/authors/id/S/SB/SBURKE/" type="url">http://www.perl.com/CPAN/authors/id/S/SB/SBURKE/</L></Para></Document>'
245);
246
247print "# L<url> tests with entities...\n";
248
249is( $x->_out(qq{=pod\n\nL<news:compE<46>lang.perl.misc>\n}),
250 '<Document><Para><L content-implicit="yes" raw="news:compE&#60;46&#62;lang.perl.misc" to="news:comp.lang.perl.misc" type="url">news:comp.lang.perl.misc</L></Para></Document>'
251);
252is( $x->_out(qq{=pod\n\nL<http://wwwE<46>perl.com>\n}),
253 '<Document><Para><L content-implicit="yes" raw="http://wwwE&#60;46&#62;perl.com" to="http://www.perl.com" type="url">http://www.perl.com</L></Para></Document>'
254);
255is( $x->_out(qq{=pod\n\nL<http://wwwE<46>perl.com/CPAN/authors/id/S/SB/SBURKE/>\n}),
256 '<Document><Para><L content-implicit="yes" raw="http://wwwE&#60;46&#62;perl.com/CPAN/authors/id/S/SB/SBURKE/" to="http://www.perl.com/CPAN/authors/id/S/SB/SBURKE/" type="url">http://www.perl.com/CPAN/authors/id/S/SB/SBURKE/</L></Para></Document>'
257);
258is( $x->_out(qq{=pod\n\nL<http://wwwE<46>perl.com/CPAN/authors/id/S/SB/SBURKEE<47>>\n}),
259 '<Document><Para><L content-implicit="yes" raw="http://wwwE&#60;46&#62;perl.com/CPAN/authors/id/S/SB/SBURKEE&#60;47&#62;" to="http://www.perl.com/CPAN/authors/id/S/SB/SBURKE/" type="url">http://www.perl.com/CPAN/authors/id/S/SB/SBURKE/</L></Para></Document>'
260);
261
262
263###########################################################################
264
265
266print "# L<text|stuff> tests...\n";
267
268is($x->_out(qq{=pod\n\nL<things|crontab(5)>\n}),
269 '<Document><Para><L raw="things|crontab(5)" to="crontab(5)" type="man">things</L></Para></Document>'
270);
271is($x->_out(qq{=pod\n\nL<things|crontab(5)/ENVIRONMENT>\n}),
272 '<Document><Para><L raw="things|crontab(5)/ENVIRONMENT" section="ENVIRONMENT" to="crontab(5)" type="man">things</L></Para></Document>'
273);
274is($x->_out(qq{=pod\n\nL<things|crontab(5)/"ENVIRONMENT">\n}),
275 '<Document><Para><L raw="things|crontab(5)/&#34;ENVIRONMENT&#34;" section="ENVIRONMENT" to="crontab(5)" type="man">things</L></Para></Document>'
276);
277
278is( $x->_out(qq{=pod\n\nL<Perl Error Messages|perldiag>\n}),
279 '<Document><Para><L raw="Perl Error Messages|perldiag" to="perldiag" type="pod">Perl Error Messages</L></Para></Document>'
280);
281is( $x->_out(qq{=pod\n\nL<Perl\nError\nMessages|perldiag>\n}),
282 '<Document><Para><L raw="Perl Error Messages|perldiag" to="perldiag" type="pod">Perl Error Messages</L></Para></Document>'
283);
284is( $x->_out(qq{=pod\n\nL<Perl\nError\t  Messages|perldiag>\n}),
285 '<Document><Para><L raw="Perl Error Messages|perldiag" to="perldiag" type="pod">Perl Error Messages</L></Para></Document>'
286);
287
288
289is( $x->_out(qq{=pod\n\nL<SWITCH statements|perlsyn/"Basic BLOCKs and Switch Statements">\n}),
290 '<Document><Para><L raw="SWITCH statements|perlsyn/&#34;Basic BLOCKs and Switch Statements&#34;" section="Basic BLOCKs and Switch Statements" to="perlsyn" type="pod">SWITCH statements</L></Para></Document>'
291);
292is( $x->_out(qq{=pod\n\nL<SWITCH statements|perlsyn/Basic BLOCKs and Switch Statements>\n}),
293 '<Document><Para><L raw="SWITCH statements|perlsyn/Basic BLOCKs and Switch Statements" section="Basic BLOCKs and Switch Statements" to="perlsyn" type="pod">SWITCH statements</L></Para></Document>'
294);
295
296
297is( $x->_out(qq{=pod\n\nL<the various attributes|/"Member Data">\n}),
298 '<Document><Para><L raw="the various attributes|/&#34;Member Data&#34;" section="Member Data" type="pod">the various attributes</L></Para></Document>'
299);
300is( $x->_out(qq{=pod\n\nL<the various attributes|/Member Data>\n}),
301 '<Document><Para><L raw="the various attributes|/Member Data" section="Member Data" type="pod">the various attributes</L></Para></Document>'
302);
303is( $x->_out(qq{=pod\n\nL<the various attributes|"Member Data">\n}),
304 '<Document><Para><L raw="the various attributes|&#34;Member Data&#34;" section="Member Data" type="pod">the various attributes</L></Para></Document>'
305);
306
307
308print "#\n# Now some very complex L<text|stuff> tests...\n";
309
310
311is( $x->_out(qq{=pod\n\nL<Perl B<Error E<77>essages>|perldiag>\n}),
312 '<Document><Para><L raw="Perl B&#60;Error E&#60;77&#62;essages&#62;|perldiag" to="perldiag" type="pod">Perl <B>Error Messages</B></L></Para></Document>'
313);
314is( $x->_out(qq{=pod\n\nL<Perl\nB<Error\nE<77>essages>|perldiag>\n}),
315 '<Document><Para><L raw="Perl B&#60;Error E&#60;77&#62;essages&#62;|perldiag" to="perldiag" type="pod">Perl <B>Error Messages</B></L></Para></Document>'
316);
317is( $x->_out(qq{=pod\n\nL<Perl\nB<Error\t  E<77>essages>|perldiag>\n}),
318 '<Document><Para><L raw="Perl B&#60;Error E&#60;77&#62;essages&#62;|perldiag" to="perldiag" type="pod">Perl <B>Error Messages</B></L></Para></Document>'
319);
320
321
322is( $x->_out(qq{=pod\n\nL<SWITCH B<E<115>tatements>|perlsyn/"Basic I<BLOCKs> and Switch StatementE<115>">\n}),
323 '<Document><Para><L raw="SWITCH B&#60;E&#60;115&#62;tatements&#62;|perlsyn/&#34;Basic I&#60;BLOCKs&#62; and Switch StatementE&#60;115&#62;&#34;" section="Basic BLOCKs and Switch Statements" to="perlsyn" type="pod">SWITCH <B>statements</B></L></Para></Document>'
324);
325is( $x->_out(qq{=pod\n\nL<SWITCH B<E<115>tatements>|perlsyn/Basic I<BLOCKs> and Switch StatementE<115>>\n}),
326 '<Document><Para><L raw="SWITCH B&#60;E&#60;115&#62;tatements&#62;|perlsyn/Basic I&#60;BLOCKs&#62; and Switch StatementE&#60;115&#62;" section="Basic BLOCKs and Switch Statements" to="perlsyn" type="pod">SWITCH <B>statements</B></L></Para></Document>'
327);
328
329
330is( $x->_out(qq{=pod\n\nL<the F<various> attributes|/"Member Data">\n}),
331 '<Document><Para><L raw="the F&#60;various&#62; attributes|/&#34;Member Data&#34;" section="Member Data" type="pod">the <F>various</F> attributes</L></Para></Document>'
332);
333is( $x->_out(qq{=pod\n\nL<the F<various> attributes|/Member Data>\n}),
334 '<Document><Para><L raw="the F&#60;various&#62; attributes|/Member Data" section="Member Data" type="pod">the <F>various</F> attributes</L></Para></Document>'
335);
336is( $x->_out(qq{=pod\n\nL<the F<various> attributes|"Member Data">\n}),
337 '<Document><Para><L raw="the F&#60;various&#62; attributes|&#34;Member Data&#34;" section="Member Data" type="pod">the <F>various</F> attributes</L></Para></Document>'
338);
339
340
341print "#\n# Now some very complex L<text|stuff> tests with variant syntax...\n";
342
343
344is( $x->_out(qq{=pod\n\nL<< Perl B<<< Error E<77>essages >>>|perldiag >>\n}),
345 '<Document><Para><L raw="Perl B&#60;&#60;&#60; Error E&#60;77&#62;essages &#62;&#62;&#62;|perldiag" to="perldiag" type="pod">Perl <B>Error Messages</B></L></Para></Document>'
346);
347is( $x->_out(qq{=pod\n\nL<< Perl\nB<<< Error\nE<77>essages >>>|perldiag >>\n}),
348 '<Document><Para><L raw="Perl B&#60;&#60;&#60; Error E&#60;77&#62;essages &#62;&#62;&#62;|perldiag" to="perldiag" type="pod">Perl <B>Error Messages</B></L></Para></Document>'
349);
350is( $x->_out(qq{=pod\n\nL<< Perl\nB<<< Error\t  E<77>essages >>>|perldiag >>\n}),
351 '<Document><Para><L raw="Perl B&#60;&#60;&#60; Error E&#60;77&#62;essages &#62;&#62;&#62;|perldiag" to="perldiag" type="pod">Perl <B>Error Messages</B></L></Para></Document>'
352);
353
354
355is( $x->_out(qq{=pod\n\nL<< SWITCH B<<< E<115>tatements >>>|perlsyn/"Basic I<<<< BLOCKs >>>> and Switch StatementE<115>" >>\n}),
356 '<Document><Para><L raw="SWITCH B&#60;&#60;&#60; E&#60;115&#62;tatements &#62;&#62;&#62;|perlsyn/&#34;Basic I&#60;&#60;&#60;&#60; BLOCKs &#62;&#62;&#62;&#62; and Switch StatementE&#60;115&#62;&#34;" section="Basic BLOCKs and Switch Statements" to="perlsyn" type="pod">SWITCH <B>statements</B></L></Para></Document>'
357);
358is( $x->_out(qq{=pod\n\nL<< SWITCH B<<< E<115>tatements >>>|perlsyn/Basic I<<<< BLOCKs >>>> and Switch StatementE<115> >>\n}),
359 '<Document><Para><L raw="SWITCH B&#60;&#60;&#60; E&#60;115&#62;tatements &#62;&#62;&#62;|perlsyn/Basic I&#60;&#60;&#60;&#60; BLOCKs &#62;&#62;&#62;&#62; and Switch StatementE&#60;115&#62;" section="Basic BLOCKs and Switch Statements" to="perlsyn" type="pod">SWITCH <B>statements</B></L></Para></Document>'
360);
361
362
363is( $x->_out(qq{=pod\n\nL<<< the F<< various >> attributes|/"Member Data" >>>\n}),
364 '<Document><Para><L raw="the F&#60;&#60; various &#62;&#62; attributes|/&#34;Member Data&#34;" section="Member Data" type="pod">the <F>various</F> attributes</L></Para></Document>'
365);
366is( $x->_out(qq{=pod\n\nL<<< the F<< various >> attributes|/Member Data >>>\n}),
367 '<Document><Para><L raw="the F&#60;&#60; various &#62;&#62; attributes|/Member Data" section="Member Data" type="pod">the <F>various</F> attributes</L></Para></Document>'
368);
369is( $x->_out(qq{=pod\n\nL<<< the F<< various >> attributes|"Member Data" >>>\n}),
370 '<Document><Para><L raw="the F&#60;&#60; various &#62;&#62; attributes|&#34;Member Data&#34;" section="Member Data" type="pod">the <F>various</F> attributes</L></Para></Document>'
371);
372
373###########################################################################
374
375print "#\n# Now some very complex L<text|stuff> tests with variant syntax and text around it...\n";
376
377
378is( $x->_out(qq{=pod\n\nI like L<< Perl B<<< Error E<77>essages >>>|perldiag >>.\n}),
379 '<Document><Para>I like <L raw="Perl B&#60;&#60;&#60; Error E&#60;77&#62;essages &#62;&#62;&#62;|perldiag" to="perldiag" type="pod">Perl <B>Error Messages</B></L>.</Para></Document>'
380);
381is( $x->_out(qq{=pod\n\nI like L<< Perl\nB<<< Error\nE<77>essages >>>|perldiag >>.\n}),
382 '<Document><Para>I like <L raw="Perl B&#60;&#60;&#60; Error E&#60;77&#62;essages &#62;&#62;&#62;|perldiag" to="perldiag" type="pod">Perl <B>Error Messages</B></L>.</Para></Document>'
383);
384is( $x->_out(qq{=pod\n\nI like L<< Perl\nB<<< Error\t  E<77>essages >>>|perldiag >>.\n}),
385 '<Document><Para>I like <L raw="Perl B&#60;&#60;&#60; Error E&#60;77&#62;essages &#62;&#62;&#62;|perldiag" to="perldiag" type="pod">Perl <B>Error Messages</B></L>.</Para></Document>'
386);
387
388
389is( $x->_out(qq{=pod\n\nI like L<< SWITCH B<<< E<115>tatements >>>|perlsyn/"Basic I<<<< BLOCKs >>>> and Switch StatementE<115>" >>.\n}),
390 '<Document><Para>I like <L raw="SWITCH B&#60;&#60;&#60; E&#60;115&#62;tatements &#62;&#62;&#62;|perlsyn/&#34;Basic I&#60;&#60;&#60;&#60; BLOCKs &#62;&#62;&#62;&#62; and Switch StatementE&#60;115&#62;&#34;" section="Basic BLOCKs and Switch Statements" to="perlsyn" type="pod">SWITCH <B>statements</B></L>.</Para></Document>'
391);
392is( $x->_out(qq{=pod\n\nI like L<< SWITCH B<<< E<115>tatements >>>|perlsyn/Basic I<<<< BLOCKs >>>> and Switch StatementE<115> >>.\n}),
393 '<Document><Para>I like <L raw="SWITCH B&#60;&#60;&#60; E&#60;115&#62;tatements &#62;&#62;&#62;|perlsyn/Basic I&#60;&#60;&#60;&#60; BLOCKs &#62;&#62;&#62;&#62; and Switch StatementE&#60;115&#62;" section="Basic BLOCKs and Switch Statements" to="perlsyn" type="pod">SWITCH <B>statements</B></L>.</Para></Document>'
394);
395
396
397is( $x->_out(qq{=pod\n\nI like L<<< the F<< various >> attributes|/"Member Data" >>>.\n}),
398 '<Document><Para>I like <L raw="the F&#60;&#60; various &#62;&#62; attributes|/&#34;Member Data&#34;" section="Member Data" type="pod">the <F>various</F> attributes</L>.</Para></Document>'
399);
400is( $x->_out(qq{=pod\n\nI like L<<< the F<< various >> attributes|/Member Data >>>.\n}),
401 '<Document><Para>I like <L raw="the F&#60;&#60; various &#62;&#62; attributes|/Member Data" section="Member Data" type="pod">the <F>various</F> attributes</L>.</Para></Document>'
402);
403is( $x->_out(qq{=pod\n\nI like L<<< the F<< various >> attributes|"Member Data" >>>.\n}),
404 '<Document><Para>I like <L raw="the F&#60;&#60; various &#62;&#62; attributes|&#34;Member Data&#34;" section="Member Data" type="pod">the <F>various</F> attributes</L>.</Para></Document>'
405);
406
407is( $x->_out(qq{=pod\n\nI like L<<< B<text>s|http://text.com >>>.\n}),
408'<Document><Para>I like <L raw="B&#60;text&#62;s|http://text.com" to="http://text.com" type="url"><B>text</B>s</L>.</Para></Document>'
409);
410is( $x->_out(qq{=pod\n\nI like L<<< text|https://text.com/1/2 >>>.\n}),
411'<Document><Para>I like <L raw="text|https://text.com/1/2" to="https://text.com/1/2" type="url">text</L>.</Para></Document>'
412);
413is( $x->_out(qq{=pod\n\nI like L<<< I<text>|http://text.com >>>.\n}),
414'<Document><Para>I like <L raw="I&#60;text&#62;|http://text.com" to="http://text.com" type="url"><I>text</I></L>.</Para></Document>'
415);
416is( $x->_out(qq{=pod\n\nI like L<<< C<text>|http://text.com >>>.\n}),
417'<Document><Para>I like <L raw="C&#60;text&#62;|http://text.com" to="http://text.com" type="url"><C>text</C></L>.</Para></Document>'
418);
419is( $x->_out(qq{=pod\n\nI like L<<< I<tI<eI<xI<t>>>>|mailto:earlE<64>text.com >>>.\n}),
420'<Document><Para>I like <L raw="I&#60;tI&#60;eI&#60;xI&#60;t&#62;&#62;&#62;&#62;|mailto:earlE&#60;64&#62;text.com" to="mailto:earl@text.com" type="url"><I>t<I>e<I>x<I>t</I></I></I></I></L>.</Para></Document>'
421);
422is( $x->_out(qq{=pod\n\nI like L<<< textZ<>|http://text.com >>>.\n}),
423'<Document><Para>I like <L raw="textZ&#60;&#62;|http://text.com" to="http://text.com" type="url">text</L>.</Para></Document>'
424);
425
426
427
428
429#
430# TODO: S testing.
431#
432