#!/usr/bin/perl # Test that File::Remove (with or without globbing) supports the use of # spaces in the path to delete. use strict; BEGIN { $| = 1; $^W = 1; } use Test::More qw(no_plan); use File::Spec::Functions ':ALL'; use File::Copy (); use File::Remove (); ##################################################################### # Set up for the test my $t = catdir( curdir(), 't' ); my $s = catdir( $t, 'spaced path' ); my $f1 = catfile( $s, 'foo1.txt' ); my $f2 = catfile( $s, 'foo2.txt' ); my $f3 = catfile( $s, 'bar.txt' ); sub create_directory { mkdir($s,0777) or die "Failed to create $s"; ok( -d $s, "Created $s ok" ); ok( -r $s, "Created $s -r" ); ok( -w $s, "Created $s -w" ); open( FILE, ">$f1" ) or die "Failed to create $f1"; print FILE "Test\n"; close FILE; open( FILE, ">$f2" ) or die "Failed to create $f2"; print FILE "Test\n"; close FILE; open( FILE, ">$f3" ) or die "Failed to create $f3"; print FILE "Test\n"; close FILE; } sub clear_directory { if ( -e $f1 ) { unlink( $f1 ) or die "unlink: $f1 failed"; ! -e $f1 or die "unlink didn't work"; } if ( -e $f2 ) { unlink( $f2 ) or die "unlink: $f2 failed"; ! -e $f2 or die "unlink didn't work"; } if ( -e $f3 ) { unlink( $f3 ) or die "unlink: $f3 failed"; ! -e $f3 or die "unlink didn't work"; } if ( -e $s ) { rmdir( $s ) or die "rmdir: $s failed"; ! -e $s or die "rmdir didn't work"; } } # Make sure there is no directory from a previous run clear_directory(); # Create the directory create_directory(); # Schedule cleanup END { clear_directory(); } ##################################################################### # Main Testing # Expand a glob that should match the foo files my @match = File::Remove::expand('t/spaced path/foo*'); is( scalar(@match), 2, 'Found two results' ); ok( $match[0] =~ /foo1.txt/, 'Found foo1' ); ok( $match[1] =~ /foo2.txt/, 'Found foo2' );