X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FVariable-Magic.git;a=blobdiff_plain;f=t%2F14-callbacks.t;h=ce87f51fec8e2cc99400b4f842a4bf7d303666bf;hp=77fdd00d68105e0107588826b02b3bc35809df47;hb=7e4218a22df9d95cb7ee69e807675ec8752caa1e;hpb=67183cedd68decfdd05ef3d64b27bb7e07476626 diff --git a/t/14-callbacks.t b/t/14-callbacks.t index 77fdd00..ce87f51 100644 --- a/t/14-callbacks.t +++ b/t/14-callbacks.t @@ -3,7 +3,7 @@ use strict; use warnings; -use Test::More tests => 17; +use Test::More tests => 22; use Variable::Magic qw; @@ -31,18 +31,38 @@ is($x, $n, 'callback returning undef fails'); my $c = 0; sub X::wat { ++$c } my $wiz = eval { wizard get => \'X::wat' }; - is($@, '', 'wizard with a string callback doesn\'t croak'); + is($@, '', 'wizard with a qualified string callback doesn\'t croak'); my $b = $n; my $res = eval { cast $b, $wiz }; - is($@, '', 'cast a wizard with a string callback doesn\'t croak'); + is($@, '', 'cast a wizard with a qualified string callback doesn\'t croak'); my $x; eval { local $SIG{__WARN__} = sub { die }; $x = $b; }; - is($@, '', 'string callback doesn\'t warn/croak'); - is($c, 1, 'string callback is called'); - is($x, $n, 'string callback returns the right thing'); + is($@, '', 'qualified string callback doesn\'t warn/croak'); + is($c, 1, 'qualified string callback is called'); + is($x, $n, 'qualified string callback returns the right thing'); +} + +{ + my $c = 0; + sub wut { fail 'main::wut was called' } + sub Y::wut { ++$c } + my $wiz = eval { wizard get => \'wut' }; + is($@, '', 'wizard with a short string callback doesn\'t croak'); + my $b = $n; + my $res = eval { cast $b, $wiz }; + is($@, '', 'cast a wizard with a short string callback doesn\'t croak'); + my $x; + eval { + local $SIG{__WARN__} = sub { die }; + package Y; + $x = $b; + }; + is($@, '', 'short string callback doesn\'t warn/croak'); + is($c, 1, 'short string callback is called'); + is($x, $n, 'short string callback returns the right thing'); } my @callers;