describe("Drawing geometry overlays", function() { var map_with_polygons, line, rectangle, circle, polygon; beforeEach(function() { map_with_polygons = map_with_polygons || new GMaps({ el : '#map-with-polygons', lat : -12.0433, lng : -77.0283, zoom : 12 }); }); describe("A line", function() { beforeEach(function() { line = line || map_with_polygons.drawPolyline({ path : [[-12.0440, -77.0247], [-12.0544, -77.0302], [-12.0551, -77.0303], [-12.0759, -77.0276], [-12.0763, -77.0279], [-12.0768, -77.0289], [-12.0885, -77.0241], [-12.0908, -77.0227]], strokeColor : '#131540', strokeOpacity : 0.6, strokeWeight : 6 }); }); it("should add the line to the polylines collection", function() { expect(map_with_polygons.polylines.length).toEqual(1); expect(map_with_polygons.polylines[0]).toEqual(line); }); it("should be added in the current map", function() { expect(line.getMap()).toEqual(map_with_polygons.map); }); it("should return the defined path", function() { var first_point = line.getPath().getAt(0); expect(parseFloat(first_point.lat().toFixed(4))).toEqual(-12.0440); expect(parseFloat(first_point.lng().toFixed(4))).toEqual(-77.0247); }); }); describe("A rectangle", function() { beforeEach(function() { rectangle = rectangle || map_with_polygons.drawRectangle({ bounds : [[-12.0303,-77.0237],[-12.0348,-77.0115]], strokeColor : '#BBD8E9', strokeOpacity : 1, strokeWeight : 3, fillColor : '#BBD8E9', fillOpacity : 0.6 }); }); it("should add the rectangle to the polygons collection", function() { expect(map_with_polygons.polygons.length).toEqual(1); expect(map_with_polygons.polygons[0]).toEqual(rectangle); }); it("should be added in the current map", function() { expect(rectangle.getMap()).toEqual(map_with_polygons.map); }); it("should have the defined bounds", function() { // Fix for floating-point bug var SWLat = parseFloat(rectangle.getBounds().getSouthWest().lat().toFixed(4)); var SWLng = parseFloat(rectangle.getBounds().getSouthWest().lng().toFixed(4)); var NELat = parseFloat(rectangle.getBounds().getNorthEast().lat().toFixed(4)); var NELng = parseFloat(rectangle.getBounds().getNorthEast().lng().toFixed(4)); expect(SWLat).toEqual(-12.0303); expect(SWLng).toEqual(-77.0237); expect(NELat).toEqual(-12.0348); expect(NELng).toEqual(-77.0115); }); }); describe("A polygon", function() { beforeEach(function() { polygon = polygon || map_with_polygons.drawPolygon({ paths : [[-12.0403,-77.0337],[-12.0402,-77.0399],[-12.0500,-77.0244],[-12.0448,-77.0215]], strokeColor : '#25D359', strokeOpacity : 1, strokeWeight : 3, fillColor : '#25D359', fillOpacity : 0.6 }); }); it("should add the polygon to the polygons collection", function() { expect(map_with_polygons.polygons.length).toEqual(2); expect(map_with_polygons.polygons[1]).toEqual(polygon); }); it("should be added in the current map", function() { expect(polygon.getMap()).toEqual(map_with_polygons.map); }); it("should return the defined path", function() { var first_point = polygon.getPath().getAt(0); expect(parseFloat(first_point.lat().toFixed(4))).toEqual(-12.0403); expect(parseFloat(first_point.lng().toFixed(4))).toEqual(-77.0337); }); }); describe("A circle", function() { beforeEach(function() { circle = circle || map_with_polygons.drawCircle({ lat : -12.040504866577001, lng : -77.02024422636042, radius : 350, strokeColor : '#432070', strokeOpacity : 1, strokeWeight : 3, fillColor : '#432070', fillOpacity : 0.6 }); }); it("should add the circle to the polygons collection", function() { expect(map_with_polygons.polygons.length).toEqual(3); expect(map_with_polygons.polygons[2]).toEqual(circle); }); it("should be added in the current map", function() { expect(circle.getMap()).toEqual(map_with_polygons.map); }); it("should have the defined radius", function() { expect(circle.getRadius()).toEqual(350); }); }); }); describe("Removing geometry overlays", function() { var map_with_polygons, line, rectangle, circle, polygon; beforeEach(function() { map_with_polygons = map_with_polygons || new GMaps({ el : '#map-with-polygons', lat : -12.0433, lng : -77.0283, zoom : 12 }); }); describe("A line", function() { beforeEach(function() { line = map_with_polygons.drawPolyline({ path : [[-12.0440, -77.0247], [-12.0544, -77.0302], [-12.0551, -77.0303], [-12.0759, -77.0276], [-12.0763, -77.0279], [-12.0768, -77.0289], [-12.0885, -77.0241], [-12.0908, -77.0227]], strokeColor : '#131540', strokeOpacity : 0.6, strokeWeight : 6 }); map_with_polygons.removePolyline(line); }); it("should remove the line from the polylines collection", function() { expect(map_with_polygons.polylines.length).toEqual(0); expect(line.getMap()).toBeNull(); }); }); describe("A rectangle", function() { beforeEach(function() { rectangle = map_with_polygons.drawRectangle({ bounds : [[-12.0303,-77.0237],[-12.0348,-77.0115]], strokeColor : '#BBD8E9', strokeOpacity : 1, strokeWeight : 3, fillColor : '#BBD8E9', fillOpacity : 0.6 }); map_with_polygons.removePolygon(rectangle); }); it("should remove the rectangle from the polygons collection", function() { expect(map_with_polygons.polygons.length).toEqual(0); expect(rectangle.getMap()).toBeNull(); }); }); describe("A polygon", function() { beforeEach(function() { polygon = map_with_polygons.drawPolygon({ paths : [[-12.0403,-77.0337],[-12.0402,-77.0399],[-12.0500,-77.0244],[-12.0448,-77.0215]], strokeColor : '#25D359', strokeOpacity : 1, strokeWeight : 3, fillColor : '#25D359', fillOpacity : 0.6 }); map_with_polygons.removePolygon(polygon); }); it("should remove the polygon from the polygons collection", function() { expect(map_with_polygons.polygons.length).toEqual(0); expect(polygon.getMap()).toBeNull(); }); }); describe("A circle", function() { beforeEach(function() { circle = map_with_polygons.drawCircle({ lat : -12.040504866577001, lng : -77.02024422636042, radius : 350, strokeColor : '#432070', strokeOpacity : 1, strokeWeight : 3, fillColor : '#432070', fillOpacity : 0.6 }); map_with_polygons.removePolygon(circle); }); it("should remove the circle from the polygons collection", function() { expect(map_with_polygons.polygons.length).toEqual(0); expect(circle.getMap()).toBeNull(); }); }); });