describe("Creating a marker", function() { var map, marker; beforeEach(function() { map = map || new GMaps({ el : '#map-with-markers', lat : -12.0533, lng: -77.0293, zoom: 14 }); }); describe("With basic options", function() { beforeEach(function() { marker = map.addMarker({ lat : -12.0533, lng: -77.0293, title : 'New marker' }); }); it("should add the marker to the markers collection", function() { expect(map.markers.length).toEqual(1); expect(map.markers[0]).toEqual(marker); }); it("should create a marker with defined position", function() { // Fix for floating-point bug expect(parseFloat(marker.getPosition().lat().toFixed(4))).toEqual(-12.0533); expect(parseFloat(marker.getPosition().lng().toFixed(4))).toEqual(-77.0293); }); }); describe("With events", function() { var callbacks; beforeEach(function() { callbacks = { onclick : function() { console.log(this.title); } }; spyOn(callbacks, 'onclick').andCallThrough(); marker = map.addMarker({ lat : -12.0533, lng: -77.0193, title : 'New marker', click : callbacks.onclick }); }); it("should respond to click event", function() { google.maps.event.trigger(marker, 'click'); expect(callbacks.onclick).toHaveBeenCalled(); }); }); });