use Apache::testold;
use Config;

{
    package NoRedirect::UA;

    @ISA = qw(LWP::UserAgent);
    
    sub redirect_ok {0}
}

if(not $net::Is_Win32 and $Config{usesfio} eq "true") {
    print "1..1\n";
    print "ok 1\n";
    exit;
}

my $ua = NoRedirect::UA->new;

my $url = "http://$net::httpserver$net::perldir/io/redir.pl";
my $qredirect = "";

my($request,$response);

my $tests = 4;

$CGI::VERSION ||= 0;

if(have_module("CGI") && ($CGI::VERSION >= 2.37)) {
    $qredirect = "http://$net::httpserver$net::perldir/qredirect.pl";
    $tests += 2;
}

print "1..$tests\n";

$request = HTTP::Request->new(GET => "$url?internal");
$response = $ua->request($request, undef, undef);

unless (($response->code == 200) && ($response->content =~ /camel/)) {
    print "not ";
}

print "ok 1\n";


$request = HTTP::Request->new(GET => "$url?remote");
$response = $ua->request($request, undef, undef);

unless ($response->is_redirect && ($response->header("Location") =~ /perl.apache.org/)) {
    print "not ";
}
print "ok 2\n";

#print $response->as_string;

$request = HTTP::Request->new(GET => "$url?content");
$response = $ua->request($request, undef, undef);

unless ($response->content eq "OK") {
    print "not ";
}

print "ok 3\n";

print "content=`", $response->content, "'\n";

#test internal redirect
$request = HTTP::Request->new(GET => "http://$net::httpserver$net::perldir/io/redir1.pl");
$response = $ua->request($request, undef, undef);
unless ($response->content eq 'OK') {
    print "not ";
}
print "ok 4\n";
print "content=`", $response->content, "'\n";

if ($qredirect) {

    $request = HTTP::Request->new(GET => $qredirect);
    $response = $ua->request($request, undef, undef);

    if ($response->content =~ /Location: http/) {
        print "not ";
    }

    print "ok 5\n";

    print "content=`", $response->content, "'\n";

    $ua = LWP::UserAgent->new;
    $request = HTTP::Request->new(GET => $qredirect);
    $response = $ua->request($request, undef, undef);

    unless ($response->content eq "OK") {
        print "not ";
    }

    print "ok 6\n";

    print "content=`", $response->content, "'\n";


}
