The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w
use strict;
use Gnome2::VFS;

use Test::More;

# $Id$

unless (-d "$ENV{ HOME }/.gnome") {
  plan(skip_all => "You have no ~/.gnome");
}

unless (Gnome2::VFS -> CHECK_VERSION(2, 6, 0)) {
  plan(skip_all => "This is new in 2.6");
}

plan(tests => 14);

Gnome2::VFS -> init();

###############################################################################

my $monitor = Gnome2::VFS -> get_volume_monitor();
my $volume = ($monitor -> get_mounted_volumes())[0];

ok(defined($volume -> get_volume_type()));
ok(defined($volume -> get_device_type()));

my $drive = $volume -> get_drive();
ok(not defined $drive or ref $drive eq "Gnome2::VFS::Drive");

ok(defined $volume -> get_device_path());
ok(defined $volume -> get_activation_uri());
ok(defined $volume -> get_filesystem_type());
ok(defined $volume -> get_display_name());
ok(defined $volume -> get_icon());

my $boolean = qr/^(?:1|)$/;

like($volume -> is_user_visible(), $boolean);
like($volume -> is_read_only(), $boolean);
like($volume -> is_mounted(), $boolean);
like($volume -> handles_trash(), $boolean);

is($volume -> compare($volume), 0);

SKIP: {
  skip("get_hal_udi is new in 2.8", 1)
    unless (Gnome2::VFS -> CHECK_VERSION(2, 8, 0));

  ok(defined $volume -> get_hal_udi());
}

# Gnome2::VFS -> connect_to_server("/mnt/win", "Windows", "windows.png");

###############################################################################

# $volume -> unmount(sub { warn @_; });
# $volume -> eject(sub { warn @_; });

# use Gtk2 -init;
# Glib::Timeout -> add(1000, sub { Gtk2 -> main_quit(); 0; });
# Gtk2 -> main();

###############################################################################

Gnome2::VFS -> shutdown();