diff options
Diffstat (limited to 'perl/t')
| -rwxr-xr-x | perl/t/general/report.t | 18 | ||||
| -rwxr-xr-x | perl/t/policy/stanford.t | 28 | 
2 files changed, 43 insertions, 3 deletions
| diff --git a/perl/t/general/report.t b/perl/t/general/report.t index a63ab79..170fe29 100755 --- a/perl/t/general/report.t +++ b/perl/t/general/report.t @@ -11,7 +11,7 @@  use strict;  use warnings; -use Test::More tests => 215; +use Test::More tests => 218;  use Wallet::Admin;  use Wallet::Report; @@ -281,6 +281,22 @@ is (scalar (@lines), 1, 'Searching for ACL naming violations finds one');  is ($lines[0][0], 3, ' and the first has the right ID');  is ($lines[0][1], 'second', ' and the right name'); +# Set a host-based object matching script so that we can test the host report. +# The deactivation trick isn't needed here. +package Wallet::Config; +sub is_for_host { +    my ($type, $name, $host) = @_; +    my ($service, $principal) = split ('/', $name, 2); +    return 0 unless $service && $principal; +    return 1 if $host eq $principal; +    return 0; +} +package main; +@lines = $report->objects_hostname ('host', 'admin'); +is (scalar (@lines), 1, 'Searching for host-based objects finds one'); +is ($lines[0][0], 'base', ' and the first has the right type'); +is ($lines[0][1], 'service/admin', ' and the right name'); +  # Set up a file bucket so that we can create an object we can retrieve.  system ('rm -rf test-files') == 0 or die "cannot remove test-files\n";  mkdir 'test-files' or die "cannot create test-files: $!\n"; diff --git a/perl/t/policy/stanford.t b/perl/t/policy/stanford.t index 555086c..9ed0fa6 100755 --- a/perl/t/policy/stanford.t +++ b/perl/t/policy/stanford.t @@ -16,7 +16,7 @@ use 5.008;  use strict;  use warnings; -use Test::More tests => 101; +use Test::More tests => 130;  use lib 't/lib';  use Util; @@ -24,7 +24,8 @@ use Util;  # Load the naming policy module.  BEGIN {      use_ok('Wallet::Admin'); -    use_ok('Wallet::Policy::Stanford', qw(default_owner verify_name)); +    use_ok('Wallet::Policy::Stanford', +           qw(default_owner verify_name is_for_host));      use_ok('Wallet::Server');  } @@ -101,6 +102,29 @@ for my $name (@INVALID_FILES) {      isnt(verify_name('file', $name), undef, "Invalid file $name");  } +# Now test a few cases for checking to see if a file is host-based.  We don't +# test the legacy examples because they're more complicated and less obvious. +for my $name (@VALID_KEYTABS) { +    my $hostname = 'example.stanford.edu'; +    if ($name =~ m{\b$hostname\b}) { +        is(is_for_host('keytab', $name, $hostname), 1, +           "Keytab $name belongs to $hostname"); +    } else { +        is(is_for_host('keytab', $name, $hostname), 0, +           "Keytab $name doesn't belong to $hostname"); +    } +} +for my $name (@VALID_FILES) { +    my $hostname = 'example.stanford.edu'; +    if ($name =~ m{\b$hostname\b}) { +        is(is_for_host('file', $name, $hostname), 1, +           "File $name belongs to $hostname"); +    } else { +        is(is_for_host('file', $name, $hostname), 0, +           "File $name doesn't belong to $hostname"); +    } +} +  # Now we need an actual database.  Use Wallet::Admin to set it up.  db_setup;  my $setup = eval { Wallet::Admin->new }; | 
