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;
|