Update podlators to version 4.03
[perl.git] / cpan / podlators / t / man / empty.t
1 #!/usr/bin/perl -w
2 #
3 # man-empty.t -- Test Pod::Man with a document that produces only errors.
4 #
5 # Copyright 2013 Russ Allbery <rra@cpan.org>
6 #
7 # This program is free software; you may redistribute it and/or modify it
8 # under the same terms as Perl itself.
9
10 BEGIN {
11     chdir 't' if -d 't';
12     if ($ENV{PERL_CORE}) {
13         @INC = '../lib';
14     }
15     unshift (@INC, '../blib/lib');
16     $| = 1;
17 }
18
19 use strict;
20
21 use Test::More tests => 8;
22 BEGIN { use_ok ('Pod::Man') }
23
24 # Set up Pod::Man to output to a string.
25 my $parser = Pod::Man->new;
26 isa_ok ($parser, 'Pod::Man');
27 my $output;
28 $parser->output_string (\$output);
29
30 # Try a POD document where the only command is invalid.  With recent
31 # Pod::Simple, there will be a POD ERRORS section.  With older versions of
32 # Pod::Simple, we have to skip the test since it doesn't trigger this problem.
33 # Be sure that we don't get any warnings as well as any errors.
34 local $SIG{__WARN__} = sub { die $_[0] };
35 ok (eval { $parser->parse_string_document("=\xa0") },
36     'Parsed invalid document');
37 is ($@, '', '...with no errors');
38 SKIP: {
39     skip 'Pod::Simple does not produce errors for invalid commands', 1
40         if $output eq q{};
41     like ($output, qr{\.SH \"POD ERRORS\"},
42           '...and output contains a POD ERRORS section');
43 }
44
45 # Try with a document containing only =cut.
46 ok (eval { $parser->parse_string_document("=cut") },
47     'Parsed invalid document');
48 is ($@, '', '...with no errors');
49 SKIP: {
50     skip 'Pod::Simple does not produce errors for invalid commands', 1
51         if $output eq q{};
52     like ($output, qr{\.SH \"POD ERRORS\"},
53           '...and output contains a POD ERRORS section');
54 }