diff options
author | Russ Allbery <rra@stanford.edu> | 2007-10-10 21:55:22 +0000 |
---|---|---|
committer | Russ Allbery <rra@stanford.edu> | 2007-10-10 21:55:22 +0000 |
commit | 701236985df7697bdd9f5716e0fadc9432023bee (patch) | |
tree | 090c57d8a9805f88be3d1976af464a019d15d115 /perl/t/server.t | |
parent | 9183b6622eab6a27544af1c6ac1bfb3f1c4fb2e2 (diff) |
Add tests for the history method and its ACLs.
Diffstat (limited to 'perl/t/server.t')
-rwxr-xr-x | perl/t/server.t | 94 |
1 files changed, 93 insertions, 1 deletions
diff --git a/perl/t/server.t b/perl/t/server.t index f2c6dc5..9d04c3a 100755 --- a/perl/t/server.t +++ b/perl/t/server.t @@ -8,7 +8,7 @@ # # See LICENSE for licensing terms. -use Test::More tests => 286; +use Test::More tests => 296; use Wallet::Config; use Wallet::Server; @@ -358,6 +358,49 @@ is ($server->error, is ($server->flag_clear ('base', 'service/admin', 'unchanging'), 1, ' and clearing unchanging works'); +# Test history. +my $history = <<"EOO"; +DATE create + by $admin from $host +DATE set expires to $now + by $admin from $host +DATE unset expires (was $now) + by $admin from $host +DATE set acl_get to 1 + by $admin from $host +DATE unset acl_get (was 1) + by $admin from $host +DATE set acl_store to 1 + by $admin from $host +DATE unset acl_store (was 1) + by $admin from $host +DATE set owner to 1 + by $admin from $host +DATE set acl_get to 5 + by $admin from $host +DATE set acl_store to 5 + by $admin from $host +DATE unset acl_store (was 5) + by $admin from $host +DATE unset owner (was 1) + by $admin from $host +DATE set owner to 1 + by $admin from $host +DATE set flag locked + by $admin from $host +DATE clear flag locked + by $admin from $host +DATE unset owner (was 1) + by $admin from $host +DATE set flag unchanging + by $admin from $host +DATE clear flag unchanging + by $admin from $host +EOO +my $seen = $server->history ('base', 'service/admin'); +$seen =~ s/^\d{4}-\d\d-\d\d \d\d:\d\d:\d\d/DATE/gm; +is ($seen, $history, 'History for service/admin is correct'); + # Now let's set up some additional ACLs for future tests. is ($server->owner ('base', 'service/user1', 'user1'), 1, 'Set user1 owner'); is ($server->owner ('base', 'service/user2', 'user2'), 1, 'Set user2 owner'); @@ -447,6 +490,15 @@ Members of ACL user1 (id: 2) are: krb5 $user1 EOO is ($show, $expected, ' and show an object we own'); +$history = <<"EOO"; +DATE create + by $admin from $host +DATE set owner to 2 + by $admin from $host +EOO +$seen = $server->history ('base', 'service/user1'); +$seen =~ s/^\d{4}-\d\d-\d\d \d\d:\d\d:\d\d/DATE/gm; +is ($seen, $history, ' and see history for an object we own'); is ($server->attr ('base', 'service/user1', 'foo'), undef, ' and getting an attribute fails'); is ($server->error, 'unknown attribute foo', ' but calls the method'); @@ -466,6 +518,10 @@ is ($server->error, "$user1 not authorized to store base:service/user2", is ($server->show ('base', 'service/user2'), undef, ' or show it'); is ($server->error, "$user1 not authorized to show base:service/user2", ' with the right error'); +is ($server->history ('base', 'service/user2'), undef, + ' or see history for it'); +is ($server->error, "$user1 not authorized to show base:service/user2", + ' with the right error'); is ($server->attr ('base', 'service/user2', 'foo'), undef, ' or get attributes'); is ($server->error, @@ -515,6 +571,25 @@ Members of ACL user2 (id: 3) are: krb5 $user2 EOO is ($show, $expected, ' and show an object we jointly own'); +$history = <<"EOO"; +DATE create + by $admin from $host +DATE set owner to 4 + by $admin from $host +DATE set acl_show to 2 + by $admin from $host +DATE set acl_destroy to 3 + by $admin from $host +DATE set acl_flags to 2 + by $admin from $host +DATE set flag unchanging + by $user1 from $host +DATE set flag locked + by $user1 from $host +EOO +$seen = $server->history ('base', 'service/both'); +$seen =~ s/^\d{4}-\d\d-\d\d \d\d:\d\d:\d\d/DATE/gm; +is ($seen, $history, ' and see history for an object we jointly own'); is ($server->store ('base', 'service/both', 'stuff'), undef, ' but not store data'); is ($server->error, 'cannot store base:service/both: object is locked', @@ -567,6 +642,15 @@ Members of ACL user2 (id: 3) are: krb5 $user2 EOO is ($show, $expected, ' and show an object we own'); +$history = <<"EOO"; +DATE create + by $admin from $host +DATE set owner to 3 + by $admin from $host +EOO +$seen = $server->history ('base', 'service/user2'); +$seen =~ s/^\d{4}-\d\d-\d\d \d\d:\d\d:\d\d/DATE/gm; +is ($seen, $history, ' and see history for an object we own'); # But not on things we don't own. is ($server->get ('base', 'service/user1'), undef, @@ -580,6 +664,10 @@ is ($server->error, "$user2 not authorized to store base:service/user1", is ($server->show ('base', 'service/user1'), undef, ' or show it'); is ($server->error, "$user2 not authorized to show base:service/user1", ' with the right error'); +is ($server->history ('base', 'service/user1'), undef, + ' or see history for it'); +is ($server->error, "$user2 not authorized to show base:service/user1", + ' with the right error'); # And only some things on an object we own with some ACLs. $result = eval { $server->get ('base', 'service/both') }; @@ -594,6 +682,10 @@ is ($server->error, is ($server->show ('base', 'service/both'), undef, ' but we cannot show it'); is ($server->error, "$user2 not authorized to show base:service/both", ' with the right error'); +is ($server->history ('base', 'service/both'), undef, + ' or see history for it'); +is ($server->error, "$user2 not authorized to show base:service/both", + ' with the right error'); is ($server->flag_set ('base', 'service/both', 'locked'), undef, ' or set flags on it'); is ($server->error, |