diff options
author | Russ Allbery <rra@stanford.edu> | 2007-10-10 00:49:53 +0000 |
---|---|---|
committer | Russ Allbery <rra@stanford.edu> | 2007-10-10 00:49:53 +0000 |
commit | b7e886f97db0f3a6f6239f8f655fde41e3e43ad2 (patch) | |
tree | bfccffcfb259eb3be50199f516e41caec191501f /perl/t | |
parent | d12a9ff9bcc5f5172dcf1ecfd13bc692ef614df0 (diff) |
Add an object history method and tests for it.
Diffstat (limited to 'perl/t')
-rwxr-xr-x | perl/t/object.t | 92 |
1 files changed, 83 insertions, 9 deletions
diff --git a/perl/t/object.t b/perl/t/object.t index e2ae5ca..d67bd40 100755 --- a/perl/t/object.t +++ b/perl/t/object.t @@ -8,7 +8,8 @@ # # See LICENSE for licensing terms. -use Test::More tests => 129; +use POSIX qw(strftime); +use Test::More tests => 131; use Wallet::ACL; use Wallet::Config; @@ -23,7 +24,7 @@ unlink 'wallet-db'; # Some global defaults to use. my $user = 'admin@EXAMPLE.COM'; my $host = 'localhost'; -my @trace = ($user, $host); +my @trace = ($user, $host, time); my $princ = 'service/test@EXAMPLE.COM'; # Use Wallet::Server to set up the database. @@ -34,13 +35,14 @@ my $dbh = $server->dbh; # Okay, now we have a database. Test create and new. We make believe this is # a keytab object; it won't matter for what we're doing. -my $created = time; -my $object = eval { Wallet::Object::Base->create ('keytab', $princ, $dbh, - @trace, $created) }; +my $object = eval { + Wallet::Object::Base->create ('keytab', $princ, $dbh, @trace) + }; is ($@, '', 'Object creation did not die'); ok ($object->isa ('Wallet::Object::Base'), ' and returned the right class'); -my $other = - eval { Wallet::Object::Base->create ('keytab', $princ, $dbh, @trace) }; +my $other = eval { + Wallet::Object::Base->create ('keytab', $princ, $dbh, @trace) + }; like ($@, qr/^cannot create object \Qkeytab:$princ: /, 'Repeating fails'); $other = eval { Wallet::Object::Base->create ('', $princ, $dbh, @trace) }; is ($@, "invalid object type\n", 'Using an empty type fails'); @@ -205,7 +207,7 @@ my $output = <<"EOO"; Flags: unchanging Created by: $user Created from: $host - Created on: $created + Created on: $trace[2] Members of ACL ADMIN (id: 1) are: krb5 $user @@ -225,7 +227,7 @@ $output = <<"EOO"; Flags: locked unchanging Created by: $user Created from: $host - Created on: $created + Created on: $trace[2] Members of ACL ADMIN (id: 1) are: krb5 $user @@ -246,5 +248,77 @@ if ($object->destroy (@trace)) { $object = eval { Wallet::Object::Base->new ('keytab', $princ, $dbh) }; is ($@, "cannot find keytab:$princ\n", ' and object is all gone'); +# Test history. +$object = eval { + Wallet::Object::Base->create ('keytab', $princ, $dbh, @trace) + }; +ok (defined ($object), 'Recreating the object succeeds'); +my $date = strftime ('%Y-%m-%d %H:%M:%S', localtime $trace[2]); +$output = <<"EOO"; +$date create + by admin\@EXAMPLE.COM from localhost +$date set owner to 1 + by admin\@EXAMPLE.COM from localhost +$date unset owner + by admin\@EXAMPLE.COM from localhost +$date set owner to 1 + by admin\@EXAMPLE.COM from localhost +$date set expires to $now + by admin\@EXAMPLE.COM from localhost +$date unset expires + by admin\@EXAMPLE.COM from localhost +$date set expires to $now + by admin\@EXAMPLE.COM from localhost +$date set acl_get to 1 + by admin\@EXAMPLE.COM from localhost +$date unset acl_get + by admin\@EXAMPLE.COM from localhost +$date set acl_get to 1 + by admin\@EXAMPLE.COM from localhost +$date set acl_store to 1 + by admin\@EXAMPLE.COM from localhost +$date unset acl_store + by admin\@EXAMPLE.COM from localhost +$date set acl_store to 1 + by admin\@EXAMPLE.COM from localhost +$date set acl_show to 1 + by admin\@EXAMPLE.COM from localhost +$date unset acl_show + by admin\@EXAMPLE.COM from localhost +$date set acl_show to 1 + by admin\@EXAMPLE.COM from localhost +$date set acl_destroy to 1 + by admin\@EXAMPLE.COM from localhost +$date unset acl_destroy + by admin\@EXAMPLE.COM from localhost +$date set acl_destroy to 1 + by admin\@EXAMPLE.COM from localhost +$date set acl_flags to 1 + by admin\@EXAMPLE.COM from localhost +$date unset acl_flags + by admin\@EXAMPLE.COM from localhost +$date set acl_flags to 1 + by admin\@EXAMPLE.COM from localhost +$date set flag locked + by admin\@EXAMPLE.COM from localhost +$date set flag unchanging + by admin\@EXAMPLE.COM from localhost +$date clear flag locked + by admin\@EXAMPLE.COM from localhost +$date set flag locked + by admin\@EXAMPLE.COM from localhost +$date clear flag locked + by admin\@EXAMPLE.COM from localhost +$date set flag locked + by admin\@EXAMPLE.COM from localhost +$date clear flag locked + by admin\@EXAMPLE.COM from localhost +$date destroy + by admin\@EXAMPLE.COM from localhost +$date create + by admin\@EXAMPLE.COM from localhost +EOO +is ($object->history, $output, ' and the history is correct'); + # Clean up. unlink 'wallet-db'; |