1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
|
#!/usr/bin/perl
use strict;
use warnings;
use Test::More;
use Test::Fatal;
use Test::Moose;
use t::lib::Test::HT;
ht_test(BadRequest => {}, {
code => 400,
reason => 'Bad Request',
});
ht_test(
Unauthorized => { www_authenticate => 'Basic realm="realm"' },
{
code => 401,
reason => 'Unauthorized',
headers => [ 'WWW-Authenticate' => 'Basic realm="realm"' ],
},
);
ht_test(
Unauthorized => {
www_authenticate => [
'Basic realm="basic realm"',
'Digest realm="digest realm"',
]
},
{
code => 401,
reason => 'Unauthorized',
headers => [
'WWW-Authenticate' => 'Basic realm="basic realm"',
'WWW-Authenticate' => 'Digest realm="digest realm"',
],
},
);
ht_test(Forbidden => {}, {
code => 403,
reason => 'Forbidden',
});
ht_test(NotFound=> {}, {
code => 404,
reason => 'Not Found',
});
ht_test(MethodNotAllowed => { allow => [ qw(GET PUT) ] }, {
code => 405,
reason => 'Method Not Allowed',
headers => [ Allow => 'GET,PUT' ],
});
like(
exception {
HTTP::Throwable::Factory->throw(MethodNotAllowed => {
allow => [ 'GET', 'PUT', 'OPTIONS', 'PUT' ],
});
},
qr/Attribute \(allow\) does not pass the type constraint/,
'... type check works (must be unique list)',
);
like(
exception {
HTTP::Throwable::Factory->throw(MethodNotAllowed => {
allow => [ 'GET', 'PUT', 'OPTIONS', 'TEST' ],
});
},
qr/Attribute \(allow\) does not pass the type constraint/,
'... type check works (must be all known methods)',
);
ht_test(NotAcceptable => {}, {
code => 406,
reason => 'Not Acceptable',
});
ht_test(
ProxyAuthenticationRequired => {
proxy_authenticate => 'Basic realm="realm"'
},
{
code => 407,
reason => 'Proxy Authentication Required',
headers => [ 'Proxy-Authenticate' => 'Basic realm="realm"' ],
},
);
ht_test(
ProxyAuthenticationRequired => {
proxy_authenticate => [
'Basic realm="realm"',
'Digest realm="other_realm"',
],
},
{
code => 407,
reason => 'Proxy Authentication Required',
headers => [
'Proxy-Authenticate' => 'Basic realm="realm"',
'Proxy-Authenticate' => 'Digest realm="other_realm"',
],
},
);
ht_test(RequestTimeout => {}, {
code => 408,
reason => 'Request Timeout',
});
ht_test(Conflict => {}, {
code => 409,
reason => 'Conflict',
});
done_testing;
|