diff --git a/test/spec/api/geom/point.test.js b/test/spec/api/geom/point.test.js index 8936a3aa16..897d1490a9 100644 --- a/test/spec/api/geom/point.test.js +++ b/test/spec/api/geom/point.test.js @@ -1,4 +1,4 @@ -describe("ol.geom.point", function() { +describe("ol.geom.point", function() { var pNoArgs, pNoZ_arr, pWithZ_arr, @@ -7,7 +7,7 @@ describe("ol.geom.point", function() { pWithZ_obj, p_obj, proj = "EPSG:4326"; - + var instances = { "no arguments passed": ol.geom.point(), "one argument passed": ol.geom.point([21, 4]), @@ -17,7 +17,7 @@ describe("ol.geom.point", function() { "one argument passed": ol.geom.point({x: 21, y: 4, z: 8}), "one argument passed": ol.geom.point({x: 21, y: 4, z: 8, projection: proj}) }; - + beforeEach(function() { proj = ol.projection("EPSG:4326"); instances = { @@ -37,7 +37,7 @@ describe("ol.geom.point", function() { pWithZ_obj = instances["one argument passed"]; p_obj = instances["one argument passed"]; }); - + afterEach(function() { pNoArgs = null; pNoZ_arr = pWithZ_arr = p_arr = null; @@ -52,111 +52,118 @@ describe("ol.geom.point", function() { "one argument passed": ol.geom.point({x: 21, y: 4, z: 8, projection: proj}) }; }); - + for (instancesDesc in instances) { if (instances.hasOwnProperty(instancesDesc)) { var instance = instances[instancesDesc]; - - it("constructs instances (" + instancesDesc + ")", function() { - expect(instance).toEqual(jasmine.any(ol.geom.Point)); - }); - - it("constructs instances of ol.geom.Geometry (" + instancesDesc + ")", function() { - expect(instance).toEqual(jasmine.any(ol.geom.Geometry)); - }); - - it("has coordinate getter/setter methods (" + instancesDesc + ")", function() { - expect(instance.x).not.toBeUndefined(); - expect(instance.y).not.toBeUndefined(); - expect(instance.z).not.toBeUndefined(); - - // always a number - expect( !isNaN( instance.x() ) ).toBe(true); - // setter returns self - expect(instance.x(47)).toBeA(ol.geom.Point); - // getter returns correct number - expect(instance.x()).toBe(47); - - // always a number - expect( !isNaN( instance.y() ) ).toBe(true); - // setter returns self - expect(instance.y(74)).toBeA(ol.geom.Point); - // getter returns correct number - expect(instance.y()).toBe(74); - - // always number or undefined - expect(instance.z() === undefined || !isNaN(instance.z()) ).toBe(true); - // setter returns self - expect(instance.z(0.074)).toBeA(ol.geom.Point); - // getter returns correct number - expect(instance.z()).toBe(0.074); - - }); - - it("has projection getter/setter methods (" + instancesDesc + ")", function() { - expect(instance.projection).not.toBeUndefined(); - - var getRes = instance.projection(); - expect(getRes === null || getRes instanceof ol.Projection).toBe(true); - - var setRes = instance.projection("EPSG:12345"); - expect(setRes instanceof ol.geom.Point).toBe(true); - - getRes = instance.projection(); - expect(getRes).toBeA(ol.Projection); - expect(getRes.code()).toEqual("EPSG:12345"); + + describe("instantiate with " + instancesDesc, function() { + + it("constructs instances", function() { + expect(instance).toEqual(jasmine.any(ol.geom.Point)); + }); + + it("constructs instances of ol.geom.Geometry", function() { + expect(instance).toEqual(jasmine.any(ol.geom.Geometry)); + }); + + it("has coordinate getter/setter methods", function() { + expect(instance.x).not.toBeUndefined(); + expect(instance.y).not.toBeUndefined(); + expect(instance.z).not.toBeUndefined(); + + // always a number + expect( !isNaN( instance.x() ) ).toBe(true); + // setter returns self + expect(instance.x(47)).toBeA(ol.geom.Point); + // getter returns correct number + expect(instance.x()).toBe(47); + + // always a number + expect( !isNaN( instance.y() ) ).toBe(true); + // setter returns self + expect(instance.y(74)).toBeA(ol.geom.Point); + // getter returns correct number + expect(instance.y()).toBe(74); + + // always number or undefined + expect(instance.z() === undefined || !isNaN(instance.z()) ).toBe(true); + // setter returns self + expect(instance.z(0.074)).toBeA(ol.geom.Point); + // getter returns correct number + expect(instance.z()).toBe(0.074); + + }); + + it("has projection getter/setter methods", function() { + expect(instance.projection).not.toBeUndefined(); + + var getRes = instance.projection(); + expect(getRes === null || getRes instanceof ol.Projection).toBe(true); + + var setRes = instance.projection("EPSG:12345"); + expect(setRes instanceof ol.geom.Point).toBe(true); + + getRes = instance.projection(); + expect(getRes).toBeA(ol.Projection); + expect(getRes.code()).toEqual("EPSG:12345"); + }); }); + + } } - - it("has functional getters (no arguments passed)", function(){ - expect(pNoArgs.x()).toBe(0); - expect(pNoArgs.y()).toBe(0); - expect(pNoArgs.z()).toBeUndefined(); - expect(pNoArgs.projection()).toBeNull(); - }); - - it("has functional getters (one argument passed)", function(){ - expect(pNoZ_arr.x()).toBe(21); - expect(pNoZ_arr.y()).toBe(4); - expect(pNoZ_arr.z()).toBeUndefined(); - expect(pNoZ_arr.projection()).toBeNull(); - }); - - it("has functional getters (one argument passed)", function(){ - expect(pWithZ_arr.x()).toBe(21); - expect(pWithZ_arr.y()).toBe(4); - expect(pWithZ_arr.z()).toBe(8); - expect(pWithZ_arr.projection()).toBeNull(); - }); - - it("has functional getters (one argument passed)", function(){ - expect(p_arr.x()).toBe(21); - expect(p_arr.y()).toBe(4); - expect(p_arr.z()).toBe(8); - expect(p_arr.projection()).not.toBeNull(); - expect(p_arr.projection()).toBeA(ol.Projection); - }); - - it("has functional getters (one argument passed)", function(){ - expect(pNoZ_obj.x()).toBe(21); - expect(pNoZ_obj.y()).toBe(4); - expect(pNoZ_obj.z()).toBeUndefined(); - expect(pNoZ_obj.projection()).toBeNull(); - }); - - it("has functional getters (one argument passed)", function(){ - expect(pWithZ_obj.x()).toBe(21); - expect(pWithZ_obj.y()).toBe(4); - expect(pWithZ_obj.z()).toBe(8); - expect(pWithZ_obj.projection()).toBeNull(); - }); - - it("has functional getters (one argument passed)", function(){ - expect(p_obj.x()).toBe(21); - expect(p_obj.y()).toBe(4); - expect(p_obj.z()).toBe(8); - expect(p_obj.projection()).not.toBeNull(); - expect(p_obj.projection()).toEqual(jasmine.any(ol.Projection)); + + describe('the getters are functional', function(){ + it("works when no arguments passed", function(){ + expect(pNoArgs.x()).toBe(0); + expect(pNoArgs.y()).toBe(0); + expect(pNoArgs.z()).toBeUndefined(); + expect(pNoArgs.projection()).toBeNull(); + }); + + it("works when one argument passed", function(){ + expect(pNoZ_arr.x()).toBe(21); + expect(pNoZ_arr.y()).toBe(4); + expect(pNoZ_arr.z()).toBeUndefined(); + expect(pNoZ_arr.projection()).toBeNull(); + }); + + it("works when one argument passed", function(){ + expect(pWithZ_arr.x()).toBe(21); + expect(pWithZ_arr.y()).toBe(4); + expect(pWithZ_arr.z()).toBe(8); + expect(pWithZ_arr.projection()).toBeNull(); + }); + + it("works when one argument passed", function(){ + expect(p_arr.x()).toBe(21); + expect(p_arr.y()).toBe(4); + expect(p_arr.z()).toBe(8); + expect(p_arr.projection()).not.toBeNull(); + expect(p_arr.projection()).toBeA(ol.Projection); + }); + + it("works when one argument passed", function(){ + expect(pNoZ_obj.x()).toBe(21); + expect(pNoZ_obj.y()).toBe(4); + expect(pNoZ_obj.z()).toBeUndefined(); + expect(pNoZ_obj.projection()).toBeNull(); + }); + + it("works when one argument passed", function(){ + expect(pWithZ_obj.x()).toBe(21); + expect(pWithZ_obj.y()).toBe(4); + expect(pWithZ_obj.z()).toBe(8); + expect(pWithZ_obj.projection()).toBeNull(); + }); + + it("works when one argument passed", function(){ + expect(p_obj.x()).toBe(21); + expect(p_obj.y()).toBe(4); + expect(p_obj.z()).toBe(8); + expect(p_obj.projection()).not.toBeNull(); + expect(p_obj.projection()).toEqual(jasmine.any(ol.Projection)); + }); }); }); diff --git a/test/spec/ol/geom/Point.test.js b/test/spec/ol/geom/Point.test.js index 35c070b25f..835761a971 100644 --- a/test/spec/ol/geom/Point.test.js +++ b/test/spec/ol/geom/Point.test.js @@ -1,15 +1,15 @@ -describe("ol.geom.Point", function() { +describe("ol.geom.Point", function() { var p2Args, p3Args, p4Args, proj = "EPSG:4326"; - + var instances = { "two arguments , passed": new ol.geom.Point(21, 4), "three arguments ,, passed": new ol.geom.Point(21, 4, 8), "four arguments ,,, passed": new ol.geom.Point(21, 4, 8, proj) }; - + beforeEach(function() { proj = ol.projection("EPSG:4326"); instances = { @@ -21,7 +21,7 @@ describe("ol.geom.Point", function() { p3Args = instances['three arguments ,, passed']; p4Args = instances['four arguments ,,, passed']; }); - + afterEach(function() { p2Args = p3Args = p4Args = null; instances = { @@ -30,94 +30,97 @@ describe("ol.geom.Point", function() { "four arguments ,,, passed": new ol.geom.Point(21, 4, 8, proj) }; }); - + for (instancesDesc in instances) { if (instances.hasOwnProperty(instancesDesc)) { var instance = instances[instancesDesc]; - - it("constructs instances (" + instancesDesc + ")", function() { - expect(instance).toEqual(jasmine.any(ol.geom.Point)); + + describe("instantiate with " + instancesDesc, function() { + + it("constructs instances", function() { + expect(instance).toEqual(jasmine.any(ol.geom.Point)); + }); + + it("constructs instances of ol.geom.Geometry", function() { + expect(instance).toEqual(jasmine.any(ol.geom.Geometry)); + }); + + it("has the coordinate accessor methods", function() { + expect(instance.getX).not.toBeUndefined(); + expect(instance.getY).not.toBeUndefined(); + expect(instance.getZ).not.toBeUndefined(); + expect(instance.setX).not.toBeUndefined(); + expect(instance.setY).not.toBeUndefined(); + expect(instance.setZ).not.toBeUndefined(); + }); + + it("has the projection accessor methods", function() { + expect(instance.getProjection).not.toBeUndefined(); + expect(instance.setProjection).not.toBeUndefined(); + }); }); - - it("constructs instances of ol.geom.Geometry (" + instancesDesc + ")", function() { - expect(instance).toEqual(jasmine.any(ol.geom.Geometry)); - }); - - it("has the coordinate accessor methods (" + instancesDesc + ")", function() { - expect(instance.getX).not.toBeUndefined(); - expect(instance.getY).not.toBeUndefined(); - expect(instance.getZ).not.toBeUndefined(); - expect(instance.setX).not.toBeUndefined(); - expect(instance.setY).not.toBeUndefined(); - expect(instance.setZ).not.toBeUndefined(); - }); - - it("has the projection accessor methods (" + instancesDesc + ")", function() { - expect(instance.getProjection).not.toBeUndefined(); - expect(instance.setProjection).not.toBeUndefined(); - }); - } } - - it("has functional getters (two arguments , passed)", function(){ - - expect(p2Args.getX()).toBe(21); - expect(p2Args.getY()).toBe(4); - expect(p2Args.getZ()).toBeUndefined(); - expect(p2Args.getProjection()).toBeNull(); + describe('the getters are functional', function(){ + it("works when two arguments , passed", function(){ + + expect(p2Args.getX()).toBe(21); + expect(p2Args.getY()).toBe(4); + expect(p2Args.getZ()).toBeUndefined(); + expect(p2Args.getProjection()).toBeNull(); + }); + + it("works when three arguments ,, passed", function(){ + expect(p3Args.getX()).toBe(21); + expect(p3Args.getY()).toBe(4); + expect(p3Args.getZ()).not.toBeUndefined(); + expect(p3Args.getZ()).toBe(8); + expect(p3Args.getProjection()).toBeNull(); + }); + + it("works when four arguments ,,, passed", function(){ + expect(p4Args.getX()).toBe(21); + expect(p4Args.getY()).toBe(4); + expect(p4Args.getZ()).toBe(8); + expect(p4Args.getProjection()).not.toBeNull(); + expect(p4Args.getProjection()).toBeA(ol.Projection); + }); }); - - it("has functional getters (three arguments ,, passed)", function(){ - expect(p3Args.getX()).toBe(21); - expect(p3Args.getY()).toBe(4); - expect(p3Args.getZ()).not.toBeUndefined(); - expect(p3Args.getZ()).toBe(8); - expect(p3Args.getProjection()).toBeNull(); - }); - - it("has functional getters (four arguments ,,, passed)", function(){ - expect(p4Args.getX()).toBe(21); - expect(p4Args.getY()).toBe(4); - expect(p4Args.getZ()).toBe(8); - expect(p4Args.getProjection()).not.toBeNull(); - expect(p4Args.getProjection()).toBeA(ol.Projection); - }); - - it("can be transformed", function(){ - // save for later comparison - var old = { - x: p4Args.getX().toFixed(3), - y: p4Args.getY().toFixed(3) - }; - // with code only - var transformedPoint = p4Args.transform("EPSG:3857"); - - // is it still an instance of ol.geom.Point? - expect(transformedPoint).toBeA(ol.geom.Point); - // coordinates OK? - expect(transformedPoint.getX().toFixed(3)).toBe("2337709.306"); - expect(transformedPoint.getY().toFixed(3)).toBe("445640.110"); - - // with an ol.Projection - var retransformedPoint = transformedPoint.transform(new ol.Projection("EPSG:4326")); - expect(retransformedPoint).toBeA(ol.geom.Point); - - // coordinates shopulkd be the originally configured - expect(retransformedPoint.getX().toFixed(3)).toBe(old.x); - expect(retransformedPoint.getY().toFixed(3)).toBe(old.y); - }); - - it("throws an exception when you try to transform without a source projection", function(){ - - expect(function() { - p2Args.transform("EPSG:3857"); - }).toThrow(); - - expect(function() { - p3Args.transform("EPSG:3857"); - }).toThrow(); - + + describe("transformation is functional", function(){ + it("can be transformed", function(){ + // save for later comparison + var old = { + x: p4Args.getX().toFixed(3), + y: p4Args.getY().toFixed(3) + }; + // with code only + var transformedPoint = p4Args.transform("EPSG:3857"); + + // is it still an instance of ol.geom.Point? + expect(transformedPoint).toBeA(ol.geom.Point); + // coordinates OK? + expect(transformedPoint.getX().toFixed(3)).toBe("2337709.306"); + expect(transformedPoint.getY().toFixed(3)).toBe("445640.110"); + + // with an ol.Projection + var retransformedPoint = transformedPoint.transform(new ol.Projection("EPSG:4326")); + expect(retransformedPoint).toBeA(ol.geom.Point); + + // coordinates shopulkd be the originally configured + expect(retransformedPoint.getX().toFixed(3)).toBe(old.x); + expect(retransformedPoint.getY().toFixed(3)).toBe(old.y); + }); + + it("throws an exception when you try to transform without a source projection", function(){ + expect(function() { + p2Args.transform("EPSG:3857"); + }).toThrow(); + + expect(function() { + p3Args.transform("EPSG:3857"); + }).toThrow(); + }); }); });