diff options
author | Matthew Somerville <matthew@mysociety.org> | 2014-03-12 14:21:44 +0000 |
---|---|---|
committer | Matthew Somerville <matthew@mysociety.org> | 2014-03-12 14:25:35 +0000 |
commit | bcf9858a20adbf75f09a6a3b54d63c8012f54fe9 (patch) | |
tree | cbab0176f04a09978eda5532f54af3be13fe3671 /t/open311 | |
parent | 4df8d9979a4325bf2b47f401b4095654dd43d3a9 (diff) |
Add test for de47a7f.
This tests that the default string used by the old-style Open311 update
code if there is no incoming string and the report is marked fixed, is
translated.
Diffstat (limited to 't/open311')
-rw-r--r-- | t/open311/getupdates.t | 78 |
1 files changed, 63 insertions, 15 deletions
diff --git a/t/open311/getupdates.t b/t/open311/getupdates.t index 500ac97d2..4376e2f4b 100644 --- a/t/open311/getupdates.t +++ b/t/open311/getupdates.t @@ -4,9 +4,7 @@ use strict; use warnings; use Test::More; -use FindBin; -use lib "$FindBin::Bin/../perllib"; -use lib "$FindBin::Bin/../commonlib/perllib"; +use FixMyStreet; use_ok( 'Open311::GetUpdates' ); use_ok( 'Open311' ); @@ -51,12 +49,9 @@ my $problem = $problem_rs->new( title => '', detail => '', used_map => 1, - user_id => 1, name => '', state => 'confirmed', - service => '', cobrand => 'default', - cobrand_data => '', user => $user, created => DateTime->now()->subtract( days => 1 ), lastupdate => DateTime->now()->subtract( days => 1 ), @@ -155,12 +150,9 @@ my $problem2 = $problem_rs->create( title => '', detail => '', used_map => 1, - user_id => 1, name => '', state => 'confirmed', - service => '', cobrand => 'default', - cobrand_data => '', user => $user, created => DateTime->now()->subtract( days => 1 ), lastupdate => DateTime->now()->subtract( days => 1 ), @@ -189,10 +181,66 @@ subtest 'update with two requests' => sub { is $problem2->comments->count, 1, 'added a comment to second problem'; }; -$problem->comments->delete; -$problem->delete; -$user->comments->delete; -$user->problems->delete; -$user->delete; +# No status_notes field now, so that static string in code is used. +$requests_xml = qq{<?xml version="1.0" encoding="utf-8"?> +<service_requests> +<request> +<service_request_id>638346</service_request_id> +<status>closed</status> +<service_name>Sidewalk and Curb Issues</service_name> +<service_code>006</service_code> +<description></description> +<agency_responsible></agency_responsible> +<service_notice></service_notice> +<requested_datetime>2010-04-14T06:37:38-08:00</requested_datetime> +UPDATED_DATETIME +<expected_datetime>2010-04-15T06:37:38-08:00</expected_datetime> +<lat>37.762221815</lat> +<long>-122.4651145</long> +</request> +</service_requests> +}; -done_testing(); +my $problem3 = $problem_rs->create( { + postcode => 'EH99 1SP', + latitude => 1, + longitude => 1, + areas => 1, + title => 'Title', + detail => 'Details', + used_map => 1, + name => '', + state => 'confirmed', + cobrand => 'fixamingata', + user => $user, + created => DateTime->now()->subtract( days => 1 ), + lastupdate => DateTime->now()->subtract( days => 1 ), + anonymous => 1, + external_id => 638346, +} ); + +subtest 'test translation of auto-added comment from old-style Open311 update' => sub { + my $dt = sprintf( '<updated_datetime>%s</updated_datetime>', DateTime->now ); + $requests_xml =~ s/UPDATED_DATETIME/$dt/; + + my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'requests.xml' => $requests_xml } ); + + FixMyStreet::override_config { + ALLOWED_COBRANDS => [ 'fixamingata' ], + }, sub { + ok $updates->update_reports( [ 638346 ], $o, { name => 'Test Council' } ); + }; + is $o->test_uri_used, 'http://example.com/requests.xml?jurisdiction_id=mysociety&service_request_id=638346', 'get url'; + + is $problem3->comments->count, 1, 'added a comment'; + is $problem3->comments->first->text, "St\xe4ngd av kommunen", 'correct comment text'; +}; + +END { + if ($user) { + $user->comments->delete; + $user->problems->delete; + $user->delete; + } + done_testing(); +} |