use Test::More tests => 25; use Data::Dumper; BEGIN { use_ok('Net::Yadis::Discovery') }; my $disc = Net::Yadis::Discovery->new(debug => 1); $disc->identity_url("http://example.com"); my $buffer; foreach () { $buffer .= $_ } $disc->parse_xrd($buffer); #OpenID test my @arr = $disc->openid_servers; is (@arr,4); @arr = $disc->openid_servers(['1.0']); is (@arr,2); @arr = $disc->openid_servers(['1.1']); is (@arr,3); @arr = $disc->openid_servers(['1.0','1.1']); is (@arr,4); #Delegate test is ($arr[0]->Delegate,"http://myid.myopenid.com/"); #LID test @arr = $disc->lid_servers; is (@arr,2); @arr = $disc->lid_servers(['1.0']); is (@arr,1); @arr = $disc->lid_servers(['2.0']); is (@arr,1); @arr = $disc->lid_servers(['1.0','2.0']); is (@arr,2); #TypeKey test @arr = $disc->typekey_servers; is (@arr,1); #MemberName test is ($arr[0]->MemberName,"myid"); #Hybrid test @arr = $disc->servers('lid','typekey'); is (@arr,3); @arr = $disc->servers('openid'=>['1.0'],'typekey'); is (@arr,3); @arr = $disc->servers('openid'=>['1.1'],'lid'); is (@arr,5); #Coderef test @arr = $disc->servers('openid','typekey',sub{($_[0])}); is (@arr,1); @arr = $disc->servers('openid','typekey',sub{@_}); is (@arr,5); @arr = $disc->servers; is (@arr,7); @arr = $disc->servers(sub{($_[int(rand(@_))])}); is (@arr,1); @arr = $disc->servers(sub{@_}); is (@arr,7); #Delegate test on server method is ($arr[0]->Delegate,"http://myid.myopenid.com/"); #Error case my @err = ( ['Version',['1.0'],'openid'], ['Version','openid',['1.0'],['1.0']], ['No option',sub{},'openid'], ['Unknown','poppenid'], ); foreach my $err (@err){ my $reg = shift(@$err); eval{@arr = $disc->servers(@$err);}; ok ($@ =~ /$reg/); } __END__ http://openid.net/signon/1.0 http://www.myopenid.com/server http://myid.myopenid.com/ http://openid.net/signon/1.0 http://openid.net/signon/1.1 http://www.livejournal.com/openid/server.bml http://www.livejournal.com/users/myid/ http://openid.net/signon/1.1 http://videntity.org/server http://myid.videntity.org/ http://openid.net/signon/1.1 http://auth.mylevel9.com/?action=openid http://mylevel9.com/user/myid http://www.sixapart.com/typekey/sso/1.0 myid http://lid.netmesh.org/sso/2.0 http://mylid.net/myid http://lid.netmesh.org/sso/1.0 http://mylid.net/myid