Blame t/200_live_local_ip.t

Packit 3f4df8
#!perl
Packit 3f4df8
Packit 3f4df8
use strict;
Packit 3f4df8
use warnings;
Packit 3f4df8
Packit 3f4df8
use IO::Socket::INET;
Packit 3f4df8
use Test::More 0.88;
Packit 3f4df8
use HTTP::Tiny;
Packit 3f4df8
Packit 3f4df8
my $test_host = "www.google.com";
Packit 3f4df8
my $test_url  = "http://www.google.com/";
Packit 3f4df8
Packit 3f4df8
plan 'skip_all' => "Only run for \$ENV{AUTOMATED_TESTING}"
Packit 3f4df8
  unless $ENV{AUTOMATED_TESTING};
Packit 3f4df8
Packit 3f4df8
plan 'skip_all' => "Internet connection timed out"
Packit 3f4df8
  unless IO::Socket::INET->new(
Packit 3f4df8
    PeerHost  => $test_host,
Packit 3f4df8
    PeerPort  => 80,
Packit 3f4df8
    Proto     => 'tcp',
Packit 3f4df8
    Timeout   => 10,
Packit 3f4df8
  );
Packit 3f4df8
Packit 3f4df8
my ($tiny, $response);
Packit 3f4df8
Packit 3f4df8
# default local address should work; try three times since the test url
Packit 3f4df8
# can have intermittent failures
Packit 3f4df8
$tiny = HTTP::Tiny->new;
Packit 3f4df8
for (1 .. 3) {
Packit 3f4df8
    $response = $tiny->get($test_url);
Packit 3f4df8
    last if $response->{success};
Packit 3f4df8
    sleep 2;
Packit 3f4df8
}
Packit 3f4df8
isnt( $response->{status}, '599', "Request to $test_url completed (default local address)" );
Packit 3f4df8
Packit 3f4df8
# bad local IP should fail
Packit 3f4df8
$tiny = HTTP::Tiny->new(local_address => '999.999.999.999'); # bad IP is error
Packit 3f4df8
$response = $tiny->get($test_url);
Packit 3f4df8
is( $response->{status}, '599', "Request to $test_url failed (invalid local address)" )
Packit 3f4df8
  or diag explain $response;
Packit 3f4df8
Packit 3f4df8
done_testing;