Fix [perl #66970] Incorrect coderef in MODIFY_CODE_ATTRIBUTES
[p5sagit/p5-mst-13.2.git] / ext / List-Util / t / blessed.t
1 #!./perl
2
3 BEGIN {
4     unless (-d 'blib') {
5         chdir 't' if -d 't';
6         @INC = '../lib';
7         require Config; import Config;
8         keys %Config; # Silence warning
9         if ($Config{extensions} !~ /\bList\/Util\b/) {
10             print "1..0 # Skip: List::Util was not built\n";
11             exit 0;
12         }
13     }
14 }
15
16 use Test::More tests => 11;
17 use Scalar::Util qw(blessed);
18 use vars qw($t $x);
19
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');
26
27 $x = bless [], "ABC";
28 is(blessed($x), "ABC",  'blessed ARRAY-ref');
29
30 $x = bless {}, "DEF";
31 is(blessed($x), "DEF",  'blessed HASH-ref');
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