Add tests for ol.ImageUrlFunction

This commit is contained in:
Marc Jansen
2015-04-08 14:32:21 +02:00
parent bfefc0666b
commit 6d53a91e3a

View File

@@ -0,0 +1,101 @@
goog.provide('ol.test.ImageUrlFunction');
describe('ol.ImageUrlFunction', function() {
describe('#createFromParamsFunction', function() {
it('is a defined function', function() {
expect(ol.ImageUrlFunction.createFromParamsFunction).to.not.be(undefined);
expect(ol.ImageUrlFunction.createFromParamsFunction).to.be.a(Function);
});
it('returns a function that throws when called (no arguments)', function() {
var got = ol.ImageUrlFunction.createFromParamsFunction();
expect(function() {
got();
}).to.throwException();
});
it('returns a function that doesn\'t throw when called (valid arguments)',
function() {
var baseUrl = 'foo',
params = {foo: 'bar'},
paramsFunction = sinon.spy(),
got = ol.ImageUrlFunction.createFromParamsFunction(baseUrl,
params, paramsFunction);
expect(function() {
got();
}).to.not.throwException();
}
);
it('passes given baseUrl to given paramsFunction', function() {
var baseUrl = 'foo',
params = {foo: 'bar'},
spy = sinon.spy(),
got = ol.ImageUrlFunction.createFromParamsFunction(baseUrl, params,
spy);
got();
expect(spy.called).to.be(true);
expect(spy.calledOnce).to.be(true);
expect(spy.calledWith(baseUrl)).to.be(true);
});
it('passes given params to given paramsFunction', function() {
var baseUrl = 'foo',
params = {foo: 'bar'},
spy = sinon.spy(),
got = ol.ImageUrlFunction.createFromParamsFunction(baseUrl, params,
spy);
got();
expect(spy.called).to.be(true);
expect(spy.calledOnce).to.be(true);
expect(spy.calledWith(baseUrl, params)).to.be(true);
});
it('passes five params to given paramsFunction', function() {
var baseUrl = 'foo',
params = {foo: 'bar'},
extent = [1, 2, 3, 4],
size = [47, 11],
projection = ol.proj.get('CRS:84'),
spy = sinon.spy(),
firstArgs,
got = ol.ImageUrlFunction.createFromParamsFunction(baseUrl, params,
spy);
got(extent, size, projection);
firstArgs = spy.args[0];
expect(spy.called).to.be(true);
expect(spy.calledOnce).to.be(true);
expect(firstArgs.length).to.be(5);
expect(firstArgs).to.eql([baseUrl, params, extent, size, projection]);
});
});
describe('#nullImageUrlFunction', function() {
it('is a defined function', function() {
expect(ol.ImageUrlFunction.nullImageUrlFunction).to.not.be(undefined);
expect(ol.ImageUrlFunction.nullImageUrlFunction).to.be.a(Function);
});
it('always returns undefined', function() {
var got = ol.ImageUrlFunction.nullImageUrlFunction();
expect(got).to.be(undefined);
});
});
});
goog.require('ol.proj');
goog.require('ol.ImageUrlFunction');