aboutsummaryrefslogtreecommitdiffstats
path: root/t/app/controller
diff options
context:
space:
mode:
authorEdmund von der Burg <evdb@mysociety.org>2011-04-13 11:13:39 +0100
committerEdmund von der Burg <evdb@mysociety.org>2011-04-13 11:13:39 +0100
commit90c05378d5b870b94865189f7b72583ac5022c94 (patch)
tree98a2ef22f0420759bc8c58f67d732fa21a15bc14 /t/app/controller
parent23c8cc3c0f7f728e069429dfb3db7eaddd0bcc62 (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.t74
-rw-r--r--t/app/controller/report_import.t8
-rw-r--r--t/app/controller/report_new.t73
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.