]> git.vpit.fr Git - perl/modules/Test-Leaner.git/blobdiff - t/02-import-arg.t
Silence ugly 'redefined' warnings in t/01-import.t with old Test::More
[perl/modules/Test-Leaner.git] / t / 02-import-arg.t
index fd6f0f9835a1bae3b1ce6dd709ae454d01927825..ee3da6b4f3b6b4c60ac5ddc9dd66f0c1b3896f58 100644 (file)
@@ -40,19 +40,27 @@ my @default_exports = qw<
 sub check_imports {
  my %imported     = map { $_ => 1 } @{ $_[0] || [] };
  my @not_imported = @{ $_[1] || [] };
- for (@not_imported, grep !$imported{$_}, @default_exports) {
-  Test::More::ok(!exists $this_stash->{$_}, "$_ was not imported");
- }
- for (grep $imported{$_}, @default_exports) {
-  my $code = get_subroutine($this_stash, $_);
-  Test::More::ok($code, "$_ was imported");
+
+SKIP:
+ {
+  local $Test::Builder::Level = ($Test::Builder::Level || 0) + 1;
+  Test::More::skip($_[2] => @not_imported + @default_exports) if defined $_[2];
+
+  for (@not_imported, grep !$imported{$_}, @default_exports) {
+   Test::More::ok(!exists $this_stash->{$_}, "$_ was not imported");
+  }
+  for (grep $imported{$_}, @default_exports) {
+   my $code = get_subroutine($this_stash, $_);
+   Test::More::ok($code, "$_ was imported");
+  }
  }
+
  delete $this_stash->{$_} for @default_exports, keys %imported, @not_imported;
 }
 
-Test::More::plan(tests => 8 * @default_exports + 7 + 2);
+Test::More::plan(tests => 9 * @default_exports + 8 + 3);
 
-check_imports();
+check_imports([ ], [ ], $Test::More::VERSION > 0.51 ? undef : 'Test::More::plan exports stuff on Test::More <= 0.51');
 
 {
  local $@;
@@ -72,6 +80,15 @@ check_imports();
  check_imports([ ], [ 'nonexistent' ]);
 }
 
+{
+ local $@;
+ eval {
+  Test::Leaner->import(import => [ 'use_ok' ]);
+ };
+ Test::More::like($@, qr/^"use_ok" is not exported by the Test::Leaner module/, 'import "use_ok" croaks');
+ check_imports([ ], [ 'use_ok' ]);
+}
+
 {
  local $@;
  eval {