The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
use Test::More;

use FindBin qw($Bin);
use HTTP::Request;
use LWP::UserAgent;

if (!-e "$Bin/config.pl") {
    plan skip_all => 'no net config file';
    exit 0;
}

require "$Bin/config.pl";

plan tests => 6;

ok(defined $net::httpserver, 'net::httpserver exists');
ok(defined $net::cgidir, 'net::cgidir exists');
my $netloc = $net::httpserver || '';
my $script = ($net::cgidir || '') . "/timeout";
my $url = "http://$netloc$script";

my $ua = LWP::UserAgent->new;
$ua->timeout(4);
is($ua->timeout, 4, 'timeout set to 4 seconds');

my $request = HTTP::Request->new('GET', $url);

my $response = $ua->request($request, undef);
isa_ok($response, 'HTTP::Response', 'got a proper response object');

my $str = $response->as_string;

ok($response->is_error, 'is_error');
like($str, qr/timeout/, 'string contains timeout');