Alien-SVN
view release on metacpan or search on metacpan
src/subversion/subversion/bindings/swig/perl/native/t/6ra.t view on Meta::CPAN
is($ra->get_uuid, $fs->get_uuid, 'get_uuid');
# TEST
is($ra->get_latest_revnum, 2, 'get_latest_revnum');
# TEST
is($ra->get_repos_root, $uri, 'get_repos_root');
# get_dir
{
my ($dirents, $revnum, $props) = $ra->get_dir('trunk',
$SVN::Core::INVALID_REVNUM);
# TEST
isa_ok($dirents, 'HASH', 'get_dir: dirents');
# TEST
is(scalar(keys %$dirents), 2, 'get_dir: num dirents');
# TEST+2
isa_ok($dirents->{$_}, '_p_svn_dirent_t', "get_dir: dirent $_")
for qw( filea fileb );
# TEST
is($revnum, $ra->get_latest_revnum, 'get_dir: revnum');
# TEST
isa_ok($props, 'HASH', 'get_dir: props');
# TEST
is($props->{'dir-prop'}, 'frob', 'get_dir: property dir-prop');
}
# get_file
{
my ($revnum, $props) = $ra->get_file('trunk/filea',
$SVN::Core::INVALID_REVNUM, undef);
# TEST
is($revnum, $ra->get_latest_revnum, 'get_file: revnum');
# TEST
isa_ok($props, 'HASH', 'get_file: props');
# TEST
ok(!exists $props->{'test-prop'}, 'get_file: property test-prop deleted');
# TEST
is($props->{'binary-prop'}, $BINARY_DATA, 'get_file: property binary-prop');
}
# Revision properties
# TEST
isa_ok($ra->rev_proplist(1), 'HASH', 'rev_proplist: object');
# TEST
is($ra->rev_prop(1, 'nonexistent'), undef, 'rev_prop: nonexistent');
# TEST
like($ra->rev_prop(1, 'svn:date'), qr/^\d+-\d+-\d+T\d+:\d+:\d+\.\d+Z$/,
'rev_prop: svn:date');
# To create a revision property is a bit more difficult, because we have
# to set up a 'pre-revprop-change' hook script. These tests are skipped
# on systems on which I don't know how to do that.
SKIP: {
skip "don't know how to create 'pre-revprop-change' hook script on $^O", 3
if $^O eq 'MSWin32';
my $script_filename = "$repospath/hooks/pre-revprop-change";
open my $script, '>', $script_filename
or die "error creating hook script '$script_filename': $!";
print $script "#!/bin/sh\nexit 0\n";
close $script;
chmod 0755, $script_filename
or die "error making hook script '$script_filename' executable: $!";
$ra->change_rev_prop(1, 'test-prop', 'foo');
# TEST
is($ra->rev_prop(1, 'test-prop'), 'foo', 'change_rev_prop');
$ra->change_rev_prop(1, 'test-prop', undef);
# TEST
is($ra->rev_prop(1, 'test-prop'), undef, 'change_rev_prop: deleted');
$ra->change_rev_prop(1, 'binary-prop', $BINARY_DATA);
# TEST
is($ra->rev_prop(1, 'binary-prop'), $BINARY_DATA,
'change_rev_prop with binary data');
}
# Information about nodes in the filesystem.
# TEST
is($ra->check_path('trunk', 1), $SVN::Node::dir, 'check_path');
{
my $dirent = $ra->stat('trunk', 1);
# TEST
isa_ok($dirent, '_p_svn_dirent_t', 'stat dir: dirent object');
# TEST
is($dirent->kind, $SVN::Node::dir, 'stat dir: kind');
# TEST
is($dirent->size, -1, 'stat dir: size');
# TEST
is($dirent->created_rev, 1, 'stat dir: created_rev');
# TEST
ok($dirent->has_props, 'stat dir: has_props');
$dirent = $ra->stat('trunk/fileb', 1);
# TEST
is($dirent->kind, $SVN::Node::file, 'stat file: kind');
# TEST
ok(!$dirent->has_props, 'stat file: has_props');
}
# do_update
my $ed = MockEditor->new;
my $reporter = $ra->do_update(2, '', 1, $ed);
# TEST
isa_ok($reporter, 'SVN::Ra::Reporter');
$reporter->set_path('', 0, 1, undef);
$reporter->finish_report;
# TEST
is($ed->{_base_revnum}, 0, 'do_update: base_revision');
# TEST
is($ed->{_target_revnum}, 2, 'do_update: target_revnum');
# TEST
is($ed->{trunk}{props}{'dir-prop'}, 'frob', 'do_update: dir-prop');
# TEST
ok(!exists $ed->{'trunk/filea'}{props}{'test-prop'},
'do_update: deleted property');
# TEST
is($ed->{'trunk/filea'}{props}{'binary-prop'}, $BINARY_DATA,
'do_update: binary-prop');
( run in 0.725 second using v1.01-cache-2.11-cpan-39bf76dae61 )