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