Apache::Constants->export(
qw(HTTP_MULTIPLE_CHOICES)
);
shift
->send_http_header(
"text/plain"
);
my
$version
= SERVER_VERSION;
if
(
$version
=~ /1\.1\.\d/) {
print
"1..1\nok 1\n"
;
print
"skipping tests against $version\n"
;
die
""
;
}
my
(
%SEEN
,
@export
,
$key
,
$val
);
while
((
$key
,
$val
) =
each
%Apache::Constants::EXPORT_TAGS
) {
Apache::Constants->
import
(
":$key"
);
push
@export
,
grep
{!
$SEEN
{
$_
}++}
@$val
;
}
push
@export
,
grep
{!
$SEEN
{
$_
}++}
@Apache::Constants::EXPORT
;
for
my
$sym
(
@Apache::Constants::EXPORT_OK
) {
next
if
$SEEN
{
$sym
}++;
Apache::Constants->
import
(
$sym
)
unless
defined
&$sym
;
}
my
%skip
=
map
{
$_
,1 }
qw(DONE REMOTE_DOUBLE_REV DECLINE_CMD DIR_MAGIC_TYPE
SERVER_VERSION SERVER_SUBVERSION SERVER_BUILT)
;
if
(1) {
for
(
qw(M_PATCH M_PROPFIND M_PROPPATCH M_MKCOL M_COPY
M_MOVE M_LOCK M_UNLOCK)
)
{
$skip
{
$_
}++;
}
}
my
$tests
= (1 +
@export
) -
keys
%skip
;
$tests
+= 1;
print
"1..$tests\n"
;
print
"ok 1\n"
;
my
$ix
= 2;
my
(
$sym
);
for
$sym
(
sort
@export
) {
next
if
$skip
{
$sym
};
my
$val
=
&$sym
;
my
$name
=
""
;
eval
{
$name
= Apache::Constants->name(
$val
);
};
print
defined
$val
?
""
:
"not "
,
"ok $ix #($name|$sym: $val)\n"
;
$ix
++;
last
if
$ix
>=
$tests
;
}
my
$added
= HTTP_MULTIPLE_CHOICES();
print
defined
$added
?
""
:
"not "
,
"ok $ix\n"
;