1use strict;
2use warnings;
3
4use Test::More;
5use Prima::sys::Test;
6
7plan tests => 8;
8
9reset_flag();
10my @xpm = (0,0);
11my $sub_ref = \&set_flag;
12
13my $window = create_window;
14my $c = $window-> insert( Component =>
15                          onCreate  => $sub_ref,
16                          onDestroy => $sub_ref,
17                          onPostMessage => sub { set_flag; @xpm = ($_[1],$_[2])},
18                          name => 'gumbo jumbo',
19    );
20# 1
21ok($c, "create" );
22ok(get_flag, "onCreate" );
23is($c-> name, 'gumbo jumbo', "name" );
24$c-> post_message("abcd", [1..200]);
25$c-> owner( $::application);
26$c-> owner( $window );
27# 4
28reset_flag;
29ok(wait_flag, "onPostMessage" );
30is($xpm[0], 'abcd', "onPostMessage" );
31is( @{$xpm[1]}, 200, "onPostMessage" );
32reset_flag;
33$c-> destroy;
34ok(get_flag, "onDestroy" );
35# 7
36reset_flag;
37Prima::Drawable-> create( onDestroy => \&set_flag );
38ok( get_flag, "garbage collection" );
39