SVK

 view release on metacpan or  search on metacpan

t/24diff.t  view on Meta::CPAN

#!/usr/bin/perl -w
use Test::More tests => 36;
use strict;
use SVK::Test;
our $output;
my ($xd, $svk) = build_test();
my ($copath, $corpath) = get_copath ('diff');
my ($repospath, undef, $repos) = $xd->find_repos ('//', 1);
$svk->checkout ('//', $copath);
is_output_like ($svk, 'diff', [], qr'not a checkout path');
chdir ($copath);
mkdir ('A');
overwrite_file ("A/foo", "foobar\nfnord\n");
overwrite_file ("A/bar", "foobar\n");
overwrite_file ("A/nor", "foobar\n");
$svk->add ('A');
$svk->commit ('-m', 'init');

overwrite_file ("A/binary", "foobar\nfnord\n");
$svk->add ('A/binary');
$svk->propset ('svn:mime-type', 'image/png', 'A/binary');
is_output ($svk, 'diff', ['//asdf-non'],
	   ['Revision required.']);
is_output ($svk, 'diff', ['//asdf-non', 'A/binary'],
	   ['path //asdf-non does not exist.']);
is_output ($svk, 'diff', ['A/binary', '//asdf-non'],
	   ['Invalid arguments.']);
is_output ($svk, 'diff', ['//asdf-non', '//'],
	   ['path //asdf-non does not exist.']);
is_output ($svk, 'diff', [],
           ['=== A/binary',
            '==================================================================',
            'Cannot display: file marked as a binary type.',
            '',
            'Property changes on: A/binary',
            '___________________________________________________________________',
            'Name: svn:mime-type',
            ' +image/png',
	    '']);
overwrite_file ("A/foo", "foobar\nnewline\nfnord\n");
overwrite_file ("A/bar", "foobar\nnewline\n");
overwrite_file ("A/baz", "foobar\n");
$svk->add ('A/baz');
$svk->rm ('A/nor');
$svk->commit ('-m', 'some modification');
overwrite_file ("A/foo", "foobar\nnewline\nfnord\nmorenewline\n");
is_output ($svk, 'diff', [],
	   ['=== A/foo',
	    '==================================================================',
	    "--- A/foo\t(revision 2)",
	    "+++ A/foo\t(local)",
	    '@@ -1,3 +1,4 @@',
	    ' foobar',
	    ' newline',
	    ' fnord',
	    '+morenewline',], 'diff - checkout dir');

is_output ($svk, 'diff', ['A/foo'],
	  [__('=== A/foo'),
	   '==================================================================',
	   __("--- A/foo\t(revision 2)"),
	   __("+++ A/foo\t(local)"),
	   '@@ -1,3 +1,4 @@',
	   ' foobar',
	   ' newline',
	   ' fnord',
	   '+morenewline'], 'diff - checkout file');
my $r12output = ['=== A/foo',
		 '==================================================================',
		 "--- A/foo\t(revision 1)",
		 "+++ A/foo\t(revision 2)",
		 '@@ -1,2 +1,3 @@',
		 ' foobar',
		 '+newline',
		 ' fnord',
		 '=== A/bar',
		 '==================================================================',
		 "--- A/bar\t(revision 1)",
		 "+++ A/bar\t(revision 2)",
		 '@@ -1 +1,2 @@',
		 ' foobar',

t/24diff.t  view on Meta::CPAN


is_output ($svk, 'diff', ['A/foo', 'A/bar'],
	   [__('=== A/foo'),
	    '==================================================================',
	    __("--- A/foo\t(revision 1)"),
	    __("+++ A/foo\t(local)"),
	    '@@ -1,2 +1,3 @@',
	    ' foobar',
	    ' fnord',
	    '+mixed',
	    __('=== A/bar'),
	    '==================================================================',
	    __("--- A/bar\t(revision 2)"),
	    __("+++ A/bar\t(local)"),
	    '@@ -1,2 +1,3 @@',
	    ' foobar',
	    ' newline',
	    '+mixed']);

$svk->revert ('-R', 'A');
unlink ('A/coonly');
$svk->update ;
$svk->rm ('A');

is_sorted_output ($svk, 'diff', [],
	   ["=== A\t(deleted directory)",
	    '==================================================================',
            '=== A/foo',
	    '==================================================================',
	    "--- A/foo\t(revision 3)",
	    "+++ A/foo\t(local)",
	    '@@ -1,3 +0,0 @@',
	    '-foobar',
	    '-newline',
	    '-fnord',
	    '=== A/bar',
	    '==================================================================',
	    "--- A/bar\t(revision 3)",
	    "+++ A/bar\t(local)",
	    '@@ -1,2 +0,0 @@',
	    '-foobar',
	    '-newline',
            '=== A/binary',
            '==================================================================',
            'Cannot display: file marked as a binary type.',
            '',
            'Property changes on: A/binary',
            '___________________________________________________________________',
            'Name: svn:mime-type',
            ' -image/png',
            '',
	    '=== A/baz',
	    '==================================================================',
	    "--- A/baz\t(revision 3)",
	    "+++ A/baz\t(local)",
	    '@@ -1 +0,0 @@',
	    '-foobar'], 'recursive delete_entry');

$svk->revert ('-R', 'A');
$svk->update;
$svk->propset ('svn:mime-type', 'image/jpg', 'A/binary');
is_output ($svk, 'diff', [],
           ['',
            'Property changes on: A/binary',
            '___________________________________________________________________',
            'Name: svn:mime-type',
            ' -image/png',
            ' +image/jpg',
	    '']);
$svk->commit('-m', 'Property changes for A/binary.');
is_output ($svk, 'diff', ['-r4:3'],
           ['',
            'Property changes on: A/binary',
            '___________________________________________________________________',
            'Name: svn:mime-type',
            ' -image/jpg',
            ' +image/png',
	    '']);
is_output ($svk, 'diff', ['-c-4'],
           ['',
            'Property changes on: A/binary',
            '___________________________________________________________________',
            'Name: svn:mime-type',
            ' -image/jpg',
            ' +image/png',
	    '']);

# test with expanding copies
$svk->cp ('-m', 'blah', '//B', '//A/B-cp');
$svk->cp ('//A', 'C');
append_file ("C/foo", "copied and modified on C\n");
TODO: {
local $TODO = 'path sep issues on win32' if IS_WIN32;
is_output($svk, 'diff', ['C'],
	  [__("=== C\t(new directory; copied from ").'/A@5)',
	    '==================================================================',
           __("=== C/foo\t(copied from ").'/A/foo@5)',
	   '==================================================================',
	   __("--- C/foo\t(revision 4)"),
	   __("+++ C/foo\t(local)"),
	   '@@ -1,3 +1,4 @@',
	   ' foobar',
	   ' newline',
	   ' fnord',
	   '+copied and modified on C',
	  ]);
is_output ($svk, 'diff', [-X => 'C'],
	   ["=== C\t(new directory)",
	    '==================================================================',
            __("=== C/B-cp\t(new directory)"),
	    '==================================================================',
            __('=== C/B-cp/bar'),
	    '==================================================================',
	    __("--- C/B-cp/bar\t(revision 4)"),
	    __("+++ C/B-cp/bar\t(local)"),
	    '@@ -0,0 +1 @@',
	    '+foobar',
	    __('=== C/B-cp/foo'),
	    '==================================================================',
	    __("--- C/B-cp/foo\t(revision 4)"),
	    __("+++ C/B-cp/foo\t(local)"),



( run in 0.888 second using v1.01-cache-2.11-cpan-71847e10f99 )