aboutsummaryrefslogtreecommitdiff
path: root/perl/t
diff options
context:
space:
mode:
authorRuss Allbery <eagle@eyrie.org>2016-01-16 15:34:22 -0800
committerRuss Allbery <eagle@eyrie.org>2016-01-16 15:35:49 -0800
commitd2fde5b8330cab6bd6210ef99a628b1897676897 (patch)
tree3bdb4383a95efc5c36b7fabe07ca7df0cb50f719 /perl/t
parent44b98b0005effceb6fb5497b336fa86e05675e6f (diff)
Pass object type and name to external ACL verifiers
This requires changing the ACL verifier plumbing to pass object type and name all the way through when verifying ACLs. Hopefully I caught everything.
Diffstat (limited to 'perl/t')
-rwxr-xr-xperl/t/data/acl-command20
-rwxr-xr-xperl/t/verifier/external.t11
2 files changed, 19 insertions, 12 deletions
diff --git a/perl/t/data/acl-command b/perl/t/data/acl-command
index e368118..b7c3066 100755
--- a/perl/t/data/acl-command
+++ b/perl/t/data/acl-command
@@ -18,26 +18,30 @@ if [ "$1" != 'eagle@eyrie.org' ]; then
exit 1
fi
-# Check that the second argument is test.
-if [ "$2" != 'test' ]; then
+# Check that the second and third arguments are file test (the test object).
+if [ "$2" != 'file' ]; then
echo 'incorrect second argument' >&2
exit 1
fi
+if [ "$3" != 'test' ]; then
+ echo 'incorrect third argument' >&2
+ exit 1
+fi
-# Process the third argument.
-case $3 in
- success)
+# Process the fourth argument.
+case $4 in
+ 'test success')
exit 0
;;
- failure)
+ 'test failure')
exit 1
;;
- error)
+ 'test error')
echo 'some error' >&2
exit 1
;;
*)
- echo 'unknown third argument' >&2
+ echo 'unknown fourth argument' >&2
exit 1
;;
esac
diff --git a/perl/t/verifier/external.t b/perl/t/verifier/external.t
index 3e7e776..d1438de 100755
--- a/perl/t/verifier/external.t
+++ b/perl/t/verifier/external.t
@@ -22,11 +22,14 @@ $Wallet::Config::EXTERNAL_COMMAND = 't/data/acl-command';
my $verifier = Wallet::ACL::External->new;
ok (defined $verifier, 'Wallet::ACL::External creation');
ok ($verifier->isa ('Wallet::ACL::External'), ' and class verification');
-is ($verifier->check ('eagle@eyrie.org', 'test success'), 1, 'Success');
-is ($verifier->check ('eagle@eyrie.org', 'test failure'), 0, 'Failure');
+is ($verifier->check ('eagle@eyrie.org', 'test success', 'file', 'test'),
+ 1, 'Success');
+is ($verifier->check ('eagle@eyrie.org', 'test failure', 'file', 'test'),
+ 0, 'Failure');
is ($verifier->error, undef, 'No error set');
-is ($verifier->check ('eagle@eyrie.org', 'test error'), undef, 'Error');
+is ($verifier->check ('eagle@eyrie.org', 'test error', 'file', 'test'),
+ undef, 'Error');
is ($verifier->error, 'some error', ' and right error');
-is ($verifier->check (undef, 'eagle@eyrie.org'), undef,
+is ($verifier->check (undef, 'eagle@eyrie.org', 'file', 'test'), undef,
'Undefined principal');
is ($verifier->error, 'no principal specified', ' and right error');