Added ol.style.Icon#clone test

This commit is contained in:
Simon Seyock
2016-09-05 19:26:55 +02:00
parent a183c66704
commit 147f091998
3 changed files with 66 additions and 5 deletions

View File

@@ -181,18 +181,18 @@ ol.inherits(ol.style.Icon, ol.style.Image);
ol.style.Icon.prototype.clone = function() {
var useImg = (this.iconImage_.getImageState() === ol.Image.State.LOADED);
return new ol.style.Icon({
anchor: this.getAnchor().slice(0),
anchorOrigin: this.anchorOrigin_.slice(0),
anchor: this.anchor_.slice(0),
anchorOrigin: this.anchorOrigin_,
anchorXUnits: this.anchorXUnits_,
anchorYUnits: this.anchorYUnits_,
crossOrigin: this.crossOrigin_,
color: this.color_.slice(0),
color: this.color_ !== null ? this.color_.slice(0) : undefined,
img: useImg ? this.getImage(1) : undefined,
imgSize: useImg ? this.iconImage_.getSize().slice(0) : undefined,
src: useImg ? undefined : this.getSrc(),
offset: this.offset_.slice(0),
offsetOrigin: this.offsetOrigin_,
size: this.getSize().slice(0),
size: this.size_ !== null ? this.size_.slice(0) : undefined,
opacity: this.getOpacity(),
scale: this.getScale(),
snapToPixel: this.getSnapToPixel(),

View File

@@ -18,7 +18,7 @@ describe('ol.style.Fill', function() {
color: '#319FD3'
});
var clone = original.clone();
expect(original.getColor()).to.be(clone.getColor());
expect(original.getColor()).to.eql(clone.getColor());
});
});
});

View File

@@ -38,6 +38,67 @@ describe('ol.style.Icon', function() {
});
describe('#clone', function() {
it('creates a new ol.style.Icon', function() {
var original = new ol.style.Icon({
src: src
});
var clone = original.clone();
expect(clone instanceof ol.style.Icon).to.be(true);
expect(clone).to.not.be(original);
});
it('clones all values ', function() {
var canvas = document.createElement('canvas');
var original = new ol.style.Icon({
anchor: [1, 0],
anchorOrigin: 'bottom-right',
anchorXUnits: 'pixels',
anchorYUnits: 'pixels',
color: '#319FD3',
crossOrigin: 'Anonymous',
img: canvas,
imgSize: size,
offset: [1, 2],
offsetOrigin: 'bottom-left',
opacity: 0.5,
scale: 2,
snapToPixel: false,
rotation: 4,
size: [10, 12]
});
var clone = original.clone();
expect(original.getAnchor()).to.not.be(clone.getAnchor());
expect(original.getAnchor()).to.eql(clone.getAnchor());
expect(original.anchorOrigin_).to.be(clone.anchorOrigin_);
expect(original.anchorXUnits_).to.be(clone.anchorXUnits_);
expect(original.anchorYUnits_).to.be(clone.anchorYUnits_);
expect(original.crossOrigin_).to.be(clone.crossOrigin_);
expect(original.color_).to.not.be(clone.color_);
expect(original.color_).to.eql(clone.color_);
expect(original.getImage(1).src).to.be(clone.getImage(1).src);
expect(original.getImage(1).toDataURL()).to.be(original.getImage(1).toDataURL());
expect(original.offset_).to.not.be(clone.offset_);
expect(original.offset_).to.eql(clone.offset_);
expect(original.offsetOrigin_).to.be(clone.offsetOrigin_);
expect(original.getSize()).not.to.be(clone.getSize());
expect(original.getSize()).to.eql(clone.getSize());
expect(original.getSrc()).to.not.eql(clone.getSrc());
expect(original.getOpacity()).to.be(clone.getOpacity());
expect(original.getRotation()).to.be(clone.getRotation());
expect(original.getRotateWithView()).to.be(clone.getRotateWithView());
expect(original.getSnapToPixel()).to.be(clone.getSnapToPixel());
var original2 = new ol.style.Icon({
src: src
});
var clone2 = original2.clone();
expect(original2.getSrc()).to.be(clone2.getSrc());
});
});
describe('#getAnchor', function() {
var fractionAnchor = [0.25, 0.25];