summaryrefslogtreecommitdiff
path: root/t/10_standard_text.t
diff options
context:
space:
mode:
authorJames E Keenan <jkeenan@cpan.org>2018-04-30 09:37:31 -0400
committerJames E Keenan <jkeenan@cpan.org>2018-04-30 09:37:31 -0400
commitcdcf21d95ec0b76d43f4466deece0eb40fdc029c (patch)
treef24345f089498710b8a889bd21ac1f25dc96d62e /t/10_standard_text.t
parent7f5a62327f0cdce4ac3cfbfbaa90fa6ee35774b7 (diff)
Reactivate 5 test files.
Diffstat (limited to 't/10_standard_text.t')
-rw-r--r--t/10_standard_text.t114
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);
+}
+