]> Dogcows Code - chaz/p5-File-KDBX/blobdiff - t/references.t
add initial WIP
[chaz/p5-File-KDBX] / t / references.t
diff --git a/t/references.t b/t/references.t
new file mode 100644 (file)
index 0000000..9b31cfa
--- /dev/null
@@ -0,0 +1,52 @@
+#!/usr/bin/env perl
+
+use warnings;
+use strict;
+
+use lib 't/lib';
+use TestCommon;
+
+use File::KDBX;
+use Test::More;
+
+my $kdbx = File::KDBX->new;
+my $entry1 = $kdbx->add_entry(
+    title       => 'Sun Valley Bank Inc.',
+    username    => 'fred',
+    password    => 'secr3t',
+);
+my $entry2 = $kdbx->add_entry(
+    title       => 'Donut Shoppe',
+    username    => 'freddy',
+    password    => '1234',
+    testcustom  => 'a custom string',
+);
+my $entry3 = $kdbx->add_entry(
+    title       => 'Sun Clinic Inc.',
+    username    => 'jerry',
+    password    => 'password',
+    mycustom    => 'this is another custom string',
+);
+
+for my $test (
+    ['{REF:U@T:donut}', 'freddy'],
+    ['U@T:donut', 'freddy'],
+    [[U => T => 'donut'], 'freddy', 'A reference can be pre-parsed parameters'],
+
+    ['{REF:U@T:sun inc}', 'fred'],
+    ['{REF:U@T:"Sun Clinic Inc."}', 'jerry'],
+
+    ['{REF:U@I:' . $entry2->id . '}', 'freddy', 'Resolve a field by UUID'],
+
+    ['{REF:U@O:custom}', 'freddy'],
+    ['{REF:U@O:"another custom"}', 'jerry'],
+
+    ['{REF:U@T:donut meh}', undef],
+    ['{REF:O@U:freddy}', undef],
+) {
+    my ($ref, $expected, $note) = @$test;
+    $note //= "Reference: $ref";
+    is $kdbx->resolve_reference(ref $ref eq 'ARRAY' ? @$ref : $ref), $expected, $note;
+}
+
+done_testing;
This page took 0.028503 seconds and 4 git commands to generate.