|
|
|
@ -1,6 +1,6 @@ |
|
|
|
|
package My::Portal; |
|
|
|
|
|
|
|
|
|
use Test::More tests => 8; |
|
|
|
|
use Test::More tests => 13; |
|
|
|
|
use strict; |
|
|
|
|
|
|
|
|
|
our @ISA = qw(Lemonldap::NG::Portal::IssuerDBOpenID |
|
|
|
@ -8,14 +8,15 @@ our @ISA = qw(Lemonldap::NG::Portal::IssuerDBOpenID |
|
|
|
|
|
|
|
|
|
sub lmLog { |
|
|
|
|
my ( $self, $msg, $level ) = splice @_; |
|
|
|
|
|
|
|
|
|
#print STDERR "[$level] $msg\n"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
our $CONFIRM; |
|
|
|
|
our $param = { confirm => 0 }; |
|
|
|
|
|
|
|
|
|
sub param { |
|
|
|
|
my ( $self, $key ) = splice @_; |
|
|
|
|
return { confirm => $CONFIRM, }->{$key}; |
|
|
|
|
return $param->{$key}; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
sub info { } |
|
|
|
@ -33,25 +34,64 @@ SKIP: { |
|
|
|
|
use_ok('Lemonldap::NG::Portal::IssuerDBOpenID'); |
|
|
|
|
use_ok('Lemonldap::NG::Portal::OpenID::SREG'); |
|
|
|
|
|
|
|
|
|
my $p = bless {}, __PACKAGE__; |
|
|
|
|
my $p = bless { |
|
|
|
|
sessionInfo => { |
|
|
|
|
uid => 'test', |
|
|
|
|
mail => 'x.x.org' |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
__PACKAGE__; |
|
|
|
|
|
|
|
|
|
my ( $r, $h ); |
|
|
|
|
( $r, $h ) = $p->sregHook( '', '', 0, 0, {} ); |
|
|
|
|
ok( $r == 0, 'Call sregHook with untrusted request' ); |
|
|
|
|
$CONFIRM = -1; |
|
|
|
|
ok( !$p->sregHook( '', '', 1, 1, {} ), 'Call sregHook with confirm => -1' ); |
|
|
|
|
$CONFIRM = 1; |
|
|
|
|
ok( $p->sregHook( '', '', 1, 1, {} ), 'Call sregHook without arguments' ); |
|
|
|
|
ok( $r == 0, 'SREG: Call sregHook with untrusted request' ); |
|
|
|
|
$param->{confirm} = -1; |
|
|
|
|
ok( |
|
|
|
|
!$p->sregHook( '', '', 1, 1, {} ), |
|
|
|
|
'SREG: call sregHook with confirm => -1' |
|
|
|
|
); |
|
|
|
|
$param->{confirm} = 1; |
|
|
|
|
ok( |
|
|
|
|
$p->sregHook( '', '', 1, 1, {} ), |
|
|
|
|
'SREG: call sregHook without arguments' |
|
|
|
|
); |
|
|
|
|
( $r, $h ) = |
|
|
|
|
$p->sregHook( '', '', 1, 1, |
|
|
|
|
{ required => 'fullname,email', optional => 'nickname' }, |
|
|
|
|
); |
|
|
|
|
ok( $r == 0, 'Unconfigured required attributes' ); |
|
|
|
|
ok( $r == 0, 'SREG: 0 returned unless required attributes are configured' ); |
|
|
|
|
$p->{openIdSreg_fullname} = '$uid'; |
|
|
|
|
$p->{openIdSreg_email} = '$mail'; |
|
|
|
|
$p->{openIdSreg_nickname} = '$uid'; |
|
|
|
|
( $r, $h ) = |
|
|
|
|
$p->sregHook( '', '', 1, 1, |
|
|
|
|
{ required => 'fullname,email', optional => 'nickname' }, |
|
|
|
|
); |
|
|
|
|
ok( $r == 1, 'SREG: 1 returned if required attributes are configured' ); |
|
|
|
|
ok( ref($h), 'SREG: Parameters returned as hashref' ); |
|
|
|
|
ok( ( $h->{email} eq 'x.x.org' and $h->{fullname} eq 'test' ), |
|
|
|
|
'SREG: required attributes returned' ); |
|
|
|
|
ok( !defined( $h->{nickname} ), 'SREG: optional parameter not returned' ); |
|
|
|
|
$param->{sreg_nickname} = 0; |
|
|
|
|
( $r, $h ) = |
|
|
|
|
$p->sregHook( '', '', 1, 1, |
|
|
|
|
{ required => 'fullname,email', optional => 'nickname' }, |
|
|
|
|
); |
|
|
|
|
ok( $r == 1, 'Configured required attributes' ); |
|
|
|
|
ok( !defined( $h->{nickname} ), |
|
|
|
|
'SREG: optional unwanted parameter not returned' ); |
|
|
|
|
$param->{sreg_nickname} = 'OK'; |
|
|
|
|
( $r, $h ) = |
|
|
|
|
$p->sregHook( '', '', 1, 1, |
|
|
|
|
{ required => 'fullname,email', optional => 'nickname' }, |
|
|
|
|
); |
|
|
|
|
ok( defined( $h->{nickname} ), 'SREG: optional wanted parameter returned' ); |
|
|
|
|
|
|
|
|
|
$param->{confirm} = 0; |
|
|
|
|
( $r, $h ) = |
|
|
|
|
$p->sregHook( '', '', 1, 1, |
|
|
|
|
{ required => 'fullname,email', optional => 'nickname' }, |
|
|
|
|
); |
|
|
|
|
ok( ( $r == 0 and ref($h) ), |
|
|
|
|
'SREG: 0 returned for unconfirmed parameters' ); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|