xref: /openbsd-src/gnu/usr.bin/perl/cpan/Pod-Simple/t/fake-closers.t (revision 5486feefcc8cb79b19e014ab332cc5dfd05b3b33)
1use strict;
2use warnings;
3use Test::More tests => 7;
4use Data::Dumper;
5
6my $i = 0;
7
8print "# Real closers ...\n";
9
10for my $pod ( "=over\n\nblock\n\n=back",
11              "=over\n\nblock\n\n=cut\n\ncode\n\n=pod\n\n=back",
12              "=begin html\n\ntag\n\n=end html",
13              ) {
14    my $parser = Pod::Simple::Blurb->new();
15    $parser->parse_string_document($pod);
16    is($parser->{'closer-flag'}, -1, "real closer ". ++$i);
17}
18
19$i = 0;
20
21print "# Fake closers ...\n";
22
23for my $pod ("=begin html\n\ntag=cut",
24             "=begin html\n\ntag\n\n=begin xml tag =end xml",
25             "=over\n\nblock=cut",
26             "=over\n\nanother block",
27              ) {
28    my $parser = Pod::Simple::Blurb->new();
29    $parser->parse_string_document($pod);
30    is($parser->{'closer-flag'}, 1, "fake closer ". ++$i);
31}
32
33package Pod::Simple::Blurb;
34use warnings;
35use strict;
36use base qw/Pod::Simple::Methody/;
37
38sub new {
39    my $new = shift->SUPER::new(@_);
40    $new->output_string(\my $doesnotmatter);
41    $new->accept_targets('*');
42    return $new;
43}
44
45sub end_over_block {
46    shift->set(@_);
47}
48sub end_for {
49    shift->set(@_);
50}
51
52sub set {
53    $_[0]{'closer-flag'} = defined $_[1]{'fake-closer'} ? 1 : -1;
54}
55