aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStruan Donald <struan@exo.org.uk>2018-10-10 16:51:39 +0100
committerStruan Donald <struan@exo.org.uk>2018-10-15 14:10:14 +0100
commitadb976ce4b72d6c8747ccd578a9f1ff256531e15 (patch)
tree5d28561547393db64585049be5730fdb328a1d75
parentadf5b624149698a1da056b294f6ed6d85a868434 (diff)
allow map zoom constants to be overridden
call ZOOM_LEVELS and MIN_ZOOM_LEVELS using self so that we can override them in a subclass.
-rw-r--r--CHANGELOG.md1
-rw-r--r--perllib/FixMyStreet/Map/OSM.pm4
-rw-r--r--t/app/controller/around.t31
3 files changed, 34 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 67fe1b3be..d58c6e30d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,7 @@
- Development improvements:
- Add cobrand hook for dashboard viewing permission. #2285
- Have body.url work in hashref lookup. #2284
+ - OSM based map types can now override zoom levels #2288
- Internal things:
- Move send-comments code to package for testing. #2109 #2170
diff --git a/perllib/FixMyStreet/Map/OSM.pm b/perllib/FixMyStreet/Map/OSM.pm
index 67f12d526..a6a95b48b 100644
--- a/perllib/FixMyStreet/Map/OSM.pm
+++ b/perllib/FixMyStreet/Map/OSM.pm
@@ -69,8 +69,8 @@ sub display_map {
sub generate_map_data {
my ($self, $data, %params) = @_;
- my $numZoomLevels = ZOOM_LEVELS;
- my $zoomOffset = MIN_ZOOM_LEVEL;
+ my $numZoomLevels = $self->ZOOM_LEVELS;
+ my $zoomOffset = $self->MIN_ZOOM_LEVEL;
if ($params{any_zoom}) {
$numZoomLevels = 19;
$zoomOffset = 0;
diff --git a/t/app/controller/around.t b/t/app/controller/around.t
index 2d67dc6ac..8eeafec7f 100644
--- a/t/app/controller/around.t
+++ b/t/app/controller/around.t
@@ -1,3 +1,13 @@
+package FixMyStreet::Map::Tester;
+use base 'FixMyStreet::Map::FMS';
+
+use constant ZOOM_LEVELS => 99;
+use constant MIN_ZOOM_LEVEL => 88;
+
+1;
+
+package main;
+
use Test::MockModule;
use FixMyStreet::TestMech;
@@ -279,4 +289,25 @@ subtest 'check skip_around skips around page' => sub {
};
};
+subtest 'check map zoom level customisation' => sub {
+ FixMyStreet::override_config {
+ MAPIT_URL => 'http://mapit.uk/',
+ MAP_TYPE => 'OSM',
+ }, sub {
+ $mech->get('/around?latitude=51.754926&longitude=-1.256179');
+ $mech->content_contains('data-numZoomLevels=6');
+ $mech->content_contains('data-zoomOffset=13');
+ };
+
+
+ FixMyStreet::override_config {
+ MAPIT_URL => 'http://mapit.uk/',
+ MAP_TYPE => 'Tester',
+ }, sub {
+ $mech->get('/around?latitude=51.754926&longitude=-1.256179');
+ $mech->content_contains('data-numZoomLevels=99');
+ $mech->content_contains('data-zoomOffset=88');
+ };
+};
+
done_testing();