Gtk2

 view release on metacpan or  search on metacpan

t/GtkFileChooser.t  view on Meta::CPAN

#
# $Id$
#

use Gtk2::TestHelper
	at_least_version => [2, 4, 0, 'GtkFileChooser is new in 2.4'],
	tests => 43,
	skip_all => 'this test is unreliable',
	;
use File::Spec;
use Cwd;

sub update {
  Gtk2->main_iteration while Gtk2->events_pending;
}

my $file_chooser = Gtk2::FileChooserWidget->new ('save');

isa_ok ($file_chooser, 'Gtk2::FileChooser');

is ($file_chooser->get_action, 'save', 'mode option from construction');

# Filename manipulation
#
my $filename = 'something that may not exist';
my $cwd = cwd ();

$file_chooser->set_current_name ($filename);
update; is_idle (sub {$file_chooser->get_filename},
                 undef,
                 'set current name');

$filename = File::Spec->catfile ($cwd, 'gtk2perl.h');
ok ($file_chooser->set_filename ($filename),
    'set filename to something that exists');
update; is_idle (sub {$file_chooser->get_filename},
                 $filename,
                 'set current name to something that does exist');

ok ($file_chooser->select_filename ($filename));
update; is_idle (sub {$file_chooser->get_filename},
                 $filename,
                 'select something');

my @list = $file_chooser->get_filenames;
is (scalar (@list), 1, 'selected one thing');
is ($list[0], $filename, 'selected '.$filename);

$file_chooser->select_all;
@list = $file_chooser->get_filenames;
ok (scalar (@list));
$file_chooser->unselect_all;

my $folder = File::Spec->catfile ($cwd, 't');
ok ($file_chooser->set_current_folder ($folder));
update; is_idle (sub{$file_chooser->get_current_folder}, $folder);

ok ($file_chooser->set_current_folder ($cwd));
update; is_idle (sub{$file_chooser->get_current_folder}, $cwd);

# URI manipulation
#
my $uri = Glib::filename_to_uri (File::Spec->rel2abs ($0), undef);
ok ($file_chooser->set_uri ($uri));
update; is_idle (sub {$file_chooser->get_uri},
                 $uri,
                 'uri');

ok ($file_chooser->select_uri ($uri));
update; ok_idle (sub {scalar ($file_chooser->get_uris)},
                 'selected a uri');
$file_chooser->unselect_uri ($uri);



( run in 0.666 second using v1.01-cache-2.11-cpan-39bf76dae61 )