Files
openlayers/test/browser/spec/ol/featureloader.test.js
2021-04-28 09:23:33 -07:00

81 lines
2.2 KiB
JavaScript

import GeoJSON from '../../../../src/ol/format/GeoJSON.js';
import VectorSource from '../../../../src/ol/source/Vector.js';
import {xhr} from '../../../../src/ol/featureloader.js';
describe('ol.featureloader', function () {
describe('ol.featureloader.xhr', function () {
let loader;
let source;
let url;
let format;
beforeEach(function () {
url = 'spec/ol/data/point.json';
format = new GeoJSON();
source = new VectorSource();
});
it('adds features to the source', function (done) {
loader = xhr(url, format);
source.on('addfeature', function (e) {
setTimeout(function () {
expect(source.getFeatures().length).to.be.greaterThan(0);
done();
}, 0);
});
loader.call(source, [], 1, 'EPSG:3857');
});
describe('when called with urlFunction', function () {
it('adds features to the source', function (done) {
url = function (extent, resolution, projection) {
return 'spec/ol/data/point.json';
};
loader = xhr(url, format);
source.on('addfeature', function (e) {
setTimeout(function () {
expect(source.getFeatures().length).to.be.greaterThan(0);
done();
}, 0);
});
loader.call(source, [], 1, 'EPSG:3857');
});
it('sends the correct arguments to the urlFunction', function (done) {
const extent = [];
const resolution = 1;
const projection = 'EPSG:3857';
url = function (extent_, resolution_, projection_) {
expect(extent_).to.eql(extent);
expect(resolution_).to.eql(resolution);
expect(projection_).to.eql(projection);
done();
return 'spec/ol/data/point.json';
};
loader = xhr(url, format);
loader.call(source, [], 1, 'EPSG:3857');
});
});
it('it calls the success callback', function (done) {
const errorSpy = sinon.spy();
loader = xhr(url, format);
loader.call(
source,
[],
1,
'EPSG:3857',
function () {
setTimeout(function () {
expect(errorSpy.callCount).to.be(0);
done();
}, 0);
},
errorSpy
);
});
});
});