NAME

CGI::Test::Form::Widget::Button - Abstract representation of a button

SYNOPSIS

# Inherits from CGI::Test::Form::Widget

DESCRIPTION

This class is the abstract representation of a button, i.e. a submit button, an image button, a reset button or a plain button.

Pressing a button is achieved by calling press() on it, which returns a new page, as a CGI::Test::Page object, or undef if pressing had no round-trip effect.

INTERFACE

The interface is the same as the one described in CGI::Test::Form::Widget, with the following additions:

Attributes

is_pressed

True when the button is pressed.

Attribute Setting

press

Press the button, setting is_pressed to true.

If the button is a reset button (is_reset is true), all widgets are reset to their initial state, and undef is returned.

If the button is a submit button (is_submit is true), then a GET/POST request is issued as appropriate and the reply is made available through a CGI::Test::Page object.

Otherwise, the button pressing is ignored, a warning is issued from the perspective of the caller, via logcarp, and undef is returned.

Widget Classification Predicates

There is an additional set of predicates to distinguish between the various buttons:

is_plain

Returns true for a plain button, i.e. a button that has no submit/reset effects. Usually, those buttons are linked to a script, but CGI::Test does not support scripting yet.

is_reset

Returns true for reset buttons.

is_submit

Returns true for submit buttons, whether they are really shown as buttons or as images. A submit button will cause an HTTP request to be issued in response to its being pressed.

Miscellaneous Features

Although documented, those features are more targetted for internal use...

set_is_pressed flag

Change the pressed status of the button, to the value of flag. It does not raise any other side effect, like submitting an HTTP request if the button is a submit button.

You should probably use the press convenience routine instead of calling this feature directly.

AUTHOR

Raphael Manfredi <Raphael_Manfredi@pobox.com>

SEE ALSO

CGI::Test::Form::Widget(3), CGI::Test::Form::Widget::Button::Image(3), CGI::Test::Form::Widget::Button::Plain(3), CGI::Test::Form::Widget::Button::Reset(3), CGI::Test::Form::Widget::Button::Submit(3).