Browsermob-Proxy
view release on metacpan or search on metacpan
#! /usr/bin/perl
use strict;
use warnings;
use Test::More;
use Try::Tiny;
use JSON;
use Browsermob::Proxy;
use File::Basename qw/dirname/;
use lib dirname(__FILE__);
use tlib::MockBrowsermobServer qw/generate_mock_server/;
my $server_port = 63638;
my $port = 9091;
SPECIFY_PORT: {
my $proxy = Browsermob::Proxy->new(
server_port => $server_port,
port => $port,
mock => generate_mock_server()
);
ok(defined $proxy->port, 'created a proxy with our own port');
if ($proxy->has_mock) {
cmp_ok($proxy->port, 'eq', $port, 'on the default port');
}
my $res = $proxy->has_mock ? $proxy->delete_proxy : { body => ""};
ok($res->{body} eq '', 'proxy deletes itself');
# ok($delete_count eq 1, 'proxy deletes self when taken out of scope');
}
NO_PORT: {
my $proxy = Browsermob::Proxy->new(
server_port => $port,
mock => generate_mock_server()
);
isa_ok($proxy, 'Browsermob::Proxy');
ok(defined $proxy->port, 'Our new proxy has its own port!');
}
HAR: {
CREATE_UNNAMED: {
my $har_server = generate_mock_server();
$har_server->{'/proxy/' . $port . '/har'} = sub {
my $req = shift;
ok($req->method eq 'PUT', 'creating a har uses PUT');
ok($req->body eq '{}', 'unnamed har body is empty');
$req->new_response(200, ['Content-Type' => 'application/json'], "");
};
my $proxy = Browsermob::Proxy->new(
server_port => $server_port,
port => $port,
mock => $har_server
);
my $res = $proxy->new_har;
}
CREATE_NAMED: {
my $har_server = generate_mock_server();
( run in 0.889 second using v1.01-cache-2.11-cpan-5837b0d9d2c )