1use strict;
2use warnings;
3
4my $stage = 1;
5
6package GumboJumboObject;
7use vars qw(@ISA);
8use Test::More;
9
10use strict;
11use warnings;
12
13@ISA = qw(Prima::Object);
14
15sub init
16{
17	my $self = shift;
18	ok( $self, "init") if $stage == 1;
19	my %profile = @_;
20	%profile = $self-> SUPER::init( %profile);
21	croak("test!") if $stage == 2;
22	return %profile;
23}
24
25
26sub setup
27{
28	main::set_flag();
29	$_[0]-> SUPER::setup;
30}
31
32sub done
33{
34	my $self = $_[0];
35	$self-> SUPER::done;
36	pass("done" );
37}
38
39package main;
40use strict;
41use warnings;
42
43use Prima::sys::Test qw(noX11);
44use Test::More tests => 8;
45
46reset_flag();
47my $o = GumboJumboObject-> create;
48ok( $o, "create result" );
49ok( $o-> alive, "alive" );
50ok( set_flag, "method override" );
51$o-> destroy;
52ok( !$o-> alive, "destroy");
53$stage++;
54undef $o;
55eval { $o = GumboJumboObject-> create; };
56ok( !defined $o, "croak during init" );
57