File Coverage

lib/WWW/Mechanize/Timed.pm
Criterion Covered Total %
statement 10 12 83.3
branch n/a
condition n/a
subroutine 4 4 100.0
pod n/a
total 14 16 87.5


line stmt bran cond sub pod time code
1             package WWW::Mechanize::Timed;
2 1     1   802 use strict;
  1         2  
  1         54  
3 1     1   7 use warnings FATAL => 'all';
  1         2  
  1         58  
4 1     1   6 use base qw( WWW::Mechanize );
  1         3  
  1         1754  
5 1     1   2284419 use LWPx::TimedHTTP qw(:autoinstall);
  0            
  0            
6             use Time::HiRes;
7             our $VERSION = '0.44';
8              
9             sub new {
10             my $class = shift;
11             my %args = @_;
12             my $self = $class->SUPER::new(%args);
13             $self->{client_elapsed_time} = 0;
14             return $self;
15             }
16              
17             sub get {
18             my $self = shift;
19             my $start = Time::HiRes::gettimeofday();
20             my $response = $self->SUPER::get(@_);
21             $self->{client_elapsed_time} = Time::HiRes::gettimeofday() - $start;
22             return $response;
23             }
24              
25             sub client_elapsed_time {
26             my $self = shift;
27             return $self->{client_elapsed_time};
28             }
29              
30             sub client_request_connect_time {
31             my $self = shift;
32             return $self->response->header('Client-Request-Connect-Time');
33             }
34              
35             sub client_request_transmit_time {
36             my $self = shift;
37             return $self->response->header('Client-Request-Transmit-Time');
38             }
39              
40             sub client_response_server_time {
41             my $self = shift;
42             return $self->response->header('Client-Response-Server-Time');
43             }
44              
45             sub client_response_receive_time {
46             my $self = shift;
47             return $self->response->header('Client-Response-Receive-Time');
48             }
49              
50             sub client_total_time {
51             my $self = shift;
52             return $self->client_request_connect_time
53             + $self->client_request_transmit_time
54             + $self->client_response_server_time
55             + $self->client_response_receive_time;
56             }
57              
58             1;
59              
60             __END__