This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Revert "Update Pod::Simple from 3.43 to 3.45"
[perl5.git] / cpan / Pod-Simple / t / pulltitl.t
1 BEGIN {
2     if($ENV{PERL_CORE}) {
3         chdir 't';
4         @INC = '../lib';
5     }
6 }
7
8 use strict;
9 use warnings;
10 use Test;
11 BEGIN { plan tests => 117 };
12
13 #use Pod::Simple::Debug (5);
14
15 #sub Pod::Simple::MANY_LINES () {1}
16 #sub Pod::Simple::PullParser::DEBUG () {3}
17
18
19 use Pod::Simple::PullParser;
20
21 ok 1;
22
23 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
24 ###########################################################################
25
26 {
27 print "# Testing another set, at line ", __LINE__, "\n";
28
29 my $p = Pod::Simple::PullParser->new;
30 $p->set_source( \qq{\n=head1 NAME\n\nBzorch\n\n=pod\n\nLala\n\n\=cut\n} );
31
32 ok $p->get_title(), 'Bzorch';
33
34 my $t;
35
36 ok( $t = $p->get_token);
37 ok( $t && $t->type, 'start');
38 ok( $t && $t->type eq 'start' && $t->tagname, 'Document' );
39
40 ok( $t = $p->get_token);
41 ok( $t && $t->type, 'start');
42 ok( $t && $t->type eq 'start' && $t->tagname, 'head1' );
43
44 ok( $t = $p->get_token);
45 ok( $t && $t->type, 'text');
46 ok( $t && $t->type eq 'text' && $t->text, 'NAME' );
47
48 DIE: {
49     # Make sure we die.
50     local $@;
51     eval { $p->set_source(\'=head1 foo') };
52     ok $@;
53     ok $@ =~ /\QCannot assign new source to pull parser; create a new instance, instead/;
54 }
55 }
56
57 ###########################################################################
58
59 {
60 print "# Testing a set with nocase, at line ", __LINE__, "\n";
61 my $p = Pod::Simple::PullParser->new;
62 $p->set_source( \qq{\n=head1 Name\n\nShazbot\n\n=pod\n\nLala\n\n\=cut\n} );
63
64 ok $p->get_title(nocase => 1), 'Shazbot';
65
66 ok( my $t = $p->get_token);
67 ok( $t && $t->type, 'start');
68 ok( $t && $t->type eq 'start' && $t->tagname, 'Document' );
69
70 ok( $t = $p->get_token);
71 ok( $t && $t->type, 'start');
72 ok( $t && $t->type eq 'start' && $t->tagname, 'head1' );
73
74 ok( $t = $p->get_token);
75 ok( $t && $t->type, 'text');
76 ok( $t && $t->type eq 'text' && $t->text, 'Name' );
77
78 }
79
80 ###########################################################################
81
82 {
83 print "# Testing another set, at line ", __LINE__, "\n";
84
85 my $p = Pod::Simple::PullParser->new;
86 $p->set_source( \qq{\n=head1 NE<65>ME\n\nBzorch\n\n=pod\n\nLala\n\n\=cut\n} );
87
88 ok $p->get_title(), 'Bzorch';
89 my $t;
90
91 ok( $t = $p->get_token);
92 ok( $t && $t->type, 'start');
93 ok( $t && $t->type eq 'start' && $t->tagname, 'Document' );
94
95 ok( $t = $p->get_token);
96 ok( $t && $t->type, 'start');
97 ok( $t && $t->type eq 'start' && $t->tagname, 'head1' );
98
99 ok( $t = $p->get_token);
100 ok( $t && $t->type, 'text');
101
102 }
103
104
105 ###########################################################################
106
107 {
108 print "# Testing another set, at line ", __LINE__, "\n";
109
110 {
111 my $p = Pod::Simple::PullParser->new;
112 $p->set_source( \qq{\n=head1 NAME\n\nBzorch - I<thing> lala\n\n=pod\n\nLala\n\n\=cut\n} );
113 ok $p->get_title(), 'Bzorch - thing lala';
114 }
115
116
117 my $p = Pod::Simple::PullParser->new;
118 $p->set_source( \qq{\n=head1 NAME\n\nBzorch - I<thing> lala\n\n=pod\n\nLala\n\n\=cut\n} );
119 ok $p->get_title(), 'Bzorch - thing lala';
120
121 my $t;
122
123 ok( $t = $p->get_token);
124 ok( $t && $t->type, 'start');
125 ok( $t && $t->type eq 'start' && $t->tagname, 'Document' );
126
127 ok( $t = $p->get_token);
128 ok( $t && $t->type, 'start');
129 ok( $t && $t->type eq 'start' && $t->tagname, 'head1' );
130
131 ok( $t = $p->get_token);
132 ok( $t && $t->type, 'text');
133 ok( $t && $t->type eq 'text' && $t->text, 'NAME' );
134
135 }
136
137 ###########################################################################
138
139 {
140 print "# Testing another set, at line ", __LINE__, "\n";
141
142 my $p = Pod::Simple::PullParser->new;
143 $p->set_source( \qq{\n=head1 Bzorch lala\n\n=pod\n\nLala\n\n\=cut\n} );
144
145 ok $p->get_title(), 'Bzorch lala';
146 my $t;
147
148 ok( $t = $p->get_token);
149 ok( $t && $t->type, 'start');
150 ok( $t && $t->type eq 'start' && $t->tagname, 'Document' );
151
152 ok( $t = $p->get_token);
153 ok( $t && $t->type, 'start');
154 ok( $t && $t->type eq 'start' && $t->tagname, 'head1' );
155
156 ok( $t = $p->get_token);
157 ok( $t && $t->type, 'text');
158 ok( $t && $t->type eq 'text' && $t->text, 'Bzorch lala' );
159
160 }
161
162 ###########################################################################
163
164 {
165 print "# Testing another set, at line ", __LINE__, "\n";
166
167 my $p = Pod::Simple::PullParser->new;
168 $p->set_source( \qq{\n=head1 Bzorch - I<thing> lala\n\n=pod\n\nLala\n\n\=cut\n} );
169
170 ok $p->get_title(), 'Bzorch - thing lala';
171 my $t;
172
173 ok( $t = $p->get_token);
174 ok( $t && $t->type, 'start');
175 ok( $t && $t->type eq 'start' && $t->tagname, 'Document' );
176
177 ok( $t = $p->get_token);
178 ok( $t && $t->type, 'start');
179 ok( $t && $t->type eq 'start' && $t->tagname, 'head1' );
180
181 ok( $t = $p->get_token);
182 ok( $t && $t->type, 'text');
183 ok( $t && $t->type eq 'text' && $t->text, 'Bzorch - ' );
184
185 }
186 ###########################################################################
187
188 {
189 print "# Testing another set, at line ", __LINE__, "\n";
190
191 my $p = Pod::Simple::PullParser->new;
192 $p->set_source( \qq{\n=head1 Nombre (NAME)\n\nBzorch - I<thing> lala\n\n=pod\n\nGrunk\n\n\=cut\n} );
193
194 ok $p->get_version || '', '';
195 ok $p->get_author  || '', '';
196
197 ok $p->get_title(), 'Bzorch - thing lala';
198
199 my $t;
200 ok( $t = $p->get_token);
201 ok( $t && $t->type, 'start');
202 ok( $t && $t->type eq 'start' && $t->tagname, 'Document' );
203
204 }
205 ###########################################################################
206
207 {
208 print "# Testing another set, at line ", __LINE__, "\n";
209
210 my $p = Pod::Simple::PullParser->new;
211 $p->set_source( \qq{\n=head1 ëÏÇÄÁ ÞÉÔÁÌÁ (NAME)\n\nëÏÇÄÁ ÞÉÔÁÌÁ ÔÙ ÍÕÞÉÔÅÌØÎÙÅ ÓÔÒÏËÉ -- Fet's I<"When you were> reading\n\n=pod\n\nGrunk\n\n\=cut\n} );
212
213 ok $p->get_title(), q{ëÏÇÄÁ ÞÉÔÁÌÁ ÔÙ ÍÕÞÉÔÅÌØÎÙÅ ÓÔÒÏËÉ -- Fet's "When you were reading};
214 my $t;
215
216 ok( $t = $p->get_token);
217 ok( $t && $t->type, 'start');
218 ok( $t && $t->type eq 'start' && $t->tagname, 'Document' );
219
220 }
221
222 ###########################################################################
223
224 {
225 print "# Testing another set, at line ", __LINE__, "\n";
226
227 my $p = Pod::Simple::PullParser->new;
228 $p->set_source( \qq{\n=head1 (NAME) ëÏÇÄÁ ÞÉÔÁÌÁ\n\nëÏÇÄÁ ÞÉÔÁÌÁ ÔÙ ÍÕÞÉÔÅÌØÎÙÅ ÓÔÒÏËÉ -- Fet's I<"When you were> reading\n\n=pod\n\nGrunk\n\n\=cut\n} );
229
230 ok $p->get_title(), q{ëÏÇÄÁ ÞÉÔÁÌÁ ÔÙ ÍÕÞÉÔÅÌØÎÙÅ ÓÔÒÏËÉ -- Fet's "When you were reading};
231 my $t;
232
233 ok( $t = $p->get_token);
234 ok( $t && $t->type, 'start');
235 ok( $t && $t->type eq 'start' && $t->tagname, 'Document' );
236
237 }
238
239 ###########################################################################
240
241 {
242 print "# Testing another set, at line ", __LINE__, "\n";
243
244 my $p = Pod::Simple::PullParser->new;
245 $p->set_source( \qq{\n=head1 (DESCRIPTION) ëÏÇÄÁ ÞÉÔÁÌÁ\n\nëÏÇÄÁ ÞÉÔÁÌÁ ÔÙ ÍÕÞÉÔÅÌØÎÙÅ ÓÔÒÏËÉ -- Fet's I<"When you were> reading\n\n=pod\n\nGrunk\n\n\=cut\n} );
246
247 ok $p->get_title() || '', '';
248 ok $p->get_description(), q{ëÏÇÄÁ ÞÉÔÁÌÁ ÔÙ ÍÕÞÉÔÅÌØÎÙÅ ÓÔÒÏËÉ -- Fet's "When you were reading};
249 my $t;
250
251 ok( $t = $p->get_token);
252 ok( $t && $t->type, 'start');
253 ok( $t && $t->type eq 'start' && $t->tagname, 'Document' );
254
255 }
256 ###########################################################################
257
258 {
259 print "# Testing another set, at line ", __LINE__, "\n";
260
261 my $p = Pod::Simple::PullParser->new;
262 $p->set_source( \qq{\n=head1 (DESCRIPTION) ëÏÇÄÁ ÞÉÔÁÌÁ\n\nëÏÇÄÁ ÞÉÔÁÌÁ ÔÙ ÍÕÞÉÔÅÌØÎÙÅ ÓÔÒÏËÉ -- Fet's I<"When you were> reading\n\n=pod\n\nGrunk\n\n\=cut\n} );
263
264 ok $p->get_description(), q{ëÏÇÄÁ ÞÉÔÁÌÁ ÔÙ ÍÕÞÉÔÅÌØÎÙÅ ÓÔÒÏËÉ -- Fet's "When you were reading};
265 ok $p->get_title() || '', '';
266 my $t;
267
268 ok( $t = $p->get_token);
269 ok( $t && $t->type, 'start');
270 ok( $t && $t->type eq 'start' && $t->tagname, 'Document' );
271
272 }
273
274 ###########################################################################
275
276 {
277 print "# Testing another set, at line ", __LINE__, "\n";
278
279 my $p = Pod::Simple::PullParser->new;
280 $p->set_source( \qq{\n=head1 NAME\n\nThingy\n\n=head1 (DESCRIPTION) ëÏÇÄÁ ÞÉÔÁÌÁ\n\nëÏÇÄÁ ÞÉÔÁÌÁ ÔÙ ÍÕÞÉÔÅÌØÎÙÅ ÓÔÒÏËÉ -- Fet's I<"When you were> reading\n\n=pod\n\nGrunk\n\n\=cut\n} );
281
282 ok $p->get_description(), q{ëÏÇÄÁ ÞÉÔÁÌÁ ÔÙ ÍÕÞÉÔÅÌØÎÙÅ ÓÔÒÏËÉ -- Fet's "When you were reading};
283 ok $p->get_title(), "Thingy";
284 my $t;
285
286 ok( $t = $p->get_token);
287 ok( $t && $t->type, 'start');
288 ok( $t && $t->type eq 'start' && $t->tagname, 'Document' );
289
290 }
291
292 ###########################################################################
293
294 {
295 print "# Testing another set, at line ", __LINE__, "\n";
296
297 my $p = Pod::Simple::PullParser->new;
298 $p->set_source( \qq{\n=head1 NAME\n\nThingy\n\n=head1 (DESCRIPTION) ëÏÇÄÁ ÞÉÔÁÌÁ\n\nëÏÇÄÁ ÞÉÔÁÌÁ ÔÙ ÍÕÞÉÔÅÌØÎÙÅ ÓÔÒÏËÉ -- Fet's I<"When you were> reading\n\n=pod\n\nGrunk\n\n\=cut\n} );
299
300 ok $p->get_title(), "Thingy";
301 ok $p->get_description(), q{ëÏÇÄÁ ÞÉÔÁÌÁ ÔÙ ÍÕÞÉÔÅÌØÎÙÅ ÓÔÒÏËÉ -- Fet's "When you were reading};
302 my $t;
303
304 ok( $t = $p->get_token);
305 ok( $t && $t->type, 'start');
306 ok( $t && $t->type eq 'start' && $t->tagname, 'Document' );
307
308 }
309
310 ###########################################################################
311
312 {
313 print "# Testing another set, at line ", __LINE__, "\n";
314
315 my $p = Pod::Simple::PullParser->new;
316 $p->set_source( \qq{\n=head1 (NAME) ÷ÄÁÌÉ ÐÅÒÅÄ\n\nThingy\n\n=head1 (DESCRIPTION) ëÏÇÄÁ ÞÉÔÁÌÁ\n\nëÏÇÄÁ ÞÉÔÁÌÁ ÔÙ ÍÕÞÉÔÅÌØÎÙÅ ÓÔÒÏËÉ -- Fet's I<"When you were> reading\n\n=pod\n\nGrunk\n\n\=cut\n} );
317
318 ok $p->get_title(), "Thingy";
319 ok $p->get_description(), q{ëÏÇÄÁ ÞÉÔÁÌÁ ÔÙ ÍÕÞÉÔÅÌØÎÙÅ ÓÔÒÏËÉ -- Fet's "When you were reading};
320 my $t;
321
322 ok( $t = $p->get_token);
323 ok( $t && $t->type, 'start');
324 ok( $t && $t->type eq 'start' && $t->tagname, 'Document' );
325
326 }
327
328 ###########################################################################
329
330 {
331 print "# Testing another set, at line ", __LINE__, "\n";
332
333 my $p = Pod::Simple::PullParser->new;
334 $p->set_source( \q{
335
336 =head1 (NAME) ÷ÄÁÌÉ ÐÅÒÅÄ
337
338 Thingy
339
340 =head1 (DESCRIPTION) ëÏÇÄÁ ÞÉÔÁÌÁ
341
342 ëÏÇÄÁ ÞÉÔÁÌÁ ÔÙ ÍÕÞÉÔÅÌØÎÙÅ ÓÔÒÏËÉ -- Fet's I<"When you were> reading
343
344 =pod
345
346 Grunk
347
348 =cut
349 } );
350
351 ok $p->get_title(), "Thingy";
352 ok $p->get_version() || '', '';
353 ok $p->get_description(), q{ëÏÇÄÁ ÞÉÔÁÌÁ ÔÙ ÍÕÞÉÔÅÌØÎÙÅ ÓÔÒÏËÉ -- Fet's "When you were reading};
354 my $t;
355
356 ok( $t = $p->get_token);
357 ok( $t && $t->type, 'start');
358 ok( $t && $t->type eq 'start' && $t->tagname, 'Document' );
359
360 }
361
362 ###########################################################################
363
364 {
365 print "# Testing another set, at line ", __LINE__, "\n";
366
367 my $p = Pod::Simple::PullParser->new;
368 $p->set_source( \q{
369
370 =head1 (NAME) ÷ÄÁÌÉ ÐÅÒÅÄ
371
372 Thingy
373
374 =head1 (DESCRIPTION) ëÏÇÄÁ ÞÉÔÁÌÁ
375
376 ëÏÇÄÁ ÞÉÔÁÌÁ ÔÙ ÍÕÞÉÔÅÌØÎÙÅ ÓÔÒÏËÉ -- Fet's I<"When you were> reading
377
378 =head1 VERSION
379
380   Stuff: Thing
381   Whatever: Um.
382
383 =head1 AUTHOR
384
385 Jojoj E<65>arzarz
386
387 =pod
388
389 Grunk
390
391 =cut
392 } );
393
394 ok $p->get_title(), "Thingy";
395 my $v = $p->get_version || '';
396 $v =~ s/^ +//m;
397 $v =~ s/^\s+//s;
398 $v =~ s/\s+$//s;
399 ok $v, "Stuff: Thing\nWhatever: Um.";
400 ok $p->get_description(), q{ëÏÇÄÁ ÞÉÔÁÌÁ ÔÙ ÍÕÞÉÔÅÌØÎÙÅ ÓÔÒÏËÉ -- Fet's "When you were reading};
401 ok $p->get_author() || '', 'Jojoj Aarzarz';
402
403
404 my $t;
405 ok( $t = $p->get_token);
406 ok( $t && $t->type, 'start');
407 ok( $t && $t->type eq 'start' && $t->tagname, 'Document' );
408
409 }
410
411 ###########################################################################
412 {
413 print "# Testing a title with an X<>, at line ", __LINE__, "\n";
414 my $p = Pod::Simple::PullParser->new;
415 $p->set_source( \qq{\n=head1 NAME Foo Bar\nX<Some entry>\n} );
416
417 ok $p->get_title(), 'NAME Foo Bar';
418 }
419
420 ###########################################################################
421
422
423 print "# Wrapping up... one for the road...\n";
424 ok 1;
425 print "# --- Done with ", __FILE__, " --- \n";
426
427 __END__
428