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 )