The following module was proposed for inclusion in the Module List:
modid: Web::Walker
DSLIP: bdpOp
description: walk through web site, checking stuff
userid: SFINK (Steve A Fink)
chapterid: 15 (World_Wide_Web_HTML_HTTP_CGI)
communities:
similar:
WWW::Robot HTML::Validator
rationale:
Ok, I'll confess -- I am very uncertain of what to name this thing,
so I picked Web::Walker because it sounds kinda cool and is
guaranteed to annoy^Wbe noticed by the happy fun modules@ people.
It is a framework for writing web application-specific sanity
checkers. It differs from all the related tools I can find in that
it does no automatic link-walking; the entire operation is under
programmatic control. It's really a scripting language for web
applications. It pulls out all the forms, links, images, etc., and
allows the scripter to set field values and click on links. Also,
before you start wandering through the site, you can create global
constraints on all or some of the pages. If this seems too abstract,
here's an example script:
use Unnamed::Web::Walker::Doohickey; my $site = Blah::Site->new();
$site->page("Login", url => qr/login/i); $site->constrain_page(sub {
shift()->{name} ne 'Login' }, has_text => qr/copyright/);
$site->constrain_page('any', sub { validate_html(shift()->{content}
});
my $walker = Blah::Walker->new($site);
$walker->get("http://localhost/myapp/");
$walker->assert_at("Login"); $walker->post('any', user => 'bob',
password => 'bob'); $walker->setField('any', pretext =>
qr/first\s*name/i, 'Robert');
('pretext' means any text discovered in a preorder traversal of an
HTML tree rooted at a form, before arriving at the specified input
field. Which usually means text to the left of a form field. Not
that this is relevant.)
HTML::Checker? (not necessarily HTML specific) WWW::Checker? (seems
a little vague) WWW::Check? WebSite::Walker? (just as intrusive as
Web::Walker) WWW::Constrain? WWW::Browser? (too misleading, even if
this is a browser) WWW::Sanity? (I use it to write web app sanity
checks) WWW::Lint? (sounds too automated; this is a framework)
WWW::AppLint? (huh?) WWW::Agent? (too overloaded) WWW::Auto?
WWW::Automate? WWW::Script? (a bit high-falutin') Script::WWW? (it's
just an OO extension, not a scripting language) WWW::Clean/Scrub?
Argh. Thanks in advance for doing my thinking for me. :-)
enteredby: SFINK (Steve A Fink)
enteredon: Thu Nov 1 19:15:18 2001 GMT
The resulting entry would be:
Web::
::Walker bdpOp walk through web site, checking stuff SFINK
Thanks for registering,
The Pause Team
PS: The following links are only valid for module list maintainers:
Registration form with editing capabilities:
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=9f100000_17edf65d9af4476d&SUBMIT_pause99_add_mod_preview=1
Immediate (one click) registration:
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=9f100000_17edf65d9af4476d&SUBMIT_pause99_add_mod_insertit=1