The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
no warnings 'redefine';
use Net::OpenID::Consumer;
use Test::More;

my @tests = qw(
  example.com  http://example.com/
  http://example.com  http://example.com/
  https://example.com  https://example.com/
  https://example.com/  https://example.com/
  http://example.com/user  http://example.com/user
  http://example.com/user/  http://example.com/user/
  http://example.com/  http://example.com/
);

{
    use integer;
    plan tests => (@tests / 2);
}

# stop Consumer to fetch HTML content from the URL
local *Net::OpenID::Consumer::_find_semantic_info = sub {
    my($self, $url, $final_url_ref) = @_;
    $$final_url_ref = $url;
    return { "openid.server" => "http://example.com/op" };
};
local *Net::OpenID::Yadis::discover = sub {};

while (my($url, $normalized) = splice(@tests, 0, 2)) {
    my $csr = Net::OpenID::Consumer->new;
    my $identity = $csr->claimed_identity($url);
    is $identity->claimed_url, $normalized, "$url -> $normalized";
}