Brackup

 view release on metacpan or  search on metacpan

t/02-gpg.t  view on Meta::CPAN

# -*-perl-*-

use strict;
use Test::More;

use Brackup::Test;
use FindBin qw($Bin);
use Brackup::Util qw(tempfile);

############### Backup

if (`gpg --version`) {
    plan tests => 17;
} else {
    plan skip_all => 'gpg binary not found, skipping encrypted tests';
}

my $gpg_args = ["--no-default-keyring",
                "--quiet",
                "--keyring=$Bin/data/pubring-test.gpg",
                "--secret-keyring=$Bin/data/secring-test.gpg"];
my $gpg_args2 = ["--no-default-keyring",
                "--quiet",
                "--keyring=$Bin/data/pubring-test2.gpg",
                "--secret-keyring=$Bin/data/secring-test2.gpg"];

my ($digdb_fh, $digdb_fn) = tempfile();
close($digdb_fh);
my $root_dir = "$Bin/data";
ok(-d $root_dir, "test data to backup exists");

my $backup_file = do_backup(
                            with_confsec => sub {
                                my $csec = shift;
                                $csec->add("path",          $root_dir);
                                $csec->add("chunk_size",    "2k");
                                $csec->add("digestdb_file", $digdb_fn);
                                $csec->add("gpg_recipient", "2149C469");
                                $csec->add("gpg_recipient", "1AD2C5EB");
                            },
                            with_root => sub {
                                my $root = shift;
                                $root->{gpg_args} = $gpg_args;
                            },
                            );

############### Restore

# Restore as first recipient
my $restore_dir = do {
    local @Brackup::GPG_ARGS = @$gpg_args;
    do_restore($backup_file);
};

ok_dirs_match($restore_dir, $root_dir);

# Restore as second recipient
$restore_dir = do {
    local @Brackup::GPG_ARGS = @$gpg_args2;
    do_restore($backup_file);
};

ok_dirs_match($restore_dir, $root_dir);



( run in 0.746 second using v1.01-cache-2.11-cpan-df04353d9ac )