diff options
Diffstat (limited to 'perllib/FixMyStreet/TestMech.pm')
-rw-r--r-- | perllib/FixMyStreet/TestMech.pm | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/perllib/FixMyStreet/TestMech.pm b/perllib/FixMyStreet/TestMech.pm index 4c4a3b3eb..386566e40 100644 --- a/perllib/FixMyStreet/TestMech.pm +++ b/perllib/FixMyStreet/TestMech.pm @@ -398,17 +398,30 @@ Return all the visible form values on the page - ie not the hidden ones. sub visible_form_values { my $mech = shift; + my $name = shift || ''; - my @forms = - grep { ( $_->attr('name') || '' ) ne 'overrides_form' } # ignore overrides - $mech->forms; + my $form; - croak "Found no forms - can't continue..." - unless @forms; - croak "Found several forms - don't know which to use..." - if @forms > 1; + if ($name) { + for ( $mech->forms ) { + $form = $_ if ( $_->attr('name') || '' ) eq $name; + } + croak "Can't find form named $name - can't continue..." + unless $form; + } + else { + my @forms = + grep { ( $_->attr('name') || '' ) ne 'overrides_form' } # ignore overrides + $mech->forms; + + croak "Found no forms - can't continue..." + unless @forms; - my $form = $forms[0]; + croak "Found several forms - don't know which to use..." + if @forms > 1; + + $form = $forms[0]; + } my @visible_fields = grep { ref($_) ne 'HTML::Form::SubmitInput' } |