LWPx-ParanoidHandler

 view release on metacpan or  search on metacpan

t/10-simple.t  view on Meta::CPAN


    my $res = $ua->get("http://192.0.2.13/");
    ok(! $res->is_success && $res->status_line =~ /blocked/);
    $res = $ua->get("http://192.88.99.77/");
    ok(! $res->is_success && $res->status_line =~ /blocked/, '192.88.99.77');
};

subtest 'hostnames doing CNAMEs (this one resolves to "brad.lj", which is verboten)' => sub {
    my $ua = LWP::UserAgent->new();
    $ua->env_proxy;

    make_paranoid($ua, $dns);

    my $res = $ua->get("http://bradlj-fortest.danga.com/");
    ok(! $res->is_success);
    like($res->status_line, qr/DNS lookup resulted in bad host/);
};
my $res;
my $ua = LWP::UserAgent->new();
$ua->env_proxy;
make_paranoid($ua, $dns);

subtest "can't do empty host name" => sub {
    $res = $ua->get('');
    print $res->status_line, "\n";
    ok(! $res->is_success);
};

subtest "black-listed via blocked_hosts" => sub {
    $res = $ua->get("http://brad.lj/");
    ok(! $res->is_success);
};

subtest "can't do octal in IPs" => sub {
    $res = $ua->get("http://012.1.2.1/");
    ok(! $res->is_success);
};

subtest "can't do decimal/octal IPs" => sub {
    $res = $ua->get("http://167838209/");
    print $res->status_line, "\n";
    ok(! $res->is_success);
};

subtest " checking that port isn't affected" => sub {
    $res = $ua->get("http://brad.lj:80/");
    print $res->status_line, "\n";
    ok(! $res->is_success);
};

subtest "this domain is okay.  bradfitz.com isn't blocked" => sub {
    $res = $ua->get("http://bradfitz.com/");
    print $res->status_line, "\n";
    ok(  $res->is_success);
};

# SSL should still work, assuming it would work before.
SKIP:
{
    my $has_ssleay = eval { require Crypt::SSLeay; 1;   };
    my $has_iossl  = eval { require IO::Socket::SSL; 1; };

    skip "Crypt::SSLeay or IO::Socket::SSL not installed", 1 unless $has_ssleay || $has_iossl;

    $res = $ua->get("https://pause.perl.org/pause/query");
    ok(  $res->is_success && $res->content =~ /Login|PAUSE|Edit/);
}

subtest 'internal. bad.  blocked by default by module.' => sub {
    $res = $ua->get("http://10.2.3.4/");
    note $res->status_line;
    ok(! $res->is_success);
};

subtest 'okay' => sub {
    $res = $ua->get("http://danga.com/temp/");
    note $res->status_line;
    ok(  $res->is_success);
};

subtest 'localhost is blocked, case insensitive' => sub {
    $res = $ua->get("http://LOCALhost/temp/");
    note $res->status_line;
    ok(! $res->is_success);
};

exit;

sub new_ua {
    my $ua = LWP::UserAgent->new(timeout => 5);
    $ua->env_proxy;

    my $dns = Net::DNS::Paranoid->new(@_);
    make_paranoid($ua, $dns);
    return $ua;
}



( run in 2.290 seconds using v1.01-cache-2.11-cpan-75ffa21a3d4 )