fix Makefile.PL boilerplate bug
[p5sagit/strictures.git] / t / strictures.t
index aecf332..58104fa 100644 (file)
@@ -34,6 +34,10 @@ foreach my $idx (0 .. $#us) {
   is($us[$idx][1], $expect[$idx][1], 'Warnings ok for case '.($idx+1));
 }
 
+my $v;
+eval { $v = strictures->VERSION; 1 } or diag $@;
+is $v, $strictures::VERSION, '->VERSION returns version correctly';
+
 SKIP: {
   skip 'Extra tests disabled on perls <= 5.008003', 1
     if $] < 5.008004;
@@ -47,11 +51,41 @@ SKIP: {
   sub Foo::new { 1 }
   chdir("t/smells-of-vcs");
   local $strictures::Smells_Like_VCS = 1;
-  foreach my $file (qw(lib/one.pm t/one.t)) {
+  foreach my $file (qw(lib/one.pm t/one.faket)) {
     ok(!eval { require $file; 1 }, "Failed to load ${file}");
     like($@, qr{Indirect call of method}, "Failed due to indirect.pm, ok");
   }
   ok(eval { require "other/one.pl"; 1 }, "Loaded other/one.pl ok");
+  chdir("../..");
 }
 
 ok(!eval q{use strictures 2; 1; }, "Can't use strictures 2 (this is version 1)");
+
+SKIP: {
+  skip 'Extra tests disabled on perls <= 5.008003', 1
+    if $] < 5.008004;
+  local $ENV{PERL_STRICTURES_EXTRA} = 1;
+  local $strictures::extra_load_states = undef;
+  local @INC = ("t/dep_constellations/broken", @INC);
+  local %INC = %INC;
+  delete $INC{$_}
+    for qw( indirect.pm multidimensional.pm bareword/filehandles.pm );
+
+  {
+    open my $fh, '>', \my $str;
+    local *STDERR = $fh;
+    strictures->import;
+    like(
+      $str,
+      qr/Missing were:\n\n  indirect multidimensional bareword::filehandles/,
+      "failure to load all three extra deps is reported"
+    );
+  }
+
+  {
+    open my $fh, '>', \my $str;
+    local *STDERR = $fh;
+    strictures->import;
+    ok( !$str, "extra dep load failure is not reported a second time" );
+  }
+}