#!/usr/bin/env perl

# Some tests for the output of changes when combined with move.

use lib 'lib/perl';
use Test::Darcs;
use Test::More qw/no_plan/;
use strict;
use vars qw/$DARCS/;

die 'darcs not found' unless $ENV{DARCS} || (-x "$ENV{PWD}/../darcs");
$DARCS = $ENV{DARCS} || "$ENV{PWD}/../darcs";



cleanup 'temp1';
`mkdir temp1`;
chdir 'temp1';
`$DARCS init`;
open (DEF, ">_darcs/prefs/defaults") || die "Couldn't write to defaults.";
print DEF "ALL --author tester";
print DEF "ALL --ignore-times";
close(DEF);

`date > foo`; # create foo!

like(`$DARCS add foo`, qr/^$/,
     "darcs add reports nothing");

like(`$DARCS record -m 'add foo' -a`, qr/Finished recording patch 'add foo'/,
     "darcs record reports 'Finished recording patch 'add foo''");

`mkdir d`;

like(`$DARCS add d`, qr/^$/,
     "darcs add reports nothing");

like(`$DARCS record -m 'add d' -a`, qr/Finished recording patch 'add d'/,
     "darcs record reports 'Finished recording patch 'add d''");

like(`$DARCS mv foo d`, qr/^$/,
     "darcs mv reports nothing");

like(`$DARCS record -m 'mv foo to d' -a`,
     qr/Finished recording patch 'mv foo to d'/,
     "darcs record reports 'Finished recording patch 'mv foo to d''");

like(`$DARCS mv d directory`, qr/^$/,
     "darcs mv reports nothing");

like(`$DARCS record -m 'mv d to directory' -a`,
     qr/Finished recording patch 'mv d to directory'/,
     "darcs record reports 'Finished recording patch 'mv d to directory''");

`echo How beauteous mankind is > directory/foo`;

like(`$DARCS record -m 'modify directory/foo' -a`,
     qr/Finished recording patch 'modify directory\/foo'/,
     "darcs record reports 'Finished recording patch 'modify directory/foo''");

my $changes_output = `$DARCS changes directory/foo`;
like($changes_output, qr/add foo/,
     "darcs changes reports 'add foo'");
like($changes_output, qr/mv foo to d/,
     "darcs changes reports 'mv foo to d'");

`echo O brave new world > directory/foo`;
like(`$DARCS mv directory/foo directory/bar`, qr/^$/,
     "darcs mv reports nothing");

`echo That has such people in it > directory/foo`;
like(`$DARCS add directory/foo`, qr/^$/,
     "darcs add reports nothing");

like(`$DARCS record -m 'mv foo then add new foo' -a`,
     qr/Finished recording patch 'mv foo then add new foo'/,
     "darcs record reports 'Finished recording patch 'mv foo then add new foo''");

my $annotate_output = `$DARCS annotate directory/bar`;
like($annotate_output, qr/How beauteous mankind is/,
     "darcs annotate reports 'How beauteous mankind is'");
like($annotate_output, qr/O brave new world/,
     "darcs annotate reports 'O brave new world'");

#my $annotate_output = `$DARCS annotate directory/foo`;
#like($annotate_output, qr/That has such people in it/,
#     "darcs annotate reports 'That has such people in it'");


chdir '../';
`rm -rf temp1`;
ok((!-d 'temp1'), 'temp1 directory was deleted');




