use Test::More;
BEGIN { use_ok( 'UI::Dialog::Backend::Zenity' ); }
require_ok( 'UI::Dialog::Backend::Zenity' );
#########################
eval { new UI::Dialog::Backend::Zenity(test_mode=>1); };
if ( $@ ) {
if ($@ =~ m!binary could not be found!) {
diag("Tests skipped, backend binary not found.");
}
else {
diag("An unknown error occurred while trying to use backend: ".$@);
}
done_testing();
}
else {
my $obj = new UI::Dialog::Backend::Zenity
( test_mode => 1 );
isa_ok( $obj, 'UI::Dialog::Backend::Zenity' );
my $bin = $obj->get_bin();
my @methods = qw( new state ra rs rv nautilus xosd beep clear
yesno msgbox inputbox password textbox menu
checklist radiolist fselect dselect );
can_ok( 'UI::Dialog::Backend::Zenity', @methods );
$obj->yesno( title=>"TITLE", text => "TEXT",
width => 64, height => 16 );
is( $obj->get_unit_test_result(),
$bin.q| --title TITLE --width 64 --height 16 --question --text TEXT|
);
$obj->msgbox( title=>"TITLE", text => "TEXT",
width => 64, height => 16 );
is( $obj->get_unit_test_result(),
$bin.q| --title TITLE --width 64 --height 16 --info --text TEXT|
);
$obj->infobox( title=>"TITLE", text => "TEXT",
width => 64, height => 16 );
is( $obj->get_unit_test_result(),
$bin.q| --title TITLE --width 64 --height 16 --info --text TEXT|
);
$obj->inputbox( title=>"TITLE", text => "TEXT",
width => 64, height => 16, entry => "ENTRY" );
is( $obj->get_unit_test_result(),
$bin.q| --title TITLE --width 64 --height 16 --entry --entry-text ENTRY --text TEXT|
);
$obj->password( title=>"TITLE", text => "TEXT",
width => 64, height => 16, entry => "ENTRY" );
is( $obj->get_unit_test_result(),
$bin.q| --title TITLE --width 64 --height 16 --entry --hide-text --entry-text ENTRY --text TEXT|
);
$obj->textbox( title=>"TITLE", path => "$0",
width => 64, height => 16 );
is( $obj->get_unit_test_result(),
$bin.q| --title TITLE --width 64 --height 16 --text-info --filename t/UI-Dialog-Backend-Zenity.t|
);
$obj->menu( title=>"TITLE", text => "TEXT",
width => 64, height => 16,
list => [ "tag0", "item0", "tag1", "item1" ] );
is( $obj->get_unit_test_result(),
$bin.q| --title TITLE --width 64 --height 16 --list --separator '\n' --column " " --column " " "tag0" "item0" "tag1" "item1"|
);
$obj->checklist( title=>"TITLE", text => "TEXT",
width => 64, height => 16,
list => [ "tag0", [ "item0", 0 ], "tag1", [ "item1", 1 ] ] );
is( $obj->get_unit_test_result(),
$bin.q| --title TITLE --width 64 --height 16 --list --checklist --separator '\n' --column " " --column " " --column " " "FALSE" "tag0" "item0" "TRUE" "tag1" "item1"|
);
$obj->radiolist( title=>"TITLE", text => "TEXT",
width => 64, height => 16,
list => [ "tag0", [ "item0", 0 ], "tag1", [ "item1", 1 ] ] );
is( $obj->get_unit_test_result(),
$bin.q| --title TITLE --width 64 --height 16 --list --radiolist --separator '\n' --column " " --column " " --column " " "FALSE" "tag0" "item0" "TRUE" "tag1" "item1"|
);
done_testing();
}