# t/10_standard_text.t
# tests of importation of standard text from
# lib/ExtUtils/Modulemaker/Defaults.pm
use strict;
local $^W = 1;
use Test::More tests => 43;
use_ok( 'ExtUtils::ModuleMaker' );
use_ok( 'ExtUtils::ModuleMaker::Auxiliary', qw(
_save_pretesting_status
_restore_pretesting_status
read_file_string
read_file_array
)
);
my $statusref = _save_pretesting_status();
SKIP: {
eval { require 5.006_001 };
skip "tests require File::Temp, core with 5.6",
(43 - 10) if $@;
use warnings;
use_ok( 'File::Temp', qw| tempdir |);
my ($tdir, $mod, $testmod, $filetext, @makefilelines, @pmfilelines,
@readmelines);
########################################################################
{
$tdir = tempdir( CLEANUP => 1);
ok(chdir $tdir, 'changed to temp directory for testing');
$testmod = 'Beta';
ok( $mod = ExtUtils::ModuleMaker->new(
NAME => "Alpha::$testmod",
COMPACT => 1,
),
"call ExtUtils::ModuleMaker->new for Alpha-$testmod"
);
ok( $mod->complete_build(), 'call complete_build()' );
ok( -d qq{Alpha-$testmod}, "compact top-level directory exists" );
ok( chdir "Alpha-$testmod", "cd Alpha-$testmod" );
ok( -d, "directory $_ exists" ) for ( qw/lib scripts t/);
ok( -f, "file $_ exists" )
for ( qw/Changes LICENSE Makefile.PL MANIFEST README Todo/);
ok( -f, "file $_ exists" )
for ( "lib/Alpha/${testmod}.pm", "t/001_load.t" );
ok($filetext = read_file_string('Makefile.PL'),
'Able to read Makefile.PL');
ok(@pmfilelines = read_file_array("lib/Alpha/${testmod}.pm"),
'Able to read module into array');
# test of main pod wrapper
is( (grep {/^#{20} main pod documentation (begin|end)/} @pmfilelines), 2,
"standard text for POD wrapper found");
# test of block new method
is( (grep {/^sub new/} @pmfilelines), 1,
"new method found");
# test of block module header description
is( (grep {/^sub new/} @pmfilelines), 1,
"new method found");
# test of stub documentation
is( (grep {/^Stub documentation for this module was created/} @pmfilelines),
1,
"stub documentation found");
# test of subroutine header
is( (grep {/^#{20} subroutine header (begin|end)/} @pmfilelines), 2,
"subroutine header found");
# test of final block
is( (grep { /^(1;|# The preceding line will help the module return a true value)$/ } @pmfilelines), 2,
"final module block found");
# test of Makefile text
ok(@makefilelines = read_file_array('Makefile.PL'),
'Able to read Makefile.PL into array');
is( (grep {/^# See lib\/ExtUtils\/MakeMaker.pm for details of how to influence/} @makefilelines), 1,
"Makefile.PL has standard text");
# test of README text
ok(@readmelines = read_file_array('README'),
'Able to read README into array');
is( (grep {/^pod2text $mod->{NAME}/} @readmelines),
1,
"README has correct pod2text line");
is( (grep {/^If this is still here/} @readmelines),
1,
"README has correct top part");
is( (grep {/^(perl Makefile\.PL|make( (test|install))?)/} @readmelines),
4,
"README has appropriate build instructions for MakeMaker");
is( (grep {/^If you are on a windows box/} @readmelines),
1,
"README has correct bottom part");
}
ok(chdir $statusref->{cwd},
"changed back to original directory");
} # end SKIP block
END {
_restore_pretesting_status($statusref);
}