In addition to using const and let, this also upgrades our linter config and removes lint (mostly whitespace).
271 lines
7.5 KiB
JavaScript
271 lines
7.5 KiB
JavaScript
import Feature from '../../../../src/ol/Feature.js';
|
|
import Point from '../../../../src/ol/geom/Point.js';
|
|
import Style from '../../../../src/ol/style/Style.js';
|
|
import Fill from '../../../../src/ol/style/Fill.js';
|
|
import CircleStyle from '../../../../src/ol/style/Circle.js';
|
|
import Stroke from '../../../../src/ol/style/Stroke.js';
|
|
import Text from '../../../../src/ol/style/Text.js';
|
|
|
|
|
|
describe('ol.style.Style', function() {
|
|
|
|
const testFill = new Fill({
|
|
color: 'rgba(255, 255, 255, 0.6)'
|
|
});
|
|
|
|
const testStroke = new Stroke({
|
|
color: '#319FD3',
|
|
width: 1
|
|
});
|
|
|
|
const testText = new Text({
|
|
font: '12px Calibri,sans-serif',
|
|
fill: new Fill({
|
|
color: '#000'
|
|
}),
|
|
stroke: new Stroke({
|
|
color: '#fff',
|
|
width: 3
|
|
})
|
|
});
|
|
|
|
const testImage = new CircleStyle({
|
|
radius: 5
|
|
});
|
|
|
|
describe('#clone', function() {
|
|
|
|
it('creates a new ol.style.Style', function() {
|
|
const original = new Style();
|
|
const clone = original.clone();
|
|
expect(clone).to.be.an(Style);
|
|
expect(clone).to.not.be(original);
|
|
});
|
|
|
|
it('copies all values', function() {
|
|
const original = new Style({
|
|
geometry: new Point([0, 0, 0]),
|
|
fill: new Fill({
|
|
color: '#319FD3'
|
|
}),
|
|
image: new CircleStyle({
|
|
radius: 5
|
|
}),
|
|
stroke: new Stroke({
|
|
color: '#319FD3'
|
|
}),
|
|
text: new Text({
|
|
text: 'test'
|
|
}),
|
|
zIndex: 2
|
|
});
|
|
const clone = original.clone();
|
|
expect(original.getGeometry().getCoordinates()).to.eql(clone.getGeometry().getCoordinates());
|
|
expect(original.getFill().getColor()).to.eql(clone.getFill().getColor());
|
|
expect(original.getImage().getRadius()).to.eql(clone.getImage().getRadius());
|
|
expect(original.getStroke().getColor()).to.eql(clone.getStroke().getColor());
|
|
expect(original.getText().getText()).to.eql(clone.getText().getText());
|
|
expect(original.getZIndex()).to.eql(clone.getZIndex());
|
|
});
|
|
|
|
it('the clone does not reference the same objects as the original', function() {
|
|
const original = new Style({
|
|
geometry: new Point([0, 0, 0]),
|
|
fill: new Fill({
|
|
color: '#319FD3'
|
|
}),
|
|
image: new CircleStyle({
|
|
radius: 5
|
|
}),
|
|
stroke: new Stroke({
|
|
color: '#319FD3'
|
|
}),
|
|
text: new Text({
|
|
text: 'test'
|
|
})
|
|
});
|
|
const clone = original.clone();
|
|
expect(original.getGeometry()).not.to.be(clone.getGeometry());
|
|
expect(original.getFill()).not.to.be(clone.getFill());
|
|
expect(original.getImage()).not.to.be(clone.getImage());
|
|
expect(original.getStroke()).not.to.be(clone.getStroke());
|
|
expect(original.getText()).not.to.be(clone.getText());
|
|
|
|
clone.getGeometry().setCoordinates([1, 1, 1]);
|
|
clone.getFill().setColor('#012345');
|
|
clone.getImage().setScale(2);
|
|
clone.getStroke().setColor('#012345');
|
|
clone.getText().setText('other');
|
|
expect(original.getGeometry().getCoordinates()).not.to.eql(clone.getGeometry().getCoordinates());
|
|
expect(original.getFill().getColor()).not.to.eql(clone.getFill().getColor());
|
|
expect(original.getImage().getScale()).not.to.eql(clone.getImage().getScale());
|
|
expect(original.getStroke().getColor()).not.to.eql(clone.getStroke().getColor());
|
|
expect(original.getText().getText()).not.to.eql(clone.getText().getText());
|
|
});
|
|
});
|
|
|
|
describe('#setZIndex', function() {
|
|
|
|
it('sets the zIndex', function() {
|
|
const style = new Style();
|
|
|
|
style.setZIndex(0.7);
|
|
expect(style.getZIndex()).to.be(0.7);
|
|
});
|
|
});
|
|
|
|
describe('#getFill', function() {
|
|
const style = new Style({
|
|
fill: testFill
|
|
});
|
|
|
|
it('returns the fill style of a style', function() {
|
|
expect(style.getFill()).to.eql(testFill);
|
|
});
|
|
});
|
|
|
|
describe('#setFill', function() {
|
|
const style = new Style();
|
|
|
|
it('sets the fill style of a style', function() {
|
|
style.setFill(testFill);
|
|
expect(style.getFill()).to.eql(testFill);
|
|
});
|
|
});
|
|
|
|
describe('#getImage', function() {
|
|
const style = new Style({
|
|
image: testImage
|
|
});
|
|
|
|
it('returns the image style of a style', function() {
|
|
expect(style.getImage()).to.eql(testImage);
|
|
});
|
|
});
|
|
|
|
describe('#setImage', function() {
|
|
const style = new Style();
|
|
|
|
it('sets the image style of a style', function() {
|
|
style.setImage(testImage);
|
|
expect(style.getImage()).to.eql(testImage);
|
|
});
|
|
});
|
|
|
|
describe('#getStroke', function() {
|
|
const style = new Style({
|
|
stroke: testStroke
|
|
});
|
|
|
|
it('returns the stroke style of a style', function() {
|
|
expect(style.getStroke()).to.eql(testStroke);
|
|
});
|
|
});
|
|
|
|
describe('#setStroke', function() {
|
|
const style = new Style();
|
|
|
|
it('sets the stroke style of a style', function() {
|
|
style.setStroke(testStroke);
|
|
expect(style.getStroke()).to.eql(testStroke);
|
|
});
|
|
});
|
|
|
|
describe('#getText', function() {
|
|
const style = new Style({
|
|
text: testText
|
|
});
|
|
|
|
it('returns the text style of a style', function() {
|
|
expect(style.getText()).to.eql(testText);
|
|
});
|
|
});
|
|
|
|
describe('#setText', function() {
|
|
const style = new Style();
|
|
|
|
it('sets the text style of a style', function() {
|
|
style.setText(testText);
|
|
expect(style.getText()).to.eql(testText);
|
|
});
|
|
});
|
|
|
|
describe('#setGeometry', function() {
|
|
const style = new Style();
|
|
|
|
it('creates a geometry function from a string', function() {
|
|
const feature = new Feature();
|
|
feature.set('myGeom', new Point([0, 0]));
|
|
style.setGeometry('myGeom');
|
|
expect(style.getGeometryFunction()(feature))
|
|
.to.eql(feature.get('myGeom'));
|
|
});
|
|
|
|
it('creates a geometry function from a geometry', function() {
|
|
const geom = new Point([0, 0]);
|
|
style.setGeometry(geom);
|
|
expect(style.getGeometryFunction()())
|
|
.to.eql(geom);
|
|
});
|
|
|
|
it('returns the configured geometry function', function() {
|
|
const geom = new Point([0, 0]);
|
|
style.setGeometry(function() {
|
|
return geom;
|
|
});
|
|
expect(style.getGeometryFunction()())
|
|
.to.eql(geom);
|
|
});
|
|
});
|
|
|
|
describe('#getGeometry', function() {
|
|
|
|
it('returns whatever was passed to setGeometry', function() {
|
|
const style = new Style();
|
|
style.setGeometry('foo');
|
|
expect(style.getGeometry()).to.eql('foo');
|
|
const geom = new Point([1, 2]);
|
|
style.setGeometry(geom);
|
|
expect(style.getGeometry()).to.eql(geom);
|
|
const fn = function() {
|
|
return geom;
|
|
};
|
|
style.setGeometry(fn);
|
|
expect(style.getGeometry()).to.eql(fn);
|
|
style.setGeometry(null);
|
|
expect(style.getGeometry()).to.eql(null);
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
describe('ol.style.Style.createFunction()', function() {
|
|
const style = new Style();
|
|
|
|
it('creates a style function from a single style', function() {
|
|
const styleFunction = Style.createFunction(style);
|
|
expect(styleFunction()).to.eql([style]);
|
|
});
|
|
|
|
it('creates a style function from an array of styles', function() {
|
|
const styleFunction = Style.createFunction([style]);
|
|
expect(styleFunction()).to.eql([style]);
|
|
});
|
|
|
|
it('passes through a function', function() {
|
|
const original = function() {
|
|
return [style];
|
|
};
|
|
const styleFunction = Style.createFunction(original);
|
|
expect(styleFunction).to.be(original);
|
|
});
|
|
|
|
it('throws on (some) unexpected input', function() {
|
|
expect(function() {
|
|
Style.createFunction({bogus: 'input'});
|
|
}).to.throwException();
|
|
});
|
|
|
|
});
|