diff options
author | Dave Arter <davea@mysociety.org> | 2016-06-16 13:02:12 +0100 |
---|---|---|
committer | Matthew Somerville <matthew-github@dracos.co.uk> | 2016-06-16 13:43:29 +0100 |
commit | 6624a3c4987e81bb933a42e33967b96b10eba7fd (patch) | |
tree | 37a5de64d721a64200e84824ecded9a95163538f | |
parent | 9f9b70d64d42c938120365262eb91e1cea0a4581 (diff) |
Fix check for old-style parsed XML.
It errored on new-style parsed XML, rather than let it through.
Add a new category to the test that highlights this.
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Report/New.pm | 2 | ||||
-rw-r--r-- | t/app/controller/report_new_open311.t | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Report/New.pm b/perllib/FixMyStreet/App/Controller/Report/New.pm index 110d268d7..af9ca50b5 100644 --- a/perllib/FixMyStreet/App/Controller/Report/New.pm +++ b/perllib/FixMyStreet/App/Controller/Report/New.pm @@ -642,7 +642,7 @@ sub setup_categories_and_bodies : Private { my $metas = $contact->get_extra_fields; if (scalar @$metas) { foreach (@$metas) { - if ($_->{values} && $_->{values}->{value}) { + if (ref $_->{values} eq 'HASH') { $_->{values} = [ map { { name => $_->{name}[0], key => $_->{key}[0] } } @{$_->{values}->{value}} ]; } } diff --git a/t/app/controller/report_new_open311.t b/t/app/controller/report_new_open311.t index 22b37fd55..db6e07933 100644 --- a/t/app/controller/report_new_open311.t +++ b/t/app/controller/report_new_open311.t @@ -30,6 +30,14 @@ my $contact1 = $mech->create_contact_ok( } ], ); +my $contact1b = $mech->create_contact_ok( + body_id => $body->id, # Edinburgh + category => 'Moon lighting', + email => '100b', + extra => [ { description => 'Moon type', code => 'type', required => 'False', values => + [ { name => 'Full', key => 'full' }, { name => 'New', key => 'new' } ] } + ], +); my $contact2 = $mech->create_contact_ok( body_id => $body->id, # Edinburgh category => 'Graffiti Removal', |