diff --git a/test/spec/ol/imageurlfunction.test.js b/test/spec/ol/imageurlfunction.test.js new file mode 100644 index 0000000000..646a6a9884 --- /dev/null +++ b/test/spec/ol/imageurlfunction.test.js @@ -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');