diff options
Diffstat (limited to 't')
-rw-r--r-- | t/app/controller/admin/bodies.t | 39 | ||||
-rw-r--r-- | t/app/controller/report_inspect.t | 25 | ||||
-rw-r--r-- | t/open311/getservicerequests.t | 41 |
3 files changed, 105 insertions, 0 deletions
diff --git a/t/app/controller/admin/bodies.t b/t/app/controller/admin/bodies.t index 9bdf8fb9a..a485d286d 100644 --- a/t/app/controller/admin/bodies.t +++ b/t/app/controller/admin/bodies.t @@ -150,6 +150,45 @@ subtest 'check open311 configuring' => sub { is $conf->endpoint, 'http://example.org/open311', 'endpoint updated'; is $conf->api_key, 'new api key', 'api key updated'; is $conf->jurisdiction, 'open311', 'jurisdiction configures'; + ok !$conf->get_extra_metadata('fetch_all_problems'), 'fetch all problems unset'; + + $mech->form_number(3); + $mech->submit_form_ok( + { + with_fields => { + api_key => 'new api key', + endpoint => 'http://example.org/open311', + jurisdiction => 'open311', + send_comments => 0, + send_method => 'Open311', + fetch_all_problems => 1, + } + } + ); + + $mech->content_contains('Values updated'); + + $conf = FixMyStreet::App->model('DB::Body')->find( $body->id ); + ok $conf->get_extra_metadata('fetch_all_problems'), 'fetch all problems set'; + + $mech->form_number(3); + $mech->submit_form_ok( + { + with_fields => { + api_key => 'new api key', + endpoint => 'http://example.org/open311', + jurisdiction => 'open311', + send_comments => 0, + send_method => 'Open311', + fetch_all_problems => 0, + } + } + ); + + $mech->content_contains('Values updated'); + + $conf = FixMyStreet::App->model('DB::Body')->find( $body->id ); + ok !$conf->get_extra_metadata('fetch_all_problems'), 'fetch all problems unset'; }; subtest 'check text output' => sub { diff --git a/t/app/controller/report_inspect.t b/t/app/controller/report_inspect.t index 5447c744e..f2b300e11 100644 --- a/t/app/controller/report_inspect.t +++ b/t/app/controller/report_inspect.t @@ -50,18 +50,36 @@ FixMyStreet::override_config { $mech->content_lacks('Save changes'); $mech->content_lacks('Priority'); $mech->content_lacks('Traffic management'); + $mech->content_lacks('/admin/report_edit/'.$report_id.'">admin</a>)'); $user->user_body_permissions->create({ body => $oxon, permission_type => 'report_edit_priority' }); $mech->get_ok("/report/$report_id"); $mech->content_contains('Save changes'); $mech->content_contains('Priority'); $mech->content_lacks('Traffic management'); + $mech->content_lacks('/admin/report_edit/'.$report_id.'">admin</a>)'); $user->user_body_permissions->create({ body => $oxon, permission_type => 'report_inspect' }); $mech->get_ok("/report/$report_id"); $mech->content_contains('Save changes'); $mech->content_contains('Priority'); $mech->content_contains('Traffic management'); + $mech->content_lacks('/admin/report_edit/'.$report_id.'">admin</a>)'); + }; + + subtest "council staff can't see admin report edit link on FMS.com" => sub { + my $report_edit_permission = $user->user_body_permissions->create({ + body => $oxon, permission_type => 'report_edit' }); + $mech->get_ok("/report/$report_id"); + $mech->content_lacks('/admin/report_edit/'.$report_id.'">admin</a>)'); + $report_edit_permission->delete; + }; + + subtest "superusers can see admin report edit link on FMS.com" => sub { + $user->update({is_superuser => 1}); + $mech->get_ok("/report/$report_id"); + $mech->content_contains('/admin/report_edit/'.$report_id.'">admin</a>)'); + $user->update({is_superuser => 0}); }; subtest "test basic inspect submission" => sub { @@ -539,6 +557,13 @@ FixMyStreet::override_config { is $report->get_extra_metadata('traffic_information'), 'Signs and Cones', 'report data changed'; }; + subtest "admin link present on inspect page on cobrand" => sub { + my $report_edit_permission = $user->user_body_permissions->create({ + body => $oxon, permission_type => 'report_edit' }); + $mech->get_ok("/report/$report_id"); + $mech->content_contains('/admin/report_edit/'.$report_id.'">admin</a>)'); + $report_edit_permission->delete; + }; }; FixMyStreet::override_config { diff --git a/t/open311/getservicerequests.t b/t/open311/getservicerequests.t index c59e5cc41..57f112e2f 100644 --- a/t/open311/getservicerequests.t +++ b/t/open311/getservicerequests.t @@ -273,6 +273,47 @@ for my $test ( }; } +subtest 'check fetch_all body setting ignores date errors' => sub { + my $xml = prepare_xml({ id => '12345678' }); + + $body->update( { + send_method => 'Open311', + fetch_problems => 1, + comment_user_id => $user->id, + endpoint => 'http://open311.localhost/', + api_key => 'KEY', + jurisdiction => 'test', + } ); + $body->set_extra_metadata( fetch_all_problems => 1 ); + $body->update(); + + my $update = Open311::GetServiceRequests->new( + verbose => 1, + system_user => $user, + ); + $update = Test::MockObject::Extends->new($update); + + $update->mock('create_open311_object', sub { + return Open311->new( + jurisdiction => 'mysociety', + endpoint => 'http://example.com', + test_mode => 1, + test_get_returns => { 'requests.xml' => $xml} + ); + } ); + + my $count = FixMyStreet::DB->resultset('Problem')->count; + FixMyStreet::override_config { + MAPIT_URL => 'http://mapit.uk/', + }, sub { + $update->fetch; + }; + + my $after = FixMyStreet::DB->resultset('Problem')->count; + + is $after, $count + 1, 'problem created'; +}; + for my $test ( { desc => 'convert easting/northing to lat/long', |