require
't/test-lib.pm'
;
my
$res
;
my
$client
= LLNG::Manager::Test->new(
{
ini
=> {
logLevel
=>
'error'
,
useSafeJail
=> 1,
issuerDBOpenIDConnectActivation
=> 1,
multiValuesSeparator
=>
";"
}
}
);
my
$oidc
=
$client
->p->loadedModules->{
'Lemonldap::NG::Portal::Issuer::OpenIDConnect'
};
my
$tests
= [
[ [
undef
,
"string"
,
"auto"
],
'{"key":null}'
],
[ [
""
,
"string"
,
"auto"
],
'{"key":null}'
],
[ [
"foo"
,
"string"
,
"auto"
],
'{"key":"foo"}'
],
[ [
"foo;bar"
,
"string"
,
"auto"
],
'{"key":["foo","bar"]}'
],
[ [
undef
,
"int"
,
"auto"
],
'{"key":null}'
],
[ [
""
,
"int"
,
"auto"
],
'{"key":null}'
],
[ [
"0"
,
"int"
,
"auto"
],
'{"key":0}'
],
[ [
"0;1;2;3"
,
"int"
,
"auto"
],
'{"key":[0,1,2,3]}'
],
[ [
undef
,
"bool"
,
"auto"
],
'{"key":null}'
],
[ [
""
,
"bool"
,
"auto"
],
'{"key":null}'
],
[ [
"0"
,
"bool"
,
"auto"
],
'{"key":false}'
],
[ [
"1"
,
"bool"
,
"auto"
],
'{"key":true}'
],
[ [
"0;1;;3"
,
"bool"
,
"auto"
],
'{"key":[false,true,false,true]}'
],
[ [
undef
,
"string"
,
"always"
],
'{"key":null}'
],
[ [
""
,
"string"
,
"always"
],
'{"key":null}'
],
[ [
"foo"
,
"string"
,
"always"
],
'{"key":["foo"]}'
],
[ [
"foo;bar"
,
"string"
,
"always"
],
'{"key":["foo","bar"]}'
],
[ [
undef
,
"int"
,
"always"
],
'{"key":null}'
],
[ [
""
,
"int"
,
"always"
],
'{"key":null}'
],
[ [
"0"
,
"int"
,
"always"
],
'{"key":[0]}'
],
[ [
"0;1;2;3"
,
"int"
,
"always"
],
'{"key":[0,1,2,3]}'
],
[ [
undef
,
"bool"
,
"always"
],
'{"key":null}'
],
[ [
""
,
"bool"
,
"always"
],
'{"key":null}'
],
[ [
"0"
,
"bool"
,
"always"
],
'{"key":[false]}'
],
[ [
"1"
,
"bool"
,
"always"
],
'{"key":[true]}'
],
[ [
"0;1;;3"
,
"bool"
,
"always"
],
'{"key":[false,true,false,true]}'
],
[ [
undef
,
"string"
,
"never"
],
'{"key":null}'
],
[ [
""
,
"string"
,
"never"
],
'{"key":null}'
],
[ [
"foo"
,
"string"
,
"never"
],
'{"key":"foo"}'
],
[ [
"foo;bar"
,
"string"
,
"never"
],
'{"key":"foo;bar"}'
],
[ [
undef
,
"int"
,
"never"
],
'{"key":null}'
],
[ [
""
,
"int"
,
"never"
],
'{"key":null}'
],
[ [
"0"
,
"int"
,
"never"
],
'{"key":0}'
],
[ [
"0;1;2;3"
,
"int"
,
"never"
],
'{"key":"0;1;2;3"}'
],
[ [
undef
,
"bool"
,
"never"
],
'{"key":null}'
],
[ [
""
,
"bool"
,
"never"
],
'{"key":null}'
],
[ [
"0"
,
"bool"
,
"never"
],
'{"key":false}'
],
[ [
"1"
,
"bool"
,
"never"
],
'{"key":true}'
],
[ [
"0;1;;3"
,
"bool"
,
"never"
],
'{"key":"0;1;;3"}'
],
];
for
my
$test
( @{
$tests
} ) {
my
@args
= @{
$test
->[0] };
my
$expect
=
$test
->[1];
is( to_json( {
key
=>
$oidc
->_formatValue(
@args
,
"key"
,
"foo"
) } ),
$expect
,
"_formatvalue("
.
join
(
', '
,
map
{
"'$_'"
}
@args
) .
")"
)
if
defined
$args
[0];
}
done_testing();