Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion modules/google-maps/src/google-maps-overlay.ts
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ export default class GoogleMapsOverlay {
return;
}

const isVectorMap = renderingType === VECTOR && google.maps.WebGLOverlayView;
const isVectorMap = renderingType === VECTOR && google.maps.WebGLOverlayView && interleaved;
const OverlayView = isVectorMap ? google.maps.WebGLOverlayView : google.maps.OverlayView;
const overlay = new OverlayView();

Expand Down
84 changes: 52 additions & 32 deletions test/modules/google-maps/google-maps-overlay.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -102,43 +102,63 @@ test('GoogleMapsOverlay#raster lifecycle', t => {
t.end();
});

for (const interleaved of [true, false]) {
test(`GoogleMapsOverlay#vector lifecycle (interleaved:${interleaved}`, t => {
const map = new mapsApi.Map({
width: 1,
height: 1,
longitude: 0,
latitude: 0,
zoom: 1,
renderingType: mapsApi.RenderingType.VECTOR
});
test('GoogleMapsOverlay#vector lifecycle (interleaved:false)', t => {
const map = new mapsApi.Map({
width: 1,
height: 1,
longitude: 0,
latitude: 0,
zoom: 1,
renderingType: mapsApi.RenderingType.VECTOR
});

const overlay = new GoogleMapsOverlay({
interleaved,
layers: []
});
const overlay = new GoogleMapsOverlay({
interleaved: false,
layers: []
});

overlay.setMap(map);
map.emit({type: 'renderingtype_changed'});
t.ok(overlay._overlay.onAdd, 'onAdd lifecycle function is registered');
t.ok(overlay._overlay.onContextLost, 'onContextLost lifecycle function is registered');
t.ok(overlay._overlay.onContextRestored, 'onContextRestored lifecycle function is registered');
t.ok(overlay._overlay.onDraw, 'onDraw lifecycle function is registered');
t.ok(overlay._overlay.onRemove, 'onRemove lifecycle function is registered');

t.notOk(overlay._overlay._draws, 'Map not yet drawn');
overlay.setMap(null);
if (interleaved) {
t.ok(overlay._overlay._draws, 'Redraw requested when map removed');
} else {
t.notOk(overlay._overlay._draws, 'Redraw not requested when map removed');
}
overlay.setMap(map);
map.emit({type: 'renderingtype_changed'});
t.ok(overlay._overlay.onAdd, 'onAdd lifecycle function is registered');
t.ok(overlay._overlay.draw, 'draw lifecycle function is registered');
t.ok(overlay._overlay.onRemove, 'onRemove lifecycle function is registered');
overlay.finalize();

overlay.finalize();
t.end();
});

t.end();
test(`GoogleMapsOverlay#vector lifecycle (interleaved:true)`, t => {
const map = new mapsApi.Map({
width: 1,
height: 1,
longitude: 0,
latitude: 0,
zoom: 1,
renderingType: mapsApi.RenderingType.VECTOR
});
}

const overlay = new GoogleMapsOverlay({
interleaved: true,
layers: []
});

overlay.setMap(map);
map.emit({type: 'renderingtype_changed'});
t.ok(overlay._overlay.onAdd, 'onAdd lifecycle function is registered');
t.ok(overlay._overlay.onContextLost, 'onContextLost lifecycle function is registered');
t.ok(overlay._overlay.onContextRestored, 'onContextRestored lifecycle function is registered');
t.ok(overlay._overlay.onDraw, 'onDraw lifecycle function is registered');
t.ok(overlay._overlay.onRemove, 'onRemove lifecycle function is registered');

t.notOk(overlay._overlay._draws, 'Map not yet drawn');
overlay.setMap(null);

t.ok(overlay._overlay._draws, 'Redraw requested when map removed');

overlay.finalize();

t.end();
});

test('GoogleMapsOverlay#style', t => {
const map = new mapsApi.Map({
Expand Down