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();
});
});
});
|