]> git.vpit.fr Git - perl/modules/indirect.git/blobdiff - t/10-good.t
Test 'package A; sub foo; foo A->new' that gets deparsed as 'A->foo->new'
[perl/modules/indirect.git] / t / 10-good.t
index 14f96d2e2decd2f66b164b6f3b12b6e8385da615..0132f45ec4ac6ea96569815a5c843706ac071c22 100644 (file)
@@ -1,9 +1,15 @@
 #!perl -T
 
+package Dongs;
+
+sub new;
+
+package main;
+
 use strict;
 use warnings;
 
-use Test::More tests => 32 * 2;
+use Test::More tests => 36 * 4;
 
 my ($obj, $pkg, $cb, $x);
 sub meh;
@@ -12,18 +18,28 @@ sub meh;
  local $/ = "####\n";
  while (<DATA>) {
   chomp;
+  local $SIG{__WARN__} = sub { die 'warn:' . join(' ', @_) };
   {
    use indirect;
-   local $SIG{__WARN__} = sub { die 'warn:' . join(' ', @_) };
    eval "die qq{ok\\n}; $_";
   }
-  is($@, "ok\n", $_);
+  is($@, "ok\n", "use indirect: $_");
   {
    no indirect;
-   local $SIG{__WARN__} = sub { die 'warn:' . join(' ', @_) };
    eval "die qq{ok\n}; $_";
   }
-  is($@, "ok\n", $_);
+  is($@, "ok\n", "no indirect: $_");
+  s/Hlagh/Dongs/g;
+  {
+   use indirect;
+   eval "die qq{ok\\n}; $_";
+  }
+  is($@, "ok\n", "use indirect, defined: $_");
+  {
+   no indirect;
+   eval "die qq{ok\\n}; $_";
+  }
+  is($@, "ok\n", "no indirect, defined: $_");
  }
 }
 
@@ -120,3 +136,11 @@ meh $x, 1 , 2;
 print STDOUT "bananananananana\n";
 ####
 print $x "oh hai\n";
+####
+$x->foo($pkg->$cb)
+####
+$obj = "apple ${\(new Hlagh)} pear"
+####
+$obj = "apple @{[new Hlagh]} pear"
+####
+s/dongs/new Hlagh/e;