diff options
author | Edmund von der Burg <evdb@mysociety.org> | 2011-04-13 11:13:39 +0100 |
---|---|---|
committer | Edmund von der Burg <evdb@mysociety.org> | 2011-04-13 11:13:39 +0100 |
commit | 90c05378d5b870b94865189f7b72583ac5022c94 (patch) | |
tree | 98a2ef22f0420759bc8c58f67d732fa21a15bc14 /t/app/controller | |
parent | 23c8cc3c0f7f728e069429dfb3db7eaddd0bcc62 (diff) |
Moved some of the location smarts from '/report/new' to '/around'
Diffstat (limited to 't/app/controller')
-rw-r--r-- | t/app/controller/around.t | 74 | ||||
-rw-r--r-- | t/app/controller/report_import.t | 8 | ||||
-rw-r--r-- | t/app/controller/report_new.t | 73 |
3 files changed, 82 insertions, 73 deletions
diff --git a/t/app/controller/around.t b/t/app/controller/around.t index 021cf8f7d..069ec605a 100644 --- a/t/app/controller/around.t +++ b/t/app/controller/around.t @@ -7,7 +7,7 @@ my $mech = FixMyStreet::TestMech->new; subtest "check that if no query we get sent back to the homepage" => sub { $mech->get_ok('/around'); - is $mech->uri->path, '/', "sent back to '/'"; + is $mech->uri->path, '/around', "still at '/around'"; }; # x,y requests were generated by the old map code. We keep the behavior for @@ -28,4 +28,76 @@ subtest "redirect x,y requests to lat/lon (301 - permanent)" => sub { }; +# test various locations on inital search box +foreach my $test ( + { + pc => '', # + errors => [], + pc_alternatives => [], + }, + { + pc => 'xxxxxxxxxxxxxxxxxxxxxxxxxxx', + errors => ['Sorry, we could not find that location.'], + pc_alternatives => [], + }, + { + pc => 'glenthorpe', + errors => [], + pc_alternatives => [ # TODO - should filter out these non-UK addresses + 'Glenthorpe Crescent, Leeds LS9 7', + 'Glenthorpe Rd, Merton, Greater London SM4 4', + 'Glenthorpe Ln, Katy, TX 77494, USA', + 'Glenthorpe Dr, Walnut, CA 91789, USA', + 'Glenthorpe Ave, Leeds LS9 7', + 'Glenthorpe Ct, Katy, TX 77494, USA', + ], + }, + { + pc => 'Glenthorpe Ct, Katy, TX 77494, USA', + errors => + ['We had a problem with the supplied co-ordinates - outside the UK?'], + pc_alternatives => [], + }, + ) +{ + subtest "test bad pc value '$test->{pc}'" => sub { + $mech->get_ok('/'); + $mech->submit_form_ok( { with_fields => { pc => $test->{pc} } }, + "bad location" ); + is_deeply $mech->page_errors, $test->{errors}, + "expected errors for pc '$test->{pc}'"; + is_deeply $mech->pc_alternatives, $test->{pc_alternatives}, + "expected alternatives for pc '$test->{pc}'"; + }; +} + +# check that exact queries result in the correct lat,lng +foreach my $test ( + { + pc => 'SW1A 1AA', + latitude => '51.5010096115539', + longitude => '-0.141587067110009', + }, + { + pc => 'Manchester', + latitude => '53.4807125', + longitude => '-2.2343765', + }, + { + pc => 'Glenthorpe Rd, Merton, Greater London SM4 4, UK', + latitude => '51.3937997', + longitude => '-0.2209596', + }, + ) +{ + subtest "check lat/lng for '$test->{pc}'" => sub { + $mech->get_ok('/'); + $mech->submit_form_ok( { with_fields => { pc => $test->{pc} } }, + "good location" ); + is_deeply $mech->form_errors, [], "no errors for pc '$test->{pc}'"; + is_deeply $mech->extract_location, $test, + "got expected location for pc '$test->{pc}'"; + }; +} + done_testing(); diff --git a/t/app/controller/report_import.t b/t/app/controller/report_import.t index 5c16324d3..764357b57 100644 --- a/t/app/controller/report_import.t +++ b/t/app/controller/report_import.t @@ -105,12 +105,16 @@ subtest "Submit a correct entry" => sub { is_deeply $mech->visible_form_values, { pc => '' }, "check only pc field is shown"; + is $mech->uri->path, '/around', "sent to report page"; + $mech->submit_form_ok( # { with_fields => { pc => 'SW1A 1AA' } }, "fill in postcode" ); - # check that we are not shown anything as we don't have a location yet + is $mech->uri->path, '/report/new', "sent to report page"; + + # check that fields are prefilled for us is_deeply $mech->visible_form_values, { name => 'Test User', @@ -124,7 +128,7 @@ subtest "Submit a correct entry" => sub { "check imported fields are shown"; TODO: { - local $TODO = "'/report/123' urls not srved by catalyst yet"; + local $TODO = "'/report/123' urls not served by catalyst yet"; # change the details $mech->submit_form_ok( # diff --git a/t/app/controller/report_new.t b/t/app/controller/report_new.t index dca86db77..1310a3e35 100644 --- a/t/app/controller/report_new.t +++ b/t/app/controller/report_new.t @@ -8,77 +8,10 @@ use Web::Scraper; my $mech = FixMyStreet::TestMech->new; $mech->get_ok('/report/new'); -# test various locations on inital search box -foreach my $test ( - { - pc => '', # - errors => [], - pc_alternatives => [], - }, - { - pc => 'xxxxxxxxxxxxxxxxxxxxxxxxxxx', - errors => ['Sorry, we could not find that location.'], - pc_alternatives => [], - }, - { - pc => 'glenthorpe', - errors => [], - pc_alternatives => [ # TODO - should filter out these non-UK addresses - 'Glenthorpe Crescent, Leeds LS9 7, UK', - 'Glenthorpe Rd, Merton, Greater London SM4 4, UK', - 'Glenthorpe Ln, Katy, TX 77494, USA', - 'Glenthorpe Dr, Walnut, CA 91789, USA', - 'Glenthorpe Ave, Leeds LS9 7, UK', - 'Glenthorpe Ct, Katy, TX 77494, USA', - ], - }, - { - pc => 'Glenthorpe Ct, Katy, TX 77494, USA', - errors => - ['We had a problem with the supplied co-ordinates - outside the UK?'], - pc_alternatives => [], - }, - ) -{ - subtest "test bad pc value '$test->{pc}'" => sub { - $mech->get_ok('/report/new'); - $mech->submit_form_ok( { with_fields => { pc => $test->{pc} } }, - "bad location" ); - is_deeply $mech->form_errors, $test->{errors}, - "expected errors for pc '$test->{pc}'"; - is_deeply $mech->pc_alternatives, $test->{pc_alternatives}, - "expected alternatives for pc '$test->{pc}'"; - }; -} +fail "test that lat,lon not covered by council goes to '/around'"; + +fail "test that partial code is transferred"; -# check that exact queries result in the correct lat,lng -foreach my $test ( - { - pc => 'SW1A 1AA', - latitude => '51.5010096115539', - longitude => '-0.141587067110009', - }, - { - pc => 'Manchester', - latitude => '53.4807125', - longitude => '-2.2343765', - }, - { - pc => 'Glenthorpe Rd, Merton, Greater London SM4 4, UK', - latitude => '51.3937997', - longitude => '-0.2209596', - }, - ) -{ - subtest "check lat/lng for '$test->{pc}'" => sub { - $mech->get_ok('/report/new'); - $mech->submit_form_ok( { with_fields => { pc => $test->{pc} } }, - "good location" ); - is_deeply $mech->form_errors, [], "no errors for pc '$test->{pc}'"; - is_deeply $mech->extract_location, $test, - "got expected location for pc '$test->{pc}'"; - }; -} # test that the various bit of form get filled in and errors correctly # generated. |