From b2ce4c19e1a31fba672aa51844fa98664065be53 Mon Sep 17 00:00:00 2001 From: "Christopher S. Case" Date: Tue, 10 Feb 2015 12:16:42 -0600 Subject: [PATCH] added unit tests. --- .../ol/interaction/drawinteraction.test.js | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/test/spec/ol/interaction/drawinteraction.test.js b/test/spec/ol/interaction/drawinteraction.test.js index f49a3f870a..c17ff5e024 100644 --- a/test/spec/ol/interaction/drawinteraction.test.js +++ b/test/spec/ol/interaction/drawinteraction.test.js @@ -470,6 +470,58 @@ describe('ol.interaction.Draw', function() { }); + describe('drawing circles', function() { + var draw; + + beforeEach(function() { + draw = new ol.interaction.Draw({ + source: source, + type: ol.geom.GeometryType.CIRCLE + }); + map.addInteraction(draw); + }); + + it('draws circle with clicks, finishing on second point', function() { + // first point + simulateEvent('pointermove', 10, 20); + simulateEvent('pointerdown', 10, 20); + simulateEvent('pointerup', 10, 20); + + // finish on second point + simulateEvent('pointermove', 30, 20); + simulateEvent('pointerdown', 30, 20); + simulateEvent('pointerup', 30, 20); + + var features = source.getFeatures(); + expect(features).to.have.length(1); + var geometry = features[0].getGeometry(); + expect(geometry).to.be.a(ol.geom.Circle); + expect(geometry.getCenter()).to.eql([10, -20]); + expect(geometry.getRadius()).to.eql(20); + }); + + it('triggers draw events', function() { + var ds = sinon.spy(); + var de = sinon.spy(); + goog.events.listen(draw, ol.DrawEventType.DRAWSTART, ds); + goog.events.listen(draw, ol.DrawEventType.DRAWEND, de); + + // first point + simulateEvent('pointermove', 10, 20); + simulateEvent('pointerdown', 10, 20); + simulateEvent('pointerup', 10, 20); + + // finish on second point + simulateEvent('pointermove', 30, 20); + simulateEvent('pointerdown', 30, 20); + simulateEvent('pointerup', 30, 20); + + expect(ds).to.be.called(1); + expect(de).to.be.called(1); + }); + + }); + describe('#setActive()', function() { var interaction; @@ -595,6 +647,7 @@ goog.require('goog.style'); goog.require('ol.Map'); goog.require('ol.MapBrowserPointerEvent'); goog.require('ol.View'); +goog.require('ol.geom.Circle'); goog.require('ol.geom.GeometryType'); goog.require('ol.geom.LineString'); goog.require('ol.geom.MultiLineString');