Browsermob-Proxy
view release on metacpan or search on metacpan
META.json
META.yml
Makefile.PL
cpanfile
dist.ini
lib/Browsermob/Proxy.pm
lib/Browsermob/Proxy/CompareParams.pm
lib/Browsermob/Server.pm
t/CompareParams.t
t/Proxy-Filter.t
t/Proxy-Timeout.t
t/Proxy.t
t/Server.t
t/e2e.t
t/load.t
t/tlib/MockBrowsermobServer.pm
weaver.ini
xt/release/pod-coverage.t
xt/release/pod-syntax.t
lib/Browsermob/Proxy.pm view on Meta::CPAN
],
description => 'Modify request/payload with javascript'
},
set_timeout => {
method => 'PUT',
path => '/:port/timeout',
required_params => [
'port',
],
optional_params => [
'requestTimeout',
'readTimeout',
'connectionTimeout',
'dnsCacheTimeout'
],
description => 'Handles different proxy timeouts'
}
}
};
has server_addr => (
is => 'rw',
default => sub { '127.0.0.1' }
lib/Browsermob/Proxy.pm view on Meta::CPAN
Under the covers, we are using L</filter_request> with a Javascript
Rhino payload.
=head2 set_timeout ( $timeoutType => $milliseconds )
Set different time outs on the instantiated proxy. You can set
multiple timeouts at once, if you like.
$proxy->timeout(
requestTimeout => 5000,
readTimeout => 6000
);
=over 4
=item *
requestTimeout
Request timeout in milliseconds. A timeout value of -1 is interpreted
as infinite timeout. It equals -1 by default.
=item *
readTimeout
Read timeout is the timeout for waiting for data or, put differently,
a maximum period inactivity between two consecutive data packets. A
timeout value of zero is interpreted as an infinite timeout. It equals
60000 by default.
=item *
connectionTimeout
Determines the timeout in milliseconds until a connection is
established. A timeout value of zero is interpreted as an infinite
timeout. It eqauls 60000 by default.
=item *
dnsCacheTimeout
Sets the maximum length of time that records will be stored in this
Cache. A nonpositive value disables this feature (that is, sets no
limit). It equals 0 by default.
=back
=head2 delete_proxy
Delete the proxy off of the server, shutting down the port. Although
lib/Browsermob/Server.pm view on Meta::CPAN
}
sub _is_listening {
my ($self, $timeout) = @_;
$timeout //= 30;
my $sock = IO::Socket::INET->new(
PeerAddr => $self->server_addr,
PeerPort => $self->server_port,
Timeout => $timeout
);
return $sock;
}
1;
__END__
=pod
t/CompareParams.t view on Meta::CPAN
ok( ! cmp_request_params($requests, $assert) );
};
};
SKIP: {
my $server = Browsermob::Server->new;
my $has_connection = IO::Socket::INET->new(
PeerAddr => 'www.perl.org',
PeerPort => 80,
Timeout => 5
);
skip 'No server found for e2e tests', 2
unless $server->_is_listening(5) and $has_connection;
describe 'E2E Comparing params' => sub {
my ($ua, $proxy, $har);
before each => sub {
$ua = LWP::UserAgent->new;
t/Proxy-Timeout.t view on Meta::CPAN
use strict;
use warnings;
use Test::Spec;
use Browsermob::Proxy;
use File::Basename qw/dirname/;
use lib dirname(__FILE__);
use tlib::MockBrowsermobServer qw/generate_mock_server/;
describe 'Proxy Timeouts' => sub {
my ($proxy, $mock_server);
my $mock_port = 9999;
my $called;
before each => sub {
$mock_server = generate_mock_server($mock_port);
$called = 0;
$mock_server->{'/proxy/' . $mock_port . '/timeout'} = sub {
$called++;
t/Proxy-Timeout.t view on Meta::CPAN
);
};
$proxy = Browsermob::Proxy->new(
mock => $mock_server
);
};
it 'should set without throwing' => sub {
eval { $proxy->set_timeout(
requestTimeout => 12345,
dnsCacheTimeout => 54321
) };
ok( ! $@ );
};
it 'should go to /proxy/:port/timeout' => sub {
$proxy->set_timeout( requestTimeout => 12345 );
ok( $called );
};
};
runtests;
use strict;
use warnings;
use Test::Spec;
use Browsermob::Server;
SKIP: {
my $server = Browsermob::Server->new;
my $has_connection = IO::Socket::INET->new(
PeerAddr => 'www.google.com',
PeerPort => 80,
Timeout => 5
);
skip 'No server found for e2e tests', 2
unless $server->_is_listening(5) and $has_connection;
describe 'Simple E2E test' => sub {
my ($ua, $proxy, $har);
before each => sub {
$ua = LWP::UserAgent->new;
( run in 1.359 second using v1.01-cache-2.11-cpan-fd5d4e115d8 )