The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

HTML::Form::ForceValue - who cares what values are legal, anyway?

VERSION

version 0.001

SYNOPSIS

  use Test::WWW::Mechanize tests => 5;
  use HTML::Form::ForceValue;

  my $mech = WWW::Mechanize->new;

  # We're going to test our form.
  $mech->get_ok("http://cgi.example.com/form");

  $mech->set_fields(
    name => 'Crazy Ivan',
    city => 'Vladivostok',
  );

  # What if insane bot tries to claim it's from USSR?
  $mech->form_name("user_info")->find_input("country")->force_value("su");

  $mech->submit;

DESCRIPTION

HTML::Form is a very useful module that provides objects to represent HTML forms. They can be filled in, and the filled-in values can be converted into an HTTP::Request for submission to a server.

WWW::Mechanize makes this even easier by providing a very easy to automate user agent that provides HTML::Form objects to represent forms. Test::WWW::Mechanize hangs some testing features on Mech, making it easy to automatically test how web applications behave.

One really important thing to test is how a web application responds to invalid input. Unfortunately, HTML::Form protects you from doing this by throwing an exception when an invalid datum is assigned to an enumerated field. HTML::Form::ForceValue mixes in to HTML::Form classes to provide force_value methods which behave like value, but will automatically add any invalid datum to the list of valid data.

WARNING

This implementation is extremely crude. This feature should really be in HTML::Form (in my humble opinion), and this module should cease to exist once it is. In the meantime, just keep in mind that I spent a lot more time packaging this than I did writing it. Caveat importor!.

AUTHOR

Ricardo SIGNES, <rjbs at cpan.org>

BUGS

Please report any bugs or feature requests to bug-form at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Form. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Form

You can also look for information at:

ACKNOWLEDGEMENTS

COPYRIGHT & LICENSE

Copyright 2006 Ricardo SIGNES, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.