Create fake type "subContainer"

This commit is contained in:
Xavier Guimard 2015-06-21 19:52:19 +00:00
parent 9cfb59ad81
commit baa2be3d78
3 changed files with 65 additions and 44 deletions

View File

@ -835,6 +835,9 @@ sub attributes {
documentation => 'Virtualhost urls/Datas to post',
},
vhostOptions => {
type => 'subContainer',
},
vhostPort => {
type => 'int',
default => -1,
@ -2003,6 +2006,8 @@ m{^(?:ldapi://[^/]*/?|\w[\w\-\.]*(?::\d{1,5})?|ldap(?:s|\+tls)?://\w[\w\-\.]*(?:
{ type => 'oidcOPMetaDataNodeContainer', help => 'oidcop.html', },
oidcRPMetaDataNodes =>
{ type => 'oidcRPMetaDataNodeContainer', help => 'oidcrp.html', },
oidcOPMetaDataOptions => { type => 'subContainer', },
oidcRPMetaDataOptions => { type => 'subContainer', },
# OpenID Connect providers
oidcOPMetaDataJSON => { type => 'oidcmetadatajson', },

View File

@ -474,6 +474,12 @@ sub _unitTest {
foreach my $key ( keys %$conf ) {
my ( $attr, $type );
if ( $attr->{type} and $attr->{type} eq 'subContainer' ) {
# TODO Recursive
}
else {
# Check if key exists
unless ( $attr = $attrs->{$key} ) {
push @{ $self->errors }, { message => "__unknownKey__: $key" };
@ -487,6 +493,10 @@ sub _unitTest {
#TODO
}
elsif ( $attr->{type} =~ /Container$/ ) {
#TODO
}
else {
die "Unkown type $attr->{type}"
unless ( $type = $types->{ $attr->{type} } );
@ -501,7 +511,8 @@ sub _unitTest {
$res = 0;
}
elsif ($w) {
push @{ $self->warnings }, { message => "$key: $w" };
push @{ $self->warnings },
{ message => "$key: $w" };
}
}
elsif ( $ref eq 'Regexp' ) {
@ -523,6 +534,7 @@ sub _unitTest {
}
}
}
}
return $res;
}

View File

@ -15,6 +15,7 @@ $count += 3;
ok( opendir( D, $formDir ), 'Found forms dir' );
my %forms = map { s/\.html$// ? ( $_ => 1 ) : () } readdir D;
close D;
delete $forms{white};
delete $forms{restore};
@ -23,30 +24,33 @@ ok( $tree = Lemonldap::NG::Manager::Tree::tree(), 'Get tree' );
ok( $ctrees = Lemonldap::NG::Manager::CTrees::cTrees(), 'Get cTrees' );
ok( $attr = Lemonldap::NG::Manager::Attributes::attributes(),
'Get attributes' );
$count +=4;
$count += 4;
my %types = %{ getTypes( $tree, values(%$ctrees), $attr ) };
foreach(qw(home menuCat menuApp)){
ok($forms{$_},"Found $_ form");
$count ++;
foreach (qw(home menuCat menuApp)) {
ok( $forms{$_}, "Found $_ form" );
$count++;
delete $forms{$_};
}
foreach my $type ( keys %types ) {
delete $types{$type};
next if($type =~ /^(?:url|PerlModule|hostname|pcre|lmAttrOrMacro|RSAP(?:ublic|rivate)Key)$/);
next
if ( $type =~
/^(?:url|PerlModule|hostname|pcre|lmAttrOrMacro|subContainer|RSAP(?:ublic|rivate)Key)$/
);
ok( $forms{$type}, "Found $type" );
delete $forms{$type};
$count++;
if ( $type =~ s/Container$// ) {
next if($type eq 'simpleInput');
next if ( $type eq 'simpleInput' );
ok( $forms{$type}, "Found $type" );
delete $forms{$type};
$count++;
}
}
ok(!%forms, "No unused forms");
ok( !%forms, "No unused forms" );
$count++;
done_testing($count);