|
Packit Service |
4fa2ae |
#!/usr/bin/perl
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
use strict;
|
|
Packit Service |
4fa2ae |
BEGIN {
|
|
Packit Service |
4fa2ae |
$| = 1;
|
|
Packit Service |
4fa2ae |
$^W = 1;
|
|
Packit Service |
4fa2ae |
}
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
use Test::More 'no_plan';
|
|
Packit Service |
4fa2ae |
use File::Remove qw{ remove trash };
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
# Set up the tests
|
|
Packit Service |
4fa2ae |
my @dirs = ("$0.tmp", map { "$0.tmp/$_" } qw(a a/b c c/d e e/f g));
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
for my $path ( reverse @dirs ) {
|
|
Packit Service |
4fa2ae |
if ( -e $path ) {
|
|
Packit Service |
4fa2ae |
ok( rmdir($path), "rmdir: $path" );
|
|
Packit Service |
4fa2ae |
ok( !-e $path, "!-e: $path" );
|
|
Packit Service |
4fa2ae |
}
|
|
Packit Service |
4fa2ae |
}
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
for my $path ( @dirs ) {
|
|
Packit Service |
4fa2ae |
ok( ! -e $path, "!-e: $path" );
|
|
Packit Service |
4fa2ae |
ok( mkdir($path, 0777), "mkdir: $path" );
|
|
Packit Service |
4fa2ae |
chmod 0777, $path;
|
|
Packit Service |
4fa2ae |
ok( -e $path, "-e: $path" );
|
|
Packit Service |
4fa2ae |
}
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
for my $path (reverse @dirs) {
|
|
Packit Service |
4fa2ae |
ok( -e $path, "-e: $path" );
|
|
Packit Service |
4fa2ae |
ok( rmdir($path), "rmdir: $path" );
|
|
Packit Service |
4fa2ae |
ok( !-e $path, "!-e: $path" );
|
|
Packit Service |
4fa2ae |
}
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
for my $path ( @dirs ) {
|
|
Packit Service |
4fa2ae |
ok( ! -e $path, "!-e: $path" );
|
|
Packit Service |
4fa2ae |
ok( mkdir($path, 0777), "mkdir: $path" );
|
|
Packit Service |
4fa2ae |
chmod 0777, $path;
|
|
Packit Service |
4fa2ae |
ok( -e $path, "-e: $path" );
|
|
Packit Service |
4fa2ae |
}
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
for my $path (reverse @dirs) {
|
|
Packit Service |
4fa2ae |
ok( -e $path, "-e: $path" );
|
|
Packit Service |
4fa2ae |
ok( remove(\1, $path), "remove \\1: $path" );
|
|
Packit Service |
4fa2ae |
ok( !-e $path, "!-e: $path" );
|
|
Packit Service |
4fa2ae |
}
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
for my $path (@dirs) {
|
|
Packit Service |
4fa2ae |
ok( !-e $path, "!-e: $path" );
|
|
Packit Service |
4fa2ae |
ok( mkdir($path, 0777), "mkdir: $path" );
|
|
Packit Service |
4fa2ae |
chmod 0777, $path;
|
|
Packit Service |
4fa2ae |
ok( -e $path, "-e: $path" );
|
|
Packit Service |
4fa2ae |
}
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
for my $path (reverse @dirs) {
|
|
Packit Service |
4fa2ae |
ok( -e $path, "-e: $path" );
|
|
Packit Service |
4fa2ae |
ok( remove($path), "remove: $path" );
|
|
Packit Service |
4fa2ae |
ok( !-e $path, "!-e: $path" );
|
|
Packit Service |
4fa2ae |
}
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
for my $path (reverse @dirs) {
|
|
Packit Service |
4fa2ae |
ok( !-e $path, "-e: $path" );
|
|
Packit Service |
4fa2ae |
if (-e _) {
|
|
Packit Service |
4fa2ae |
ok( rmdir($path), "rmdir: $path" );
|
|
Packit Service |
4fa2ae |
ok( !-e $path, "!-e: $path" );
|
|
Packit Service |
4fa2ae |
}
|
|
Packit Service |
4fa2ae |
}
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
SKIP: {
|
|
Packit Service |
4fa2ae |
if ($^O eq 'darwin') {
|
|
Packit Service |
4fa2ae |
eval 'use Mac::Glue ();';
|
|
Packit Service |
4fa2ae |
skip "Undelete support requires Mac::Glue", 0 if length $@;
|
|
Packit Service |
4fa2ae |
eval 'Mac::Glue->new("Finder")';
|
|
Packit Service |
4fa2ae |
skip "Undelete support requires Mac::Glue with Finder support", 0 if length $@;
|
|
Packit Service |
4fa2ae |
} elsif ($^O eq 'cygwin' || $^O =~ /^MSWin/) {
|
|
Packit Service |
4fa2ae |
eval 'use Win32::FileOp::Recycle;';
|
|
Packit Service |
4fa2ae |
skip "Undelete support requires Win32::FileOp::Recycle", 0 if length $@;
|
|
Packit Service |
4fa2ae |
} else {
|
|
Packit Service |
4fa2ae |
skip "Undelete support not available by default", 0;
|
|
Packit Service |
4fa2ae |
}
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
for my $path (@dirs) {
|
|
Packit Service |
4fa2ae |
ok( !-e $path, "!-e: $path" );
|
|
Packit Service |
4fa2ae |
ok( mkdir($path, 0777), "mkdir: $path" );
|
|
Packit Service |
4fa2ae |
chmod 0777, $path;
|
|
Packit Service |
4fa2ae |
ok( -e $path, "-e: $path" );
|
|
Packit Service |
4fa2ae |
}
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
for my $path (reverse @dirs) {
|
|
Packit Service |
4fa2ae |
ok( -e $path, "-e: $path" );
|
|
Packit Service |
4fa2ae |
ok( eval { trash($path) }, "trash: $path" );
|
|
Packit Service |
4fa2ae |
is( $@, '', "trash: \$@" );
|
|
Packit Service |
4fa2ae |
ok( !-e $path, "!-e: $path" );
|
|
Packit Service |
4fa2ae |
}
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
for my $path (reverse @dirs) {
|
|
Packit Service |
4fa2ae |
ok( !-e $path, "-e: $path" );
|
|
Packit Service |
4fa2ae |
if (-e _) {
|
|
Packit Service |
4fa2ae |
ok( rmdir($path), "rmdir: $path" );
|
|
Packit Service |
4fa2ae |
ok( !-e $path, "!-e: $path" );
|
|
Packit Service |
4fa2ae |
}
|
|
Packit Service |
4fa2ae |
}
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
for my $path (@dirs) {
|
|
Packit Service |
4fa2ae |
ok( !-e $path, "!-e: $path" );
|
|
Packit Service |
4fa2ae |
ok( mkdir($path, 0777), "mkdir: $path" );
|
|
Packit Service |
4fa2ae |
chmod 0777, $path;
|
|
Packit Service |
4fa2ae |
ok( -e $path, "-e: $path" );
|
|
Packit Service |
4fa2ae |
}
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
for my $path (reverse @dirs) {
|
|
Packit Service |
4fa2ae |
ok( -e $path, "-e: $path" );
|
|
Packit Service |
4fa2ae |
ok( remove($path), "remove: $path" );
|
|
Packit Service |
4fa2ae |
ok( !-e $path, "!-e: $path" );
|
|
Packit Service |
4fa2ae |
}
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
for my $path (reverse @dirs) {
|
|
Packit Service |
4fa2ae |
ok( !-e $path, "-e: $path" );
|
|
Packit Service |
4fa2ae |
if (-e _) {
|
|
Packit Service |
4fa2ae |
ok( rmdir($path), "rmdir: $path" );
|
|
Packit Service |
4fa2ae |
ok( !-e $path, "!-e: $path" );
|
|
Packit Service |
4fa2ae |
}
|
|
Packit Service |
4fa2ae |
}
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
for my $path (@dirs) {
|
|
Packit Service |
4fa2ae |
ok( !-e $path, "!-e: $path" );
|
|
Packit Service |
4fa2ae |
ok( mkdir($path, 0777), "mkdir: $path" );
|
|
Packit Service |
4fa2ae |
chmod 0777, $path;
|
|
Packit Service |
4fa2ae |
ok( -e $path, "-e: $path" );
|
|
Packit Service |
4fa2ae |
}
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
for my $path (reverse @dirs) {
|
|
Packit Service |
4fa2ae |
ok( -e $path, "-e: $path" );
|
|
Packit Service |
4fa2ae |
ok(
|
|
Packit Service |
4fa2ae |
# Fake callbacks will not remove directories, so trash() would return empty list
|
|
Packit Service |
4fa2ae |
eval { trash({ 'rmdir' => sub { 1 }, 'unlink' => sub { 1 } }, $path); 1 },
|
|
Packit Service |
4fa2ae |
"trash: $path",
|
|
Packit Service |
4fa2ae |
);
|
|
Packit Service |
4fa2ae |
ok( -e $path, "-e: $path" );
|
|
Packit Service |
4fa2ae |
ok( rmdir($path), "rmdir: $path" );
|
|
Packit Service |
4fa2ae |
ok( !-e $path, "!-e: $path" );
|
|
Packit Service |
4fa2ae |
}
|
|
Packit Service |
4fa2ae |
|
|
Packit Service |
4fa2ae |
UNDELETE: 1;
|
|
Packit Service |
4fa2ae |
}
|