22ef0388263ebad5749da9428f97b07283e920c6
6 use File
::Temp qw
/tempfile/;
7 use Test
::More tests
=> 19;
9 our ($section_1, $section_2, $section_3, $section_4, %options);
12 my ($options, $description) = m/^(.*?)\n\n(.*)/s;
13 my (@options, $longest);
15 for my $option ($options =~ m/\G((?:-\w|--\w+))(?:,\s*)?/g) {
16 push @options, $option;
17 $longest = $option if length $option > length $longest
20 $options{$longest} = {
22 description
=> $description,
27 Pod
::Constants
->import(
28 section_1
=> \
$section_1,
30 section_2
=> \
$section_2,
31 section_3
=> sub { tr/[a-z]/[A-Z]/; $section_3 = $_ },
32 section_4
=> sub { eval },
33 'command line parameters' => sub {
34 Pod
::Constants
::add_hook
('*item' => \
&handle_item
)
38 use_ok
('Pod::Constants');
41 ok
$Pod::Constants
::VERSION
, "Pod::Constants sets its own VERSION";
44 if ( 0 ) { $Cheese::foo
= $ReEntrancyTest::wohoo
= $Cheese::quux
; }
47 is
($section_1, "Down with Pants!\n\n", "no trim from main");
48 is
($section_2, "42", "with trim from main");
49 is
($section_3, "CLANK_EST", "sub");
50 is
($section_4, "touche", "eval");
51 is
($Cheese::foo
, "detcepxe", "From module");
52 is
($ReEntrancyTest::wohoo
, "Re-entrancy works!", "From module");
53 is
($Cheese::quux
, "Blah.", "From module(2)");
54 like
(`$^X -c t/Cheese.pm 2>&1`, qr
/syntax OK
/, "perl -c module");
55 like
(`$^X -c t/cheese.pl 2>&1`, qr
/syntax OK
/, "perl -c script");
57 # test the examples on the man page :)
58 package Pod
::Constants
;
59 Pod
::Constants
->import (SYNOPSIS
=> sub {
60 $main::section_1
= join "\n", map { s/^ //; $_ } split /\n/, $_
64 # why define your test results when you can read them in from POD?
65 $section_1 =~ s/myhash\)/myhash, %myhash2)/;
66 $section_1 =~ s/myhash;/myhash, "%myhash\'s value after the above:" => sub { %myhash2 = eval };/;
68 my ($fh, $file) = tempfile
'pod-constants-testXXXX', TMPDIR
=> 1, UNLINK
=> 1;
76 $INC{'TestManPage.pm'} = $file;
79 is
$TestManPage::myvar
, 'This string will be loaded into $myvar',"man page example 1";
80 is
$TestManPage::VERSION
, $Pod::Constants
::VERSION
, "man page example 2";
81 ok
$TestManPage::VERSION
, "man page example 2 cross-check";
82 is
$TestManPage::myarray
[2], 'For example, this is $myarray[2].', "man page example 3";
85 while (my ($k, $v) = each %TestManPage::myhash
) {
86 if (exists $TestManPage::myhash2
{$k}) { $ok ++ };
87 if ($v eq $TestManPage::myhash2
{$k}) { $ok ++ };
90 is
$ok, 4, "man page example 4";
91 is
scalar keys %TestManPage::myhash
, 2, "man page example 4 cross-check";
92 is
$TestManPage::html
, '<p>This text will be in $html</p>', "man page example 5";
95 $TestManPage::myvar
= $TestManPage::html
= undef;
96 @TestManPage::myarray
= ();
98 is
$options{foo
}->{options
}->[0], "-f", "Pod::Constants::add_hook";
114 $section_4 = "touche"
118 =head1 command line parameters
120 the following command line parameters are supported
124 This does something cool.
128 This also does something pretty cool.
This page took 0.02919 seconds and 3 git commands to generate.