diff --git a/src/ol/net.js b/src/ol/net.js index f36a3fff10..e7aac3b9d9 100644 --- a/src/ol/net.js +++ b/src/ol/net.js @@ -2,7 +2,6 @@ * @module ol/net */ import {getUid} from './index.js'; -const _ol_net_ = {}; /** @@ -16,7 +15,7 @@ const _ol_net_ = {}; * @param {string=} opt_callbackParam Custom query parameter for the JSONP * callback. Default is 'callback'. */ -_ol_net_.jsonp = function(url, callback, opt_errback, opt_callbackParam) { +export function jsonp(url, callback, opt_errback, opt_callbackParam) { const script = document.createElement('script'); const key = 'olc_' + getUid(callback); function cleanup() { @@ -38,5 +37,4 @@ _ol_net_.jsonp = function(url, callback, opt_errback, opt_callbackParam) { callback(data); }; document.getElementsByTagName('head')[0].appendChild(script); -}; -export default _ol_net_; +} diff --git a/src/ol/source/BingMaps.js b/src/ol/source/BingMaps.js index 5b1dc6e65f..4cf59b6844 100644 --- a/src/ol/source/BingMaps.js +++ b/src/ol/source/BingMaps.js @@ -4,7 +4,7 @@ import {inherits} from '../index.js'; import {createFromTileUrlFunctions} from '../tileurlfunction.js'; import {applyTransform, intersects} from '../extent.js'; -import _ol_net_ from '../net.js'; +import {jsonp as requestJSONP} from '../net.js'; import {get as getProjection, getTransformFromProjections} from '../proj.js'; import SourceState from '../source/State.js'; import TileImage from '../source/TileImage.js'; @@ -70,7 +70,7 @@ const BingMaps = function(options) { '?uriScheme=https&include=ImageryProviders&key=' + this.apiKey_ + '&c=' + this.culture_; - _ol_net_.jsonp(url, this.handleImageryMetadataResponse.bind(this), undefined, + requestJSONP(url, this.handleImageryMetadataResponse.bind(this), undefined, 'jsonp'); }; diff --git a/src/ol/source/TileJSON.js b/src/ol/source/TileJSON.js index 32681f9aad..ef8fc980eb 100644 --- a/src/ol/source/TileJSON.js +++ b/src/ol/source/TileJSON.js @@ -11,7 +11,7 @@ import {inherits} from '../index.js'; import {createFromTemplates} from '../tileurlfunction.js'; import {assert} from '../asserts.js'; import {applyTransform, intersects} from '../extent.js'; -import _ol_net_ from '../net.js'; +import {jsonp as requestJSONP} from '../net.js'; import {get as getProjection, getTransformFromProjections} from '../proj.js'; import SourceState from '../source/State.js'; import TileImage from '../source/TileImage.js'; @@ -48,7 +48,7 @@ const TileJSON = function(options) { if (options.url) { if (options.jsonp) { - _ol_net_.jsonp(options.url, this.handleTileJSONResponse.bind(this), + requestJSONP(options.url, this.handleTileJSONResponse.bind(this), this.handleTileJSONError.bind(this)); } else { const client = new XMLHttpRequest(); diff --git a/src/ol/source/TileUTFGrid.js b/src/ol/source/TileUTFGrid.js index 9a9a0861fa..cc4058bd8c 100644 --- a/src/ol/source/TileUTFGrid.js +++ b/src/ol/source/TileUTFGrid.js @@ -9,7 +9,7 @@ import {assert} from '../asserts.js'; import {listenOnce} from '../events.js'; import EventType from '../events/EventType.js'; import {applyTransform, intersects} from '../extent.js'; -import _ol_net_ from '../net.js'; +import {jsonp as requestJSONP} from '../net.js'; import {get as getProjection, getTransformFromProjections} from '../proj.js'; import SourceState from '../source/State.js'; import TileSource from '../source/Tile.js'; @@ -58,7 +58,7 @@ const UTFGrid = function(options) { if (options.url) { if (this.jsonp_) { - _ol_net_.jsonp(options.url, this.handleTileJSONResponse.bind(this), + requestJSONP(options.url, this.handleTileJSONResponse.bind(this), this.handleTileJSONError.bind(this)); } else { const client = new XMLHttpRequest(); @@ -425,7 +425,7 @@ UTFGrid.Tile_.prototype.loadInternal_ = function() { if (this.state == TileState.IDLE) { this.state = TileState.LOADING; if (this.jsonp_) { - _ol_net_.jsonp(this.src_, this.handleLoad_.bind(this), + requestJSONP(this.src_, this.handleLoad_.bind(this), this.handleError_.bind(this)); } else { const client = new XMLHttpRequest(); diff --git a/test/spec/ol/net.test.js b/test/spec/ol/net.test.js index 0a870d4456..4a1cdfab77 100644 --- a/test/spec/ol/net.test.js +++ b/test/spec/ol/net.test.js @@ -1,5 +1,5 @@ import {getUid} from '../../../src/ol/index.js'; -import _ol_net_ from '../../../src/ol/net.js'; +import {jsonp as requestJSONP} from '../../../src/ol/net.js'; describe('ol.net', function() { @@ -54,11 +54,11 @@ describe('ol.net', function() { }); it('appends callback param to url, cleans up after call', function(done) { - _ol_net_.jsonp('foo', createCallback('foo?callback=', done)); + requestJSONP('foo', createCallback('foo?callback=', done)); }); it('appends correct callback param to a url with query', function(done) { const callback = createCallback('http://foo/bar?baz&callback=', done); - _ol_net_.jsonp('http://foo/bar?baz', callback); + requestJSONP('http://foo/bar?baz', callback); }); it('calls errback when jsonp is not executed, cleans up', function(done) { head.appendChild = function(element) { @@ -74,11 +74,11 @@ describe('ol.net', function() { expect(removeChild.called).to.be(true); done(); } - _ol_net_.jsonp('foo', callback, errback); + requestJSONP('foo', callback, errback); }); it('accepts a custom callback param', function(done) { const callback = createCallback('foo?mycallback=', done); - _ol_net_.jsonp('foo', callback, undefined, 'mycallback'); + requestJSONP('foo', callback, undefined, 'mycallback'); }); }); diff --git a/test/spec/ol/source/bingmaps.test.js b/test/spec/ol/source/bingmaps.test.js index 466e5aa164..1d511fb725 100644 --- a/test/spec/ol/source/bingmaps.test.js +++ b/test/spec/ol/source/bingmaps.test.js @@ -1,4 +1,3 @@ -import _ol_net_ from '../../../../src/ol/net.js'; import BingMaps from '../../../../src/ol/source/BingMaps.js'; import _ol_tilecoord_ from '../../../../src/ol/tilecoord.js'; import Observable from '../../../../src/ol/Observable.js'; @@ -11,21 +10,18 @@ describe('ol.source.BingMaps', function() { let source, tileGrid; beforeEach(function(done) { - const olNetJsonp = _ol_net_.jsonp; - // mock ol.net.Jsonp (used in the ol.source.TileJSON constructor) - _ol_net_.jsonp = function(url, callback) { - const client = new XMLHttpRequest(); - client.open('GET', 'spec/ol/data/bing_aerialwithlabels.json', true); - client.onload = function() { - callback(JSON.parse(client.responseText)); - }; - client.send(); - }; source = new BingMaps({ imagerySet: 'AerialWithLabels', key: '' }); - _ol_net_.jsonp = olNetJsonp; + + const client = new XMLHttpRequest(); + client.open('GET', 'spec/ol/data/bing_aerialwithlabels.json', true); + client.onload = function() { + source.handleImageryMetadataResponse(JSON.parse(client.responseText)); + }; + client.send(); + const key = source.on('change', function() { if (source.getState() === 'ready') { Observable.unByKey(key);