=================================================================== RCS file: /cvs/palm/Palm-Keyring/t/keyring5-samples.t,v retrieving revision 1.1 retrieving revision 1.5 diff -u -r1.1 -r1.5 --- palm/Palm-Keyring/t/keyring5-samples.t 2007/02/18 05:50:25 1.1 +++ palm/Palm-Keyring/t/keyring5-samples.t 2007/08/10 05:13:31 1.5 @@ -1,24 +1,29 @@ -#!/usr/bin/perl -# $RedRiver: keyring4.t,v 1.1 2007/02/17 23:36:07 andrew Exp $ +#!/usr/bin/perl -T +# $RedRiver: keyring5-samples.t,v 1.4 2007/02/27 17:08:05 andrew Exp $ use strict; use warnings; use Test::More tests => 30; -use Data::Dumper; BEGIN { use_ok( 'Palm::PDB' ); } BEGIN { use_ok( 'Palm::Keyring' ); } my $password = 'abc'; my $orig_recs = [ - [ - { + { + 0 => { + 'label_id' => 0, + 'data' => '', + 'label' => 'name', + 'font' => 0, + }, + 2 => { 'label_id' => 2, 'data' => 'only password is set', 'label' => 'password', 'font' => 0 }, - { + 3 => { 'label_id' => 3, 'data' => { 'month' => 1, @@ -28,21 +33,27 @@ 'label' => 'lastchange', 'font' => 0 } - ], - [ - { + }, + { + 0 => { + 'label_id' => 0, + 'data' => 'hoenicke', + 'label' => 'name', + 'font' => 0, + }, + 1 => { 'label_id' => 1, 'data' => 'test', 'label' => 'account', 'font' => 0 }, - { + 2 => { 'label_id' => 2, 'data' => 'abcd1234', 'label' => 'password', 'font' => 0 }, - { + 3 => { 'label_id' => 3, 'data' => { 'month' => 1, @@ -52,21 +63,27 @@ 'label' => 'lastchange', 'font' => 0 }, - { + 255 => { 'label_id' => 255, 'data' => 'This is a short note.', 'label' => 'notes', 'font' => 0 } - ], - [ - { + }, + { + 0 => { + 'label_id' => 0, + 'data' => 'name', + 'label' => 'name', + 'font' => 0, + }, + 2 => { 'label_id' => 2, 'data' => 'password (date is 2/2/07)', 'label' => 'password', 'font' => 0 }, - { + 3 => { 'label_id' => 3, 'data' => { 'month' => 1, @@ -76,19 +93,33 @@ 'label' => 'lastchange', 'font' => 0 } - ] + } ]; foreach my $file ('Keys-None.pdb', 'Keys-3DES.pdb', 'Keys-AES.pdb', 'Keys-AES256.pdb') { my $pdb; ok( $pdb = new Palm::PDB, 'new Palm::PDB' ); ok( $pdb->Load('t/' . $file), "Loading '$file'" ); - ok( $pdb->Password($password), 'Passing Password' ); - my @recs = (); - foreach my $rec (@{ $pdb->{records}}) { - my $acct; - ok( $acct = $pdb->Decrypt( $rec ), 'Decrypting record ' . scalar @recs ); - push @recs, $acct; + SKIP: { + skip 'Digest::HMAC_SHA1 not installed', 5 unless + eval " require Digest::HMAC_SHA1 "; + + if ($pdb->{appinfo}->{cipher} > 0) { + my $crypt = Palm::Keyring::crypts($pdb->{appinfo}->{cipher}); + skip 'Crypt::CBC not installed', 5 unless + eval "require Crypt::CBC"; + skip 'Crypt::' . $crypt->{name} . ' not installed', 5 unless + eval "require Crypt::$crypt->{name}"; + } + + $password = 'abc'; + ok( $pdb->Password($password), 'Passing Password' ); + my @recs = (); + foreach my $rec (@{ $pdb->{records}}) { + my $acct; + ok( $acct = $pdb->Decrypt( $rec ), 'Decrypting record ' . scalar @recs ); + push @recs, $acct; + } + is_deeply(\@recs, $orig_recs, "Matching records in '$file'" ); } - is_deeply( $orig_recs, \@recs, "Matching records in '$file'" ); }