Commit | Line | Data |
1bfb5477 |
1 | #!./perl |
2 | |
f4a2945e |
3 | BEGIN { |
1bfb5477 |
4 | unless (-d 'blib') { |
f4a2945e |
5 | chdir 't' if -d 't'; |
6 | @INC = '../lib'; |
6b05f64e |
7 | require Config; import Config; |
1bfb5477 |
8 | keys %Config; # Silence warning |
6b05f64e |
9 | if ($Config{extensions} !~ /\bList\/Util\b/) { |
10 | print "1..0 # Skip: List::Util was not built\n"; |
11 | exit 0; |
12 | } |
1bfb5477 |
13 | } |
f4a2945e |
14 | } |
15 | |
2ff28616 |
16 | use Test::More tests => 11; |
f4a2945e |
17 | use Scalar::Util qw(blessed); |
cf083cf9 |
18 | use vars qw($t $x); |
f4a2945e |
19 | |
cf083cf9 |
20 | ok(!blessed(undef), 'undef is not blessed'); |
21 | ok(!blessed(1), 'Numbers are not blessed'); |
22 | ok(!blessed('A'), 'Strings are not blessed'); |
23 | ok(!blessed({}), 'Unblessed HASH-ref'); |
24 | ok(!blessed([]), 'Unblessed ARRAY-ref'); |
25 | ok(!blessed(\$t), 'Unblessed SCALAR-ref'); |
f4a2945e |
26 | |
27 | $x = bless [], "ABC"; |
cf083cf9 |
28 | is(blessed($x), "ABC", 'blessed ARRAY-ref'); |
f4a2945e |
29 | |
cf083cf9 |
30 | $x = bless {}, "DEF"; |
31 | is(blessed($x), "DEF", 'blessed HASH-ref'); |
2ff28616 |
32 | |
33 | $x = bless {}, "0"; |
34 | cmp_ok(blessed($x), "eq", "0", 'blessed HASH-ref'); |
35 | |
36 | { |
37 | my $depth; |
38 | { |
39 | no warnings 'redefine'; |
40 | *UNIVERSAL::can = sub { die "Burp!" if ++$depth > 2; blessed(shift) }; |
41 | } |
42 | $x = bless {}, "DEF"; |
43 | is(blessed($x), "DEF", 'recursion of UNIVERSAL::can'); |
44 | } |
45 | |
46 | { |
47 | package Broken; |
48 | sub isa { die }; |
49 | sub can { die }; |
50 | |
51 | my $obj = bless [], __PACKAGE__; |
52 | ::is( ::blessed($obj), __PACKAGE__, "blessed on broken isa() and can()" ); |
53 | } |
54 | |