mirror of
https://codeberg.org/scip/Crypt--PWSafe3.git
synced 2025-12-16 20:21:01 +01:00
first commit
This commit is contained in:
108
t/run.t
Normal file
108
t/run.t
Normal file
@@ -0,0 +1,108 @@
|
||||
# -*-perl-*-
|
||||
# testscript for Crypt::PWSafe3 Classes by Thomas Linden
|
||||
#
|
||||
# needs to be invoked using the command "make test" from
|
||||
# the Crypt::PWSafe3 source directory.
|
||||
#
|
||||
# Under normal circumstances every test should succeed.
|
||||
|
||||
|
||||
use Data::Dumper;
|
||||
#use Test::More tests => 57;
|
||||
use Test::More qw(no_plan);
|
||||
|
||||
|
||||
### 1
|
||||
# load module
|
||||
BEGIN { use_ok "Crypt::PWSafe3"};
|
||||
require_ok( 'Crypt::PWSafe3' );
|
||||
|
||||
### 2
|
||||
# open vault and read in all records
|
||||
eval {
|
||||
my $vault = new Crypt::PWSafe3(file => 't/tom.psafe3', password => 'tom');
|
||||
my @r = $vault->getrecords;
|
||||
my $got = 0;
|
||||
foreach my $rec (@r) {
|
||||
if ($rec->uuid) {
|
||||
$got++;
|
||||
}
|
||||
}
|
||||
if (! $got) {
|
||||
die "No records found in test database";
|
||||
}
|
||||
};
|
||||
ok(!$@, "open a pwsafe3 database");
|
||||
|
||||
### 3
|
||||
# modify an existing record
|
||||
my $uuid3;
|
||||
my %rdata3;
|
||||
my $rec3;
|
||||
my %data3 = (
|
||||
user => 'u3',
|
||||
passwd => 'p3',
|
||||
group => 'g3',
|
||||
title => 't3',
|
||||
notes => 'n3'
|
||||
);
|
||||
eval {
|
||||
my $vault3 = new Crypt::PWSafe3(file => 't/tom.psafe3', password => 'tom');
|
||||
foreach my $uuid ($vault3->looprecord) {
|
||||
$uuid3 = $uuid;
|
||||
$vault3->modifyrecord($uuid3, %data3);
|
||||
last;
|
||||
}
|
||||
$vault3->save(file=>'t/3.out');
|
||||
|
||||
my $rvault3 = new Crypt::PWSafe3(file => 't/3.out', password => 'tom');
|
||||
$rec3 = $rvault3->getrecord($uuid3);
|
||||
|
||||
foreach my $name (keys %data3) {
|
||||
$rdata3{$name} = $rec3->$name();
|
||||
}
|
||||
};
|
||||
ok(!$@, "read a pwsafe3 database and change a record ($@)");
|
||||
is_deeply(\%data3, \%rdata3, "Change a record an check if changes persist after saving");
|
||||
|
||||
|
||||
### 4
|
||||
# re-use $rec3 and change it the oop way
|
||||
my $rec4;
|
||||
eval {
|
||||
my $vault4 = new Crypt::PWSafe3(file => 't/3.out', password => 'tom');
|
||||
$rec4 = $vault4->getrecord($uuid3);
|
||||
|
||||
$rec4->user("u4");
|
||||
$rec4->passwd("p4");
|
||||
|
||||
$vault4->addrecord($rec4);
|
||||
$vault4->markmodified();
|
||||
$vault4->save(file=>'t/4.out');
|
||||
|
||||
my $rvault4 = new Crypt::PWSafe3(file => 't/4.out', password => 'tom');
|
||||
$rec4 = $rvault4->getrecord($uuid3);
|
||||
if ($rec4->user ne 'u4') {
|
||||
die "oop way record change failed";
|
||||
}
|
||||
};
|
||||
ok(!$@, "re-use record and change it the oop way\n" . $@ . "\n");
|
||||
|
||||
|
||||
### 5 modify some header fields
|
||||
eval {
|
||||
my $vault5 = new Crypt::PWSafe3(file => 't/tom.psafe3', password => 'tom');
|
||||
|
||||
my $h3 = new Crypt::PWSafe3::HeaderField(name => 'savedonhost', value => 'localhost');
|
||||
|
||||
$vault5->addheader($h3);
|
||||
$vault5->markmodified();
|
||||
$vault5->save(file=>'t/5.out');
|
||||
|
||||
my $rvault5 = new Crypt::PWSafe3(file => 't/5.out', password => 'tom');
|
||||
|
||||
if ($rvault5->getheader('savedonhost')->value() ne 'localhost') {
|
||||
die "header savedonhost not correct";
|
||||
}
|
||||
};
|
||||
ok(!$@, "modify some header fields ($@)");
|
||||
Reference in New Issue
Block a user