diff options
Diffstat (limited to 't/29-app-raps2-store.t')
-rw-r--r-- | t/29-app-raps2-store.t | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/t/29-app-raps2-store.t b/t/29-app-raps2-store.t new file mode 100644 index 0000000..759030d --- /dev/null +++ b/t/29-app-raps2-store.t @@ -0,0 +1,59 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use 5.010; + +use Test::More; + +eval "use Test::MockObject"; +plan skip_all => 'Test::MockObject required' if $@; + +$ENV{XDG_CONFIG_HOME} = 't/config'; +$ENV{XDG_DATA_HOME} = 't/data'; + +plan tests => 9; + +my $mock = Test::MockObject->new(); +$mock->fake_module( 'Term::ReadLine', new => sub { return bless( {}, $_[0] ) }, +); + +use_ok('App::Raps2'); + +my $r2 = App::Raps2->new( master_password => 'sekrit' ); +isa_ok( $r2, 'App::Raps2' ); + +ok( -e 't/config/raps2/password', 'config file created' ); + +$r2->pw_save( + password => 'foopass', + name => 'test1' + ), + + ok( -e 't/data/raps2/test1', 'Save password test1' ); + +is( $r2->pw_load( name => 'test1' )->{password}, + 'foopass', 'Password for test1 loaded ok' ); + +$r2->pw_save( + password => 'foopass', + file => 't/data/raps2/test2', + url => 'murl', + login => 'mlogin', + extra => 'mextra', + ), + + is( $r2->pw_load_info( file => 't/data/raps2/test2' )->{url}, + 'murl', 'Password info loaded ok (url)' ); + +is( $r2->pw_load_info( file => 't/data/raps2/test2' )->{login}, + 'mlogin', 'Password info loaded ok (login)' ); + +is( $r2->pw_load( file => 't/data/raps2/test2' )->{password}, + 'foopass', 'Password for test2 loaded ok' ); + +is( $r2->pw_load( file => 't/data/raps2/test2' )->{extra}, + 'mextra', 'Extra for test2 loaded ok' ); + +unlink('t/data/raps2/test1'); +unlink('t/data/raps2/test2'); +unlink('t/config/raps2/password'); |