use strict; use Test::More tests => 20; use Test::Exception; use Crypt::OpenPGP; use Crypt::OpenPGP::Config; use vars qw( $SAMPLES ); unshift @INC, 't/'; require 'test-common.pl'; use File::Spec; { diag 'GnuPG config'; my $cfg_file = File::Spec->catfile( $SAMPLES, 'cfg.gnupg' ); my $cfg = Crypt::OpenPGP::Config->new; isa_ok $cfg, 'Crypt::OpenPGP::Config'; lives_ok { $cfg->read_config( 'GnuPG', $cfg_file ) } 'can read GnuPG config file'; # Test standard str directive is $cfg->get( 'Digest' ), 'MD5', 'Digest == MD5'; $cfg->set( 'Digest', 'SHA1' ); is $cfg->get( 'Digest' ), 'SHA1', 'Digest == SHA1'; # Test standard bool directive, no arg (eg. 'armor') is $cfg->get( 'Armour' ), 1, 'Armour == 1'; $cfg->set( 'Armour', 0 ); is $cfg->get( 'Armour' ), 0, 'Armour == 0'; # Test special Cipher directive (eg. 'cipher-algo TWOFISH') is $cfg->get( 'Cipher' ), 'Twofish', 'cipher-algo -> Cipher'; # Test special Compress directive is $cfg->get( 'Compress' ), 'Zlib', 'compress-algo -> Compress'; # Test that config file gets read correctly when passed to # constructor. my $pgp = Crypt::OpenPGP->new( ConfigFile => $cfg_file, Compat => 'GnuPG' ); isa_ok $pgp, 'Crypt::OpenPGP'; isa_ok $pgp->{cfg}, 'Crypt::OpenPGP::Config'; is $pgp->{cfg}->get( 'Armour' ), 1, 'Armour == 1'; } { diag 'pgp2 config'; my $cfg_file = File::Spec->catfile( $SAMPLES, 'cfg.pgp2' ); my $cfg = Crypt::OpenPGP::Config->new; isa_ok $cfg, 'Crypt::OpenPGP::Config'; lives_ok { $cfg->read_config( 'PGP2', $cfg_file ) } 'can read pgp2 config file'; # Test standard str directive is $cfg->get( 'PubRing' ), 'foo.pubring', 'Pubring == foo.pubring'; $cfg->set( 'PubRing', 'bar.pubring' ); is $cfg->get( 'PubRing' ), 'bar.pubring', 'Pubring == bar.pubring'; # Test standard bool directive, with arg (eg. 'Armor on') is $cfg->get( 'Armour' ), 1, 'Armour == 1'; $cfg->set( 'Armour', 0 ); is $cfg->get( 'Armour' ), 0, 'Armour == 0'; # Test that config file gets read correctly when passed to # constructor. my $pgp = Crypt::OpenPGP->new( ConfigFile => $cfg_file, Compat => 'PGP2' ); isa_ok $pgp, 'Crypt::OpenPGP'; isa_ok $pgp->{cfg}, 'Crypt::OpenPGP::Config'; is $pgp->{cfg}->get( 'Armour' ), 1, 'Armour == 1'; }