blob: 9202916ecd60bbda8baeddaee245d49e32afa2a1 [file] [log] [blame]
# please insert nothing before this line: -*- mode: cperl; cperl-indent-level: 4; cperl-continued-statement-offset: 4; indent-tabs-mode: nil -*-
package TestCompat::apache;
# Apache->"method" and Apache::"function" compat layer tests
# these tests are all run and validated on the server side.
use strict;
use warnings FATAL => 'all';
use Apache::TestUtil;
use Apache::Test;
use ModPerl::Util ();
use Apache2::compat ();
use Apache::Constants qw(DIR_MAGIC_TYPE OPT_EXECCGI :common :response);
use File::Spec::Functions qw(catfile canonpath);
sub fixup {
my $r = shift;
Apache->httpd_conf('Options +ExecCGI');
OK;
}
sub handler {
my $r = shift;
plan $r, tests => 24;
$r->send_http_header('text/plain');
### Apache-> tests
my $fh = Apache->gensym;
ok t_cmp(ref($fh), 'GLOB', "Apache->gensym");
ok t_cmp(Apache->module('mod_perl.c'), 1,
"Apache2::module('mod_perl.c')");
ok t_cmp(Apache->module('mod_ne_exists.c'), 0,
"Apache2::module('mod_ne_exists.c')");
ok t_cmp(Apache->define('MODPERL2'),
Apache2::ServerUtil::exists_config_define('MODPERL2'),
'Apache->define');
ok t_cmp($r->current_callback,
'PerlResponseHandler',
'inside PerlResponseHandler');
t_server_log_error_is_expected();
Apache::log_error("Apache::log_error test ok");
ok 1;
t_server_log_warn_is_expected();
Apache->warn('Apache->warn ok');
ok 1;
t_server_log_warn_is_expected();
Apache::warn('Apache::warn ok');
ok 1;
t_server_log_warn_is_expected();
Apache::Server->warn('Apache::Server->warn ok');
ok 1;
t_server_log_warn_is_expected();
Apache::Server::warn('Apache::Server::warn ok');
ok 1;
# explicitly imported
ok t_cmp(DIR_MAGIC_TYPE, "httpd/unix-directory",
'DIR_MAGIC_TYPE');
# :response is ignored, but is now aliased in :common
ok t_cmp(REDIRECT, "302",
'REDIRECT');
# from :common
ok t_cmp(AUTH_REQUIRED, "401",
'AUTH_REQUIRED');
ok t_cmp(OK, "0",
'OK');
my $exec_cgi = $r->allow_options & Apache2::Const::OPT_EXECCGI;
ok t_cmp($exec_cgi, Apache2::Const::OPT_EXECCGI, 'Apache->httpd_conf');
# (Apache||$r)->server_root_relative
{
my $server_root = Apache::Test::config()->{vars}->{serverroot};
ok t_filepath_cmp(canonpath($Apache::Server::CWD),
canonpath($server_root),
'$server_root');
ok t_filepath_cmp(canonpath($r->server_root_relative),
canonpath($server_root),
'$r->server_root_relative()');
ok t_filepath_cmp(canonpath($r->server_root_relative('conf')),
catfile($server_root, 'conf'),
"\$r->server_root_relative('conf')");
ok t_filepath_cmp(canonpath(Apache->server_root_relative('conf')),
catfile($server_root, 'conf'),
"Apache2::ServerUtil->server_root_relative('conf')");
ok t_filepath_cmp(canonpath(Apache->server_root_relative),
canonpath($server_root),
'Apache2::ServerUtil->server_root_relative()');
my $path = catfile(Apache2::ServerUtil::server_root, 'logs');
ok t_filepath_cmp(canonpath(Apache->server_root_relative($path)),
canonpath($path),
"Apache->server_root_relative('$path')");
}
ok t_cmp(Apache->unescape_url_info("/foo+bar%20baz"),
'/foo bar baz',
'Apache->unescape_url_info');
ok t_cmp $Apache::Server::Starting, 0, '$Apache::Server::Starting';
ok t_cmp $Apache::Server::ReStarting, 1, '$Apache::Server::ReStarting';
OK;
}
1;
__END__
# so we can test whether send_httpd_header() works fine
PerlOptions +ParseHeaders +GlobalRequest
PerlModule TestCompat::apache
PerlFixupHandler TestCompat::apache::fixup