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 lib $ENV{PERL_CORE} ? '../lib/Module/Build/t/lib' : 't/lib';
use MBTest tests => 8;

use_ok 'Module::Build';
ensure_blib('Module::Build');

use IO::File;
my $tmp = MBTest->tmpdir;

use DistGen;
my $dist = DistGen->new( dir => $tmp );
$dist->regen;

$dist->chdir_in;



my $mb = Module::Build->new_from_context;
my @files;

{
  # Make sure copy_if_modified() can handle spaces in filenames
  
  my @tmp;
  foreach (1..2) {
    my $tmp = File::Spec->catdir('t', "tmp$_");
    $mb->add_to_cleanup($tmp);
    push @files, $tmp;
    unless (-d $tmp) {
      mkdir($tmp, 0777) or die "Can't create $tmp: $!";
    }
    ok -d $tmp;
    $tmp[$_] = $tmp;
  }
  
  my $filename = 'file with spaces.txt';
  
  my $file = File::Spec->catfile($tmp[1], $filename);
  my $fh = IO::File->new($file, '>') or die "Can't create $file: $!";
  print $fh "Foo\n";
  $fh->close;
  ok -e $file;
  
  
  my $file2 = $mb->copy_if_modified(from => $file, to_dir => $tmp[2]);
  ok $file2;
  ok -e $file2;
}

{
  # Try some dir_contains() combinations
  my $first  = File::Spec->catdir('', 'one', 'two');
  my $second = File::Spec->catdir('', 'one', 'two', 'three');
  
  ok( Module::Build->dir_contains($first, $second) );
}

# cleanup
$dist->remove;