13 use_ok( 'Pod::Usage' );
15 # Test verbose level 0
16 my $vbl_0 = << 'EOMSG';
18 The SYNOPSIS section is displayed with -verbose >= 0.
21 my $fake_out = tie *FAKEOUT, 'CatchOut';
22 pod2usage({ -verbose => 0, -exit => 'noexit', -output => \*FAKEOUT });
23 is( $$fake_out, $vbl_0, 'Verbose level 0' );
25 my $msg = "Prefix message for pod2usage()";
27 pod2usage({ -verbose => 0, -exit => 'noexit', -output => \*FAKEOUT,
29 is( $$fake_out, "$msg\n$vbl_0", '-message parameter' );
32 my( $file, $path ) = fileparse( $0 );
33 skip( 'File in current directory', 2 ) if -e $file;
36 pod2usage({ -verbose => 0, -exit => 'noexit',
37 -output => \*FAKEOUT, -input => $file });
39 like( $@, qr/^Can't open $file for reading:/,
40 'File not found without -pathlist' );
43 pod2usage({ -verbose => 0, -exit => 'noexit',
44 -output => \*FAKEOUT, -input => $file,
45 -pathlist => $path });
47 is( $$fake_out, $vbl_0, '-pathlist parameter' );
50 { # Test exit status from pod2usage()
52 my $dev_null = File::Spec->devnull;
53 my $args = join ", ", (
56 "-output => q[$dev_null]",
59 my $prg = qq[pod2usage({ $args })];
60 my @cmd = ( $^X, '-I../lib', '-MPod::Usage', '-e', $prg );
62 is( system( @cmd ) >> 8, $exit, 'Exit status of pod2usage()' );
65 # Test verbose level 1
66 my $vbl_1 = << 'EOMSG';
68 The SYNOPSIS section is displayed with -verbose >= 0.
71 The OPTIONS section is displayed with -verbose >= 1.
74 The ARGUMENTS section is displayed with -verbose >= 1.
78 pod2usage( { -verbose => 1, -exit => 'noexit', -output => \*FAKEOUT } );
79 is( $$fake_out, $vbl_1, 'Verbose level 1' );
81 # Test verbose level 2
83 require Pod::Text; # Pod::Usage->isa( 'Pod::Text' )
85 ( my $p2tp = new Pod::Text )->parse_from_file( $0, \*FAKEOUT );
86 my $pod2text = $$fake_out;
89 pod2usage( { -verbose => 2, -exit => 'noexit', -output => \*FAKEOUT } );
90 my $pod2usage = $$fake_out;
92 is( $pod2usage, $pod2text, 'Verbose level >= 2 eq pod2text' );
96 sub TIEHANDLE { bless \( my $self ), shift }
97 sub PRINT { my $self = shift; $$self .= $_[0] }
103 Usage.t - Tests for Pod::Usage
107 The B<SYNOPSIS> section is displayed with -verbose >= 0.
111 Testing Pod::Usage. This section is not displayed with -verbose < 2.
115 The B<OPTIONS> section is displayed with -verbose >= 1.
119 The B<ARGUMENTS> section is displayed with -verbose >= 1.
123 20020105 Abe Timmerman <abe@ztreet.demon.nl>