NAME
WWW::Mechanize::Script - fetch websites and executes tests on the results
VERSION
version 0.101
SYNOPSIS
my
$wms
= WWW::Mechanize::Script->new();
$wms
->run_script(
@script
);
foreach
my
$test
(
@script
) {
$wms
->run_test(%{
$test
});
}
METHODS
new(\%cfg)
Instantiates new WWW::Mechanize::Script object.
Configuration hash looks like:
defaults
=> {
check
=> {
# check defaults
"code_cmp"
:
">"
,
"XXX_code"
: 2,
"ignore_case"
: true,
},
request
=> {
# request defaults
agent
=> {
# LWP::UserAgent defaults
agent
=>
"Agent Adderly"
,
accept_cookies
=>
'yes'
,
# check LWP::UA param
show_cookie
=>
'yes'
,
# check LWP::UA param
show_headers
=>
'yes'
,
# check LWP::UA param
send_cookie
=>
'yes'
,
# check LWP::UA param
},
},
},
script_dirs
=> [
qw(/old/wtscripts /new/json_scripts)
],
summary
=> {
template
=>
"[% CODE_NAME; IF MESSAGES.size > 0 %] - [% MESSAGES.join(', '); END %]\n"
,
target
=>
"-"
},
report
=> {
template
=>
"[% USE Dumper; Dumper.dump(RESPONSE) %]"
,
target
=>
"/tmp/@OPTS_FILE@.log"
,
append
=> true
}
_gen_code_compute
Interpretes one of following config hash parameters
defaults
=> {
check
=> {
# check defaults
code_cmp
=>
">"
,
code_func
=>
'my ($cur,$new) = @_; return $cur > $new ? $cur : $new;'
}
}
When none of them are there, the sample in defaults->check->code_func is used.
test_plugins( )
The plugins()
classmethod returns the names of configuration loading plugins as found by Module::Pluggable::Object.
get_request_value($request,$value_name)
Returns the value for creating the request - either from current script or from defaults (defaults->request->$value_name
).
summarize($code,@msgs)
Generates the summary passing the template in the configuration of config->summary
into Template::Toolkit.
Following variables are provided for the template processing:
- CODE
-
The accumulated return code of all executed checks computed via "_gen_code_compute".
- MESSAGES
-
Collected messages returned of all executed checks.
Plus all constants named in the config->templating->vars
hash and those in config->summary->vars
hash.
The output target is guessed from config->summary->target
whereby the special target - is interpreted as stdout
.
gen_report($full_test, $mech, $code, @msgs)
Generates a report for a test within a script by passing the template in the configuration of config->report
into Template::Toolkit.
Following variables are provided for the template processing:
- CODE
-
The accumulated return code of all executed checks computed via "_gen_code_compute".
- MESSAGES
-
Collected messages returned of all executed checks.
- RESPONSE
-
Hash containing the following HTTP::Response items:
Plus all constants named in the config->templating->vars
hash and those in config->report->vars
hash.
The output target is guessed from config->summary->target
whereby the special target - is interpreted as stdout
.
When the config->summary->append
flag is set and contains a true value, the output is appended to an existing target.
run_script(@script)
Runs a script consisting of at least one test and generates a summary if configured. The code to accumulate the return codes from each test is taken from config->defaults->check
as described in "_gen_code_compute".
Returns the accumulated return codes from all tests in the given script.
run_test(\%test)
Runs one test and generates a report if configured (config->report
).
The request is constructed from test->request
whereby the part below test->request->agent
is used to parametrize a new instance of WWW::Mechanize::Timed.
All keys defined below test->request->agent
are taken as setter of WWW::Mechanize::Timed or a inherited class.
If there is a hash defined at test->request->http_headers
, those headers are passed along with the URI specified at test->request->uri
to GET/POST or whatever you want to do (test->request->method
).
Which checks are executed is defined below test->check
. Each valid plugin below the WWW::Mechanize::Script::Plugin namespace is approved for relevance for the test (see "can_check" in WWW::Mechanize::Script::Plugin).
The test specification is enriched by the configuration in config->defaults
using Hash::Merge with the LEFT_PRECEDENT ruleset. Please care about the ruleset especially when merging arrays is to expect.
The code to accumulate the return codes from each test is taken from test->check
as described in "_gen_code_compute".
Returns the accumulated return codes from all checks in the given tests.
BUGS
Please report any bugs or feature requests on the bugtracker website http://rt.cpan.org/NoAuth/Bugs.html?Dist=WWW-Mechanize-Script or by email to bug-www-mechanize-script@rt.cpan.org.
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
AUTHOR
Jens Rehsack <rehsack@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Jens Rehsack.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.