Added ol.style.Icon#clone test
This commit is contained in:
@@ -181,18 +181,18 @@ ol.inherits(ol.style.Icon, ol.style.Image);
|
|||||||
ol.style.Icon.prototype.clone = function() {
|
ol.style.Icon.prototype.clone = function() {
|
||||||
var useImg = (this.iconImage_.getImageState() === ol.Image.State.LOADED);
|
var useImg = (this.iconImage_.getImageState() === ol.Image.State.LOADED);
|
||||||
return new ol.style.Icon({
|
return new ol.style.Icon({
|
||||||
anchor: this.getAnchor().slice(0),
|
anchor: this.anchor_.slice(0),
|
||||||
anchorOrigin: this.anchorOrigin_.slice(0),
|
anchorOrigin: this.anchorOrigin_,
|
||||||
anchorXUnits: this.anchorXUnits_,
|
anchorXUnits: this.anchorXUnits_,
|
||||||
anchorYUnits: this.anchorYUnits_,
|
anchorYUnits: this.anchorYUnits_,
|
||||||
crossOrigin: this.crossOrigin_,
|
crossOrigin: this.crossOrigin_,
|
||||||
color: this.color_.slice(0),
|
color: this.color_ !== null ? this.color_.slice(0) : undefined,
|
||||||
img: useImg ? this.getImage(1) : undefined,
|
img: useImg ? this.getImage(1) : undefined,
|
||||||
imgSize: useImg ? this.iconImage_.getSize().slice(0) : undefined,
|
imgSize: useImg ? this.iconImage_.getSize().slice(0) : undefined,
|
||||||
src: useImg ? undefined : this.getSrc(),
|
src: useImg ? undefined : this.getSrc(),
|
||||||
offset: this.offset_.slice(0),
|
offset: this.offset_.slice(0),
|
||||||
offsetOrigin: this.offsetOrigin_,
|
offsetOrigin: this.offsetOrigin_,
|
||||||
size: this.getSize().slice(0),
|
size: this.size_ !== null ? this.size_.slice(0) : undefined,
|
||||||
opacity: this.getOpacity(),
|
opacity: this.getOpacity(),
|
||||||
scale: this.getScale(),
|
scale: this.getScale(),
|
||||||
snapToPixel: this.getSnapToPixel(),
|
snapToPixel: this.getSnapToPixel(),
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ describe('ol.style.Fill', function() {
|
|||||||
color: '#319FD3'
|
color: '#319FD3'
|
||||||
});
|
});
|
||||||
var clone = original.clone();
|
var clone = original.clone();
|
||||||
expect(original.getColor()).to.be(clone.getColor());
|
expect(original.getColor()).to.eql(clone.getColor());
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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() {
|
describe('#getAnchor', function() {
|
||||||
var fractionAnchor = [0.25, 0.25];
|
var fractionAnchor = [0.25, 0.25];
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user