diff options
Diffstat (limited to 't/cobrand')
-rw-r--r-- | t/cobrand/bexley.t | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/t/cobrand/bexley.t b/t/cobrand/bexley.t index f227e7450..3937129d3 100644 --- a/t/cobrand/bexley.t +++ b/t/cobrand/bexley.t @@ -2,8 +2,11 @@ use CGI::Simple; use Test::MockModule; use FixMyStreet::TestMech; use FixMyStreet::Script::Reports; +use Catalyst::Test 'FixMyStreet::App'; use_ok 'FixMyStreet::Cobrand::Bexley'; +use_ok 'FixMyStreet::Geocode::Bexley'; +use_ok 'FixMyStreet::Map::Bexley'; my $ukc = Test::MockModule->new('FixMyStreet::Cobrand::UKCouncils'); $ukc->mock('lookup_site_code', sub { @@ -40,6 +43,7 @@ $category->update; FixMyStreet::override_config { ALLOWED_COBRANDS => [ 'bexley' ], MAPIT_URL => 'http://mapit.uk/', + MAP_TYPE => 'Bexley', STAGING_FLAGS => { send_reports => 1, skip_checks => 0 }, COBRAND_FEATURES => { open311_email => { bexley => { p1 => 'p1@bexley', lighting => 'thirdparty@notbexley.example.com' } } }, }, sub { @@ -147,4 +151,55 @@ subtest 'nearest road returns correct road' => sub { is $cobrand->_nearest_feature($cfg, 545451, 174380, $features), '20101226'; }; +subtest 'correct map tiles used' => sub { + my %test = ( + 16 => [ '-', 'oml' ], + 20 => [ '.', 'bexley' ] + ); + foreach my $zoom (qw(16 20)) { + my $tiles = FixMyStreet::Map::Bexley->map_tiles(x_tile => 123, y_tile => 456, zoom_act => $zoom); + my ($sep, $lyr) = @{$test{$zoom}}; + is_deeply $tiles, [ + "//a${sep}tilma.mysociety.org/$lyr/$zoom/122/455.png", + "//b${sep}tilma.mysociety.org/$lyr/$zoom/123/455.png", + "//c${sep}tilma.mysociety.org/$lyr/$zoom/122/456.png", + "//tilma.mysociety.org/$lyr/$zoom/123/456.png", + ]; + } +}; + +my $geo = Test::MockModule->new('FixMyStreet::Geocode'); +$geo->mock('cache', sub { + my $typ = shift; + return [] if $typ eq 'osm'; + return { + features => [ + { + properties => { ADDRESS => 'BRAMPTON ROAD', TOWN => 'BEXLEY' }, + geometry => { type => 'LineString', coordinates => [ [ 1, 2 ], [ 3, 4] ] }, + }, + { + properties => { ADDRESS => 'FOOTPATH TO BRAMPTON ROAD', TOWN => 'BEXLEY' }, + geometry => { type => 'MultiLineString', coordinates => [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] }, + }, + ], + } if $typ eq 'bexley'; +}); + +subtest 'geocoder' => sub { + my $c = ctx_request('/'); + my $results = FixMyStreet::Geocode::Bexley->string("Brampton Road", $c); + is_deeply $results, { error => [ + { + 'latitude' => '49.766844', + 'longitude' => '-7.557122', + 'address' => 'Brampton Road, Bexley' + }, { + 'address' => 'Footpath to Brampton Road, Bexley', + 'longitude' => '-7.557097', + 'latitude' => '49.766863' + } + ] }; +}; + done_testing(); |