aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/TestMech.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perllib/FixMyStreet/TestMech.pm')
-rw-r--r--perllib/FixMyStreet/TestMech.pm29
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' }