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