]> Dogcows Code - chaz/p5-File-KDBX/blob - t/references.t
add initial WIP
[chaz/p5-File-KDBX] / t / references.t
1 #!/usr/bin/env perl
2
3 use warnings;
4 use strict;
5
6 use lib 't/lib';
7 use TestCommon;
8
9 use File::KDBX;
10 use Test::More;
11
12 my $kdbx = File::KDBX->new;
13 my $entry1 = $kdbx->add_entry(
14 title => 'Sun Valley Bank Inc.',
15 username => 'fred',
16 password => 'secr3t',
17 );
18 my $entry2 = $kdbx->add_entry(
19 title => 'Donut Shoppe',
20 username => 'freddy',
21 password => '1234',
22 testcustom => 'a custom string',
23 );
24 my $entry3 = $kdbx->add_entry(
25 title => 'Sun Clinic Inc.',
26 username => 'jerry',
27 password => 'password',
28 mycustom => 'this is another custom string',
29 );
30
31 for my $test (
32 ['{REF:U@T:donut}', 'freddy'],
33 ['U@T:donut', 'freddy'],
34 [[U => T => 'donut'], 'freddy', 'A reference can be pre-parsed parameters'],
35
36 ['{REF:U@T:sun inc}', 'fred'],
37 ['{REF:U@T:"Sun Clinic Inc."}', 'jerry'],
38
39 ['{REF:U@I:' . $entry2->id . '}', 'freddy', 'Resolve a field by UUID'],
40
41 ['{REF:U@O:custom}', 'freddy'],
42 ['{REF:U@O:"another custom"}', 'jerry'],
43
44 ['{REF:U@T:donut meh}', undef],
45 ['{REF:O@U:freddy}', undef],
46 ) {
47 my ($ref, $expected, $note) = @$test;
48 $note //= "Reference: $ref";
49 is $kdbx->resolve_reference(ref $ref eq 'ARRAY' ? @$ref : $ref), $expected, $note;
50 }
51
52 done_testing;
This page took 0.03985 seconds and 4 git commands to generate.