summaryrefslogtreecommitdiff
path: root/t/29-app-raps2-store.t
diff options
context:
space:
mode:
Diffstat (limited to 't/29-app-raps2-store.t')
-rw-r--r--t/29-app-raps2-store.t59
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');