124 lines
3.7 KiB
JavaScript
124 lines
3.7 KiB
JavaScript
import Static from '../../../../../src/ol/source/ImageStatic.js';
|
|
import {get as getProjection} from '../../../../../src/ol/proj.js';
|
|
|
|
describe('ol/source/ImageStatic', function () {
|
|
let extent, pixelRatio, projection, resolution;
|
|
beforeEach(function () {
|
|
extent = [
|
|
-13637278.73946974, 4543799.13271362, -13617443.330629736,
|
|
4553927.038961405,
|
|
];
|
|
pixelRatio = 1;
|
|
projection = getProjection('EPSG:3857');
|
|
resolution = 38;
|
|
});
|
|
|
|
describe('#getInterpolate()', function () {
|
|
it('is true by default', function () {
|
|
const source = new Static({});
|
|
expect(source.getInterpolate()).to.be(true);
|
|
});
|
|
|
|
it('is false if constructed with interpolate: false', function () {
|
|
const source = new Static({interpolate: false});
|
|
expect(source.getInterpolate()).to.be(false);
|
|
});
|
|
|
|
it('is false if constructed with imageSmoothing: false', function () {
|
|
const source = new Static({imageSmoothing: false});
|
|
expect(source.getInterpolate()).to.be(false);
|
|
});
|
|
});
|
|
|
|
describe('#getImage', function () {
|
|
it('scales image height to fit imageExtent', function (done) {
|
|
const source = new Static({
|
|
url: 'spec/ol/source/images/12-655-1583.png',
|
|
imageExtent: [
|
|
-13629027.891360067, 4539747.983913189, -13619243.951739565,
|
|
4559315.863154193,
|
|
],
|
|
projection: projection,
|
|
});
|
|
|
|
const image = source.getImage(extent, resolution, pixelRatio, projection);
|
|
|
|
source.on('imageloadend', function (event) {
|
|
expect(image.getImage().width).to.be(256);
|
|
expect(image.getImage().height).to.be(512);
|
|
done();
|
|
});
|
|
|
|
image.load();
|
|
});
|
|
|
|
it('scales image width to fit imageExtent', function (done) {
|
|
const source = new Static({
|
|
url: 'spec/ol/source/images/12-655-1583.png',
|
|
imageExtent: [
|
|
-13629027.891360067, 4539747.983913189, -13609460.012119063,
|
|
4549531.923533691,
|
|
],
|
|
projection: projection,
|
|
});
|
|
|
|
const image = source.getImage(extent, resolution, pixelRatio, projection);
|
|
|
|
source.on('imageloadend', function (event) {
|
|
expect(image.getImage().width).to.be(512);
|
|
expect(image.getImage().height).to.be(256);
|
|
done();
|
|
});
|
|
|
|
image.load();
|
|
});
|
|
|
|
it('respects imageSize', function (done) {
|
|
const source = new Static({
|
|
url: 'spec/ol/source/images/12-655-1583.png',
|
|
imageExtent: [
|
|
-13629027.891360067, 4539747.983913189, -13619243.951739565,
|
|
4559315.863154193,
|
|
],
|
|
imageSize: [254, 254],
|
|
projection: projection,
|
|
});
|
|
|
|
const image = source.getImage(extent, resolution, pixelRatio, projection);
|
|
|
|
source.on('imageloadend', function (event) {
|
|
expect(image.getImage().width).to.be(254);
|
|
expect(image.getImage().height).to.be(508);
|
|
done();
|
|
});
|
|
|
|
image.load();
|
|
});
|
|
|
|
it('triggers image load events', function (done) {
|
|
const source = new Static({
|
|
url: 'spec/ol/source/images/12-655-1583.png',
|
|
imageExtent: [
|
|
-13629027.891360067, 4539747.983913189, -13619243.951739565,
|
|
4549531.923533691,
|
|
],
|
|
projection: projection,
|
|
});
|
|
|
|
const imageloadstart = sinon.spy();
|
|
const imageloaderror = sinon.spy();
|
|
|
|
source.on('imageloadstart', imageloadstart);
|
|
source.on('imageloaderror', imageloaderror);
|
|
source.on('imageloadend', function (event) {
|
|
expect(imageloadstart.callCount).to.be(1);
|
|
expect(imageloaderror.callCount).to.be(0);
|
|
done();
|
|
});
|
|
|
|
const image = source.getImage(extent, resolution, pixelRatio, projection);
|
|
image.load();
|
|
});
|
|
});
|
|
});
|