aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perllib/FixMyStreet/Cobrand/Bromley.pm12
-rw-r--r--t/Mock/Nominatim.pm2
-rw-r--r--t/app/controller/alert.t3
-rw-r--r--t/cobrand/bromley.t17
-rw-r--r--t/cobrand/fixamingata.t1
5 files changed, 27 insertions, 8 deletions
diff --git a/perllib/FixMyStreet/Cobrand/Bromley.pm b/perllib/FixMyStreet/Cobrand/Bromley.pm
index 36a3e3d5f..0f2f37654 100644
--- a/perllib/FixMyStreet/Cobrand/Bromley.pm
+++ b/perllib/FixMyStreet/Cobrand/Bromley.pm
@@ -37,18 +37,24 @@ sub disambiguate_location {
# a different Priory Avenue in Petts Wood
# From Google maps search, "BR6 0PL" is a valid postcode for Old Priory Avenue
if ($string =~/^old\s+priory\s+av\w*$/i) {
- $string = 'Ramsden Road';
- $town = ', BR6 0PL';
+ $town = 'BR6 0PL';
}
# White Horse Hill is on boundary with Greenwich, so need a
# specific postcode
- $string = 'BR7 6DH' if $string =~ /^white\s+horse/i;
+ $town = 'BR7 6DH' if $string =~ /^white\s+horse/i;
$town = '' if $string =~ /orpington/i;
+ $string =~ s/(, *)?br[12]$//i;
+ $town = 'Beckenham' if $string =~ s/(, *)?br3$//i;
+ $town = 'West Wickham' if $string =~ s/(, *)?br4$//i;
+ $town = 'Orpington' if $string =~ s/(, *)?br[56]$//i;
+ $town = 'Chislehurst' if $string =~ s/(, *)?br7$//i;
+ $town = 'Swanley' if $string =~ s/(, *)?br8$//i;
return {
%{ $self->SUPER::disambiguate_location() },
+ string => $string,
town => $town,
centre => '51.366836,0.040623',
span => '0.154963,0.24347',
diff --git a/t/Mock/Nominatim.pm b/t/Mock/Nominatim.pm
index 1f4e248d2..806ebbfd3 100644
--- a/t/Mock/Nominatim.pm
+++ b/t/Mock/Nominatim.pm
@@ -39,6 +39,6 @@ sub query {
return [];
}
-
+LWP::Protocol::PSGI->register(t::Mock::Nominatim->to_psgi_app, host => 'nominatim.openstreetmap.org');
__PACKAGE__->run_if_script;
diff --git a/t/app/controller/alert.t b/t/app/controller/alert.t
index ce3c2ef9b..57e73e5ec 100644
--- a/t/app/controller/alert.t
+++ b/t/app/controller/alert.t
@@ -1,5 +1,3 @@
-use LWP::Protocol::PSGI;
-
use FixMyStreet::TestMech;
my $mech = FixMyStreet::TestMech->new;
@@ -39,7 +37,6 @@ FixMyStreet::override_config {
$mech->content_contains('ward:2651:20728:Edinburgh:City_Centre');
subtest "Test Nominatim lookup" => sub {
- LWP::Protocol::PSGI->register(t::Mock::Nominatim->run_if_script, host => 'nominatim.openstreetmap.org');
$mech->get_ok('/alert/list?pc=High Street');
$mech->content_contains('We found more than one match for that location');
};
diff --git a/t/cobrand/bromley.t b/t/cobrand/bromley.t
index d62a0ad0f..6ee4be282 100644
--- a/t/cobrand/bromley.t
+++ b/t/cobrand/bromley.t
@@ -194,4 +194,21 @@ subtest 'check display of TfL reports' => sub {
$mech->content_like(qr{<a title="Test Test[^>]*bromley.example.org[^>]*><img[^>]*yellow});
};
+subtest 'check geolocation overrides' => sub {
+ my $cobrand = FixMyStreet::Cobrand::Bromley->new;
+ foreach my $test (
+ { query => 'Main Rd, BR1', town => 'Bromley', string => 'Main Rd' },
+ { query => 'Main Rd, BR3', town => 'Beckenham', string => 'Main Rd' },
+ { query => 'Main Rd, BR4', town => 'West Wickham', string => 'Main Rd' },
+ { query => 'Main Rd, BR5', town => 'Orpington', string => 'Main Rd' },
+ { query => 'Main Rd, BR7', town => 'Chislehurst', string => 'Main Rd' },
+ { query => 'Main Rd, BR8', town => 'Swanley', string => 'Main Rd' },
+ { query => 'Old Priory Avenue', town => 'BR6 0PL', string => 'Old Priory Avenue' },
+ ) {
+ my $res = $cobrand->disambiguate_location($test->{query});
+ is $res->{town}, $test->{town}, "Town matches $test->{town}";
+ is $res->{string}, $test->{string}, "String matches $test->{string}";
+ }
+};
+
done_testing();
diff --git a/t/cobrand/fixamingata.t b/t/cobrand/fixamingata.t
index 0aa264660..d1f1dcec4 100644
--- a/t/cobrand/fixamingata.t
+++ b/t/cobrand/fixamingata.t
@@ -5,7 +5,6 @@ use FixMyStreet::TestMech;
my $mech = FixMyStreet::TestMech->new;
use t::Mock::Nominatim;
-LWP::Protocol::PSGI->register(t::Mock::Nominatim->to_psgi_app, host => 'nominatim.openstreetmap.org');
# Front page test