|
Packit |
a09cf7 |
use strict;
|
|
Packit |
a09cf7 |
use warnings;
|
|
Packit |
a09cf7 |
|
|
Packit |
a09cf7 |
use Test::More;
|
|
Packit |
a09cf7 |
|
|
Packit |
a09cf7 |
plan tests => 9;
|
|
Packit |
a09cf7 |
|
|
Packit |
a09cf7 |
use HTTP::Response;
|
|
Packit |
a09cf7 |
use HTTP::Headers::Auth;
|
|
Packit |
a09cf7 |
|
|
Packit |
a09cf7 |
my $res = HTTP::Response->new(401);
|
|
Packit |
a09cf7 |
$res->push_header(WWW_Authenticate => qq(Foo realm="WallyWorld", foo=bar, Bar realm="WallyWorld2"));
|
|
Packit |
a09cf7 |
$res->push_header(WWW_Authenticate => qq(Basic Realm="WallyWorld", foo=bar, bar=baz));
|
|
Packit |
a09cf7 |
|
|
Packit |
a09cf7 |
note $res->as_string;
|
|
Packit |
a09cf7 |
|
|
Packit |
a09cf7 |
my %auth = $res->www_authenticate;
|
|
Packit |
a09cf7 |
|
|
Packit |
a09cf7 |
is(keys(%auth), 3);
|
|
Packit |
a09cf7 |
|
|
Packit |
a09cf7 |
is($auth{basic}{realm}, "WallyWorld");
|
|
Packit |
a09cf7 |
is($auth{bar}{realm}, "WallyWorld2");
|
|
Packit |
a09cf7 |
|
|
Packit |
a09cf7 |
$a = $res->www_authenticate;
|
|
Packit |
a09cf7 |
is($a, 'Foo realm="WallyWorld", foo=bar, Bar realm="WallyWorld2", Basic Realm="WallyWorld", foo=bar, bar=baz');
|
|
Packit |
a09cf7 |
|
|
Packit |
a09cf7 |
$res->www_authenticate("Basic realm=foo1");
|
|
Packit |
a09cf7 |
note $res->as_string;
|
|
Packit |
a09cf7 |
|
|
Packit |
a09cf7 |
$res->www_authenticate(Basic => {realm => "foo2"});
|
|
Packit |
a09cf7 |
print $res->as_string;
|
|
Packit |
a09cf7 |
|
|
Packit |
a09cf7 |
$res->www_authenticate(Basic => [realm => "foo3", foo=>33],
|
|
Packit |
a09cf7 |
Digest => {nonce=>"bar", foo=>'foo'});
|
|
Packit |
a09cf7 |
note $res->as_string;
|
|
Packit |
a09cf7 |
|
|
Packit |
a09cf7 |
my $string = $res->as_string;
|
|
Packit |
a09cf7 |
|
|
Packit |
a09cf7 |
like($string, qr/WWW-Authenticate: Basic realm="foo3", foo=33/);
|
|
Packit |
a09cf7 |
like($string, qr/WWW-Authenticate: Digest (nonce=bar, foo=foo|foo=foo, nonce=bar)/);
|
|
Packit |
a09cf7 |
|
|
Packit |
a09cf7 |
$res = HTTP::Response->new(401);
|
|
Packit |
a09cf7 |
my @auth = $res->proxy_authenticate('foo');
|
|
Packit |
a09cf7 |
is_deeply(\@auth, []);
|
|
Packit |
a09cf7 |
@auth = $res->proxy_authenticate('foo', 'bar');
|
|
Packit |
a09cf7 |
is_deeply(\@auth, ['foo', {}]);
|
|
Packit |
a09cf7 |
@auth = $res->proxy_authenticate('foo', {'bar' => '_'});
|
|
Packit |
a09cf7 |
is_deeply(\@auth, ['foo', {}, 'bar', {}]);
|