improving doc part3 including some fixes found during code review while documenting
[WWW-Mechanize-Script.git] / lib / WWW / Mechanize / Script / Plugin / ResponseTimeTest.pm
blob67b94c4e4628042d924c046c278901a86da8a503
1 package WWW::Mechanize::Script::Plugin::ResponseTimeTest;
3 use strict;
4 use warnings;
6 use parent qw(WWW::Mechanize::Script::Plugin);
8 # ABSTRACT: check response time of request
10 our $VERSION = '0.001_003';
12 use 5.014;
14 =method check_value_names()
16 Returns qw(min_elapsed_time max_elapsed_time)
18 =cut
20 sub check_value_names
22 return qw(min_elapsed_time max_elapsed_time);
25 =method check_response(\%check,$mech)
27 Proves whether I<min_elapsed_time> is greater than C<client_elapsed_time>
28 (and accumulate I<min_elapsed_time_code> into I<$code> when true) or
29 I<max_elapsed_time> is lower than C<client_elapsed_time> (and accumulate
30 I<max_elapsed_time_code> into I<$code> when true).
32 Return the accumulated I<$code> and appropriate constructed message, if
33 any coparisation failed.
35 =cut
37 sub check_response
39 my ( $self, $check, $mech ) = @_;
41 my $code = 0;
42 my $msg;
44 my $min_time = 0 + $self->get_check_value( $check, "min_elapsed_time" );
45 my $max_time = 0 + $self->get_check_value( $check, "max_elapsed_time" );
46 my $total_time = 0 + $mech->client_elapsed_time();
48 if ( defined($min_time) and $min_time > $total_time )
50 my $err_code = $self->get_check_value( $check, "min_elapsed_time_code" ) // 1;
51 $code = &{ $check->{compute_code} }( $code, $err_code );
52 $msg = "elapsed time $total_time exceeded lower threshold ($min_time)";
54 if ( defined($max_time) and $max_time < $total_time )
56 my $err_code = $self->get_check_value( $check, "max_elapsed_time_code" ) // 1;
57 $code = &{ $check->{compute_code} }( $code, $err_code );
58 if ($msg)
60 $msg .= " and upper threshold ($max_time)";
62 else
64 $msg = "elapsed time $total_time exceeded upper threshold ($max_time)";
68 return ( $code, ( $msg ? ($msg) : () ) );