diff options
author | James E Keenan <jkeenan@cpan.org> | 2018-04-30 09:37:31 -0400 |
---|---|---|
committer | James E Keenan <jkeenan@cpan.org> | 2018-04-30 09:37:31 -0400 |
commit | cdcf21d95ec0b76d43f4466deece0eb40fdc029c (patch) | |
tree | f24345f089498710b8a889bd21ac1f25dc96d62e /t/10_standard_text.t | |
parent | 7f5a62327f0cdce4ac3cfbfbaa90fa6ee35774b7 (diff) |
Reactivate 5 test files.
Diffstat (limited to 't/10_standard_text.t')
-rw-r--r-- | t/10_standard_text.t | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/t/10_standard_text.t b/t/10_standard_text.t new file mode 100644 index 0000000..933bdd1 --- /dev/null +++ b/t/10_standard_text.t @@ -0,0 +1,114 @@ +# t/10_standard_text.t +# tests of importation of standard text from +# lib/ExtUtils/Modulemaker/Defaults.pm +use strict; +use warnings; +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); +} + |