From 071aad4815bae1d584f50a982f68ec9ace2cecfd Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Wed, 18 Nov 2015 11:30:10 +0100 Subject: [PATCH] Check ol.source.UrlTile#urls property for null value Fixes #4446 --- src/ol/source/tilearcgisrestsource.js | 2 +- src/ol/source/tilewmssource.js | 10 ++++++---- test/spec/ol/source/tilewmssource.test.js | 10 ++++++++++ 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/ol/source/tilearcgisrestsource.js b/src/ol/source/tilearcgisrestsource.js index bd37a418d6..47ec86fd0f 100644 --- a/src/ol/source/tilearcgisrestsource.js +++ b/src/ol/source/tilearcgisrestsource.js @@ -91,7 +91,7 @@ ol.source.TileArcGISRest.prototype.getRequestUrl_ = pixelRatio, projection, params) { var urls = this.urls; - if (urls.length === 0) { + if (!urls) { return undefined; } diff --git a/src/ol/source/tilewmssource.js b/src/ol/source/tilewmssource.js index f17caee76a..47b66b23ac 100644 --- a/src/ol/source/tilewmssource.js +++ b/src/ol/source/tilewmssource.js @@ -212,7 +212,7 @@ ol.source.TileWMS.prototype.getRequestUrl_ = pixelRatio, projection, params) { var urls = this.urls; - if (urls.length === 0) { + if (!urls) { return undefined; } @@ -298,9 +298,11 @@ ol.source.TileWMS.prototype.resetCoordKeyPrefix_ = function() { var i = 0; var res = []; - var j, jj; - for (j = 0, jj = this.urls.length; j < jj; ++j) { - res[i++] = this.urls[j]; + if (this.urls) { + var j, jj; + for (j = 0, jj = this.urls.length; j < jj; ++j) { + res[i++] = this.urls[j]; + } } var key; diff --git a/test/spec/ol/source/tilewmssource.test.js b/test/spec/ol/source/tilewmssource.test.js index 8fcc0ac64e..d5de725a24 100644 --- a/test/spec/ol/source/tilewmssource.test.js +++ b/test/spec/ol/source/tilewmssource.test.js @@ -13,6 +13,16 @@ describe('ol.source.TileWMS', function() { }; }); + describe('constructor', function() { + it('can be constructed without url or urls params', function() { + var source = new ol.source.TileWMS({ + projection: 'EPSG:3857', + tileGrid: ol.tilegrid.createXYZ({maxZoom: 6}) + }); + expect(source).to.be.an(ol.source.TileWMS); + }); + }); + describe('#getTile', function() { it('returns a tile with the expected URL', function() {