From 3c2cff4bfc0f7560d5264fbe9b0af402646ed373 Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Tue, 18 Sep 2007 18:35:50 +0000 Subject: Add flag_set and flag_clear to Wallet::Server. --- perl/t/server.t | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'perl/t/server.t') diff --git a/perl/t/server.t b/perl/t/server.t index 84fe901..8faccc1 100755 --- a/perl/t/server.t +++ b/perl/t/server.t @@ -3,7 +3,7 @@ # # t/server.t -- Tests for the wallet server API. -use Test::More tests => 221; +use Test::More tests => 229; use Wallet::Config; use Wallet::Server; @@ -301,6 +301,29 @@ is ($server->store ('base', 'service/admin', 'stuff'), undef, is ($server->error, "$admin not authorized to store base:service/admin", ' due to permissions again'); +# Test manipulating flags. +is ($server->flag_clear ('base', 'service/admin', 'locked'), undef, + 'Clearing an unset flag fails'); +is ($server->error, + "cannot clear flag locked on base:service/admin: flag not set", + ' with the right error'); +if ($server->flag_set ('base', 'service/admin', 'locked')) { + ok (1, ' but setting it works'); +} else { + is ($server->error, '', ' but setting it works'); +} +is ($server->flag_clear ('base', 'service/admin', 'locked'), 1, + ' and then clearing it works'); +is ($server->flag_set ('base', 'service/admin', 'unchanging'), 1, + ' and setting unchanging works'); +is ($server->flag_clear ('base', 'service/admin', 'locked'), undef, + ' and clearing locked still does not'); +is ($server->error, + "cannot clear flag locked on base:service/admin: flag not set", + ' with the right error'); +is ($server->flag_clear ('base', 'service/admin', 'unchanging'), 1, + ' and clearing unchanging works'); + # 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'); -- cgit v1.2.3