blob: f0a4c19b25db331aa2b8adef0655d7a62385103c [file] [log] [blame]
#!./perl
BEGIN {
unless (-d 'blib') {
chdir 't' if -d 't';
@INC = '../lib';
require Config; import Config;
keys %Config; # Silence warning
if ($Config{extensions} !~ /\bList\/Util\b/) {
print "1..0 # Skip: List::Util was not built\n";
exit 0;
}
}
}
use Test::More tests => 11;
use Scalar::Util qw(blessed);
use vars qw($t $x);
ok(!blessed(undef), 'undef is not blessed');
ok(!blessed(1), 'Numbers are not blessed');
ok(!blessed('A'), 'Strings are not blessed');
ok(!blessed({}), 'Unblessed HASH-ref');
ok(!blessed([]), 'Unblessed ARRAY-ref');
ok(!blessed(\$t), 'Unblessed SCALAR-ref');
$x = bless [], "ABC";
is(blessed($x), "ABC", 'blessed ARRAY-ref');
$x = bless {}, "DEF";
is(blessed($x), "DEF", 'blessed HASH-ref');
$x = bless {}, "0";
cmp_ok(blessed($x), "eq", "0", 'blessed HASH-ref');
{
my $depth;
{
no warnings 'redefine';
*UNIVERSAL::can = sub { die "Burp!" if ++$depth > 2; blessed(shift) };
}
$x = bless {}, "DEF";
is(blessed($x), "DEF", 'recursion of UNIVERSAL::can');
}
{
package Broken;
sub isa { die };
sub can { die };
my $obj = bless [], __PACKAGE__;
::is( ::blessed($obj), __PACKAGE__, "blessed on broken isa() and can()" );
}