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