Add tests for ol.renderer.vector

This commit is contained in:
Éric Lemoine
2014-02-04 15:23:26 +01:00
parent d13d2fdc6a
commit 90c41523a2

View File

@@ -0,0 +1,65 @@
goog.provide('ol.test.renderer.vector');
describe('ol.renderer.vector', function() {
describe('#renderFeature', function() {
var replayGroup;
beforeEach(function() {
replayGroup = new ol.render.canvas.ReplayGroup(1);
});
describe('call multiple times', function() {
it('does not set multiple listeners', function() {
var iconStyle = new ol.style.Icon({
src: 'http://example.com/icon.png'
});
var iconImage = iconStyle.iconImage_;
var iconStyleLoadSpy = sinon.stub(iconStyle, 'load', function() {
iconImage.imageState_ = ol.style.ImageState.LOADING;
});
var style = new ol.style.Style({
image: iconStyle
});
var feature = new ol.Feature();
var listener = function() {};
var listenerThis = {};
var listeners;
// call #1
ol.renderer.vector.renderFeature(replayGroup, feature,
style, 1, feature, listener, listenerThis);
expect(iconStyleLoadSpy.calledOnce).to.be.ok();
listeners = goog.events.getListeners(
iconStyle.iconImage_, goog.events.EventType.CHANGE, false);
expect(listeners.length).to.eql(1);
// call #2
ol.renderer.vector.renderFeature(replayGroup, feature,
style, 1, feature, listener, listenerThis);
expect(iconStyleLoadSpy.calledOnce).to.be.ok();
listeners = goog.events.getListeners(
iconStyle.iconImage_, goog.events.EventType.CHANGE, false);
expect(listeners.length).to.eql(1);
});
});
});
});
goog.require('goog.events');
goog.require('goog.events.EventType');
goog.require('ol.render.canvas.ReplayGroup');
goog.require('ol.renderer.vector');
goog.require('ol.style.Icon');
goog.require('ol.style.ImageState');
goog.require('ol.style.Style');
goog.require('ol.Feature');