Files
openlayers/test/spec/ol/featureoverlay.test.js
2014-06-02 14:05:06 +02:00

71 lines
2.3 KiB
JavaScript

goog.provide('ol.test.FeatureOverlay');
describe('ol.Feature', function() {
var featureOverlay;
beforeEach(function() {
featureOverlay = new ol.FeatureOverlay();
});
afterEach(function() {
ol.style.IconImageCache.getInstance().clear();
});
describe('#drawFeature_ style with no image', function() {
it('calls vectorContext.drawFeature', function() {
var vectorContext = new ol.render.canvas.Immediate(
null, // context
1, // pixelRatio
[], // extent
goog.vec.Mat4.createNumberIdentity(), // transform
0 // viewRotation
);
var feature = new ol.Feature();
var style = new ol.style.Style({
fill: new ol.style.Fill({
color: '#ffffff'
})
});
var spy = sinon.spy(vectorContext, 'drawFeature');
featureOverlay.drawFeature_(vectorContext, feature, style);
expect(spy.calledOnce).to.be.ok();
});
});
describe('#drawFeature_ style with unloaded image', function() {
it('calls image.load', function() {
var vectorContext = new ol.render.canvas.Immediate(
null, // context
1, // pixelRatio
[], // extent
goog.vec.Mat4.createNumberIdentity(), // transform
0 // viewRotation
);
var feature = new ol.Feature();
var style = new ol.style.Style({
image: new ol.style.Icon({
src: 'http://example.com/icon.png'
})
});
var stub = sinon.stub(style.getImage(), 'load', function() {
style.getImage().iconImage_.imageState_ =
ol.style.ImageState.LOADING;
});
featureOverlay.drawFeature_(vectorContext, feature, style);
expect(stub.calledOnce).to.be.ok();
});
});
});
goog.require('goog.vec.Mat4');
goog.require('ol.Feature');
goog.require('ol.FeatureOverlay');
goog.require('ol.style.ImageState');
goog.require('ol.render.canvas.Immediate');
goog.require('ol.style.Fill');
goog.require('ol.style.Icon');
goog.require('ol.style.IconImageCache');
goog.require('ol.style.Style');