use strict;
use warnings FATAL => 'all';
use Apache::Test;
use Apache::TestRequest;
use Apache::TestUtil;

BEGIN {
   # prevent TestRequest from croaking on an HTTP/0.9 response
   $ENV{APACHE_TEST_HTTP_09_OK} = 1;
}

#verify we can send an non-ssl http request to the ssl port
#without dumping core.

my $url = '/index.html';

my @todo;

if (Apache::TestConfig::WIN32) {
    print "\n#ap_core_translate() chokes on ':' here\n",
          "#where r->uri = /mod_ssl:error:HTTP-request\n";
    @todo = (todo => [2]);
}

plan tests => 2, @todo, need_lwp;

my $config = Apache::Test::config();
my $ssl_module = $config->{vars}->{ssl_module_name};
my $hostport = $config->{vhosts}->{$ssl_module}->{hostport};
my $rurl = "http://$hostport$url";

my $res = GET($rurl);
my $proto = $res->protocol;

if ($proto and $proto eq "HTTP/0.9") {
    skip "server gave HTTP/0.9 response";
} else {    
    ok t_cmp($res->code,
             400,
             "Expected bad request from 'GET $rurl'"
            );
}

ok t_cmp($res->content,
         qr{speaking plain HTTP to an SSL-enabled server port},
         "that error document contains the proper hint"
        );

