version 1.20, 2008/09/18 07:06:11 |
version 1.22, 2008/09/19 03:51:44 |
|
|
#!/usr/bin/perl -T |
#!/usr/bin/perl -T |
# $RedRiver: keyring.t,v 1.19 2008/09/18 02:02:50 andrew Exp $ |
# $RedRiver: keyring.t,v 1.21 2008/09/19 02:08:01 andrew Exp $ |
use strict; |
use strict; |
use warnings; |
use warnings; |
|
|
use Test::More tests => 198; |
use Test::More tests => 195; |
use Data::Dumper; |
use Data::Dumper; |
|
|
BEGIN { |
BEGIN { |
|
|
is( Palm::Keyring::labels(), undef, "Didn't get label empty label" ); |
is( Palm::Keyring::labels(), undef, "Didn't get label empty label" ); |
is_deeply( Palm::Keyring::labels($bad_label), |
is_deeply( Palm::Keyring::labels($bad_label), |
\%label_not_found_details, "Got default label for $bad_label" ); |
\%label_not_found_details, "Got default label for $bad_label" ); |
is( Palm::Keyring::labels($bad_label_name), undef, "Didn't get label for |
is( Palm::Keyring::labels($bad_label_name), undef, "Didn't get label for $bad_label_name" |
$bad_label_name" |
|
); |
); |
|
|
|
|
|
|
my $pdb; |
my $pdb; |
|
|
eval { $pdb = new Palm::Keyring( -file => 't/Keys-invalid_version.pdb' ) }; |
eval { $pdb = new Palm::Keyring( -file => 't/Keys-invalid_version.pdb' ) }; |
like( |
like( |
$@, |
$@, |
|
|
ok( $pdb = new Palm::Keyring( -file => 't/Keys-no_data.pdb' ), |
ok( $pdb = new Palm::Keyring( -file => 't/Keys-no_data.pdb' ), |
'Loaded Palm::Keyring file with no data' ); |
'Loaded Palm::Keyring file with no data' ); |
|
|
|
ok( $pdb->Password($password), 'Entering Password' ); |
|
|
my $record; |
my $record; |
ok( $record = $pdb->append_Record(), 'Append Record' ); |
ok( $record = $pdb->append_Record(), 'Append Record' ); |
ok( $pdb->Encrypt( $record, $password, $acct ), |
ok( $pdb->Encrypt( $record, $password, $acct ), |
'Encrypt account into record' ); |
'Encrypt account into record' ); |
|
ok( $pdb->PackRecord($record), 'Pack Proper Record'); |
|
ok( $record = $pdb->ParseRecord(%{ $record }), 'Parse Proper Packed'); |
|
|
my $record2; |
my $record2; |
ok( $record2 = $pdb->append_Record(), 'Append Record' ); |
ok( $record2 = $pdb->append_Record(), 'Append Record' ); |
|
|
ok( $pdb->PackRecord($record), 'Pack Proper Record'); |
|
eval{ $pdb->PackRecord($record2) }; |
eval{ $pdb->PackRecord($record2) }; |
like( |
like( |
$@, |
$@, |
qr/^No \s encrypted \s content \s to \s pack/xms, |
qr/^No \s encrypted \s data \s in \s record/xms, |
'Fail to pack record without encrypted content' |
'Pack Empty Record' |
); |
); |
|
|
$record2->{encrypted} = ''; |
$record2->{encrypted} = q{}; |
eval{ $pdb->PackRecord($record2) }; |
eval{ $pdb->PackRecord($record2) }; |
like( |
like( |
$@, |
$@, |
qr/^No \s ivec/xms, |
qr/^No \s ivec/xms, |
'Fail to pack record without ivec' |
'Pack Empty Record with encrypted, but no ivec' |
|
); |
|
|
|
$pdb->{version} = 4; |
|
delete $record->{encrypted}; |
|
delete $record->{data}; |
|
eval{ $pdb->PackRecord($record) }; |
|
like( $@, |
|
qr/^No \s data \s in \s record \s to \s pack/xms, |
|
'Couldn\'t PackRecord without data' |
); |
); |
|
|
$record2->{ivec} = 1; |
|
ok( $pdb->PackRecord($record2), 'Pack Proper Record'); |
|
|
|
ok( $record = $pdb->ParseRecord(%{ $record }), 'Parse Proper Packed'); |
|
|
|
$pdb->{version} = 999; |
$pdb->{version} = 999; |
|
eval { $pdb->Write($file) }; |
|
like( |
|
$@, |
|
qr/^Unsupported \s Version \s 999/xms, |
|
'Couldn\'t Write file with unsupported version' |
|
); |
|
|
eval{ $pdb->PackRecord($record) }; |
eval{ $pdb->PackRecord($record) }; |
like( $@, |
like( $@, |
qr/^Unsupported \s Version \s 999/xms, |
qr/^Unsupported \s Version \s 999/xms, |
'Couldn\'t PackRecord with Invalid Version' |
'Couldn\'t PackRecord with Invalid Version' |
); |
); |
|
|
|
$record2->{data} = q{nothing}; |
eval{ $pdb->ParseRecord(%{ $record2 }) }; |
eval{ $pdb->ParseRecord(%{ $record2 }) }; |
like( $@, |
like( $@, |
qr/^Unsupported \s Version \s 999/xms, |
qr/^Unsupported \s Version \s 999/xms, |
'Couldn\'t ParseRecord with Invalid Version' |
'Couldn\'t ParseRecord with Invalid Version' |
); |
); |
|
|
|
|
$pdb = undef; |
$pdb = undef; |
|
|
unlink $file; |
unlink $file; |
|
|
is_deeply( $plaintext[0], $cleared_decrypted, 'Cleared records' ); |
is_deeply( $plaintext[0], $cleared_decrypted, 'Cleared records' ); |
|
|
$pdb->{records}->[0]->{data} = undef; |
$pdb->{records}->[0]->{data} = undef; |
ok( $pdb->Write($file), 'Write file' ); |
ok( $pdb->Write($file), 'Write file without data' ); |
ok( $pdb->Load($file), 'Load File' ); |
ok( $pdb->Load($file), 'Load File without data' ); |
|
|
$pdb->{version} = 999; |
|
eval { $pdb->Write($file) }; |
|
like( |
|
$@, |
|
qr/^Unsupported \s Version \s 999/xms, |
|
'Couldn\'t Write file with unsupported version' |
|
); |
|
|
|
ok( unlink($file), 'Remove test pdb v' . $options->{version} ); |
ok( unlink($file), 'Remove test pdb v' . $options->{version} ); |
|
|