diff --git a/tests/Handler/Path.html b/tests/Handler/Path.html index 24ab4c38fb..66548d624a 100644 --- a/tests/Handler/Path.html +++ b/tests/Handler/Path.html @@ -534,6 +534,43 @@ map.destroy(); } + function test_freehand_maxVertices(t) { + t.plan(1); + var map = new OpenLayers.Map("map", { + resolutions: [1] + }); + var layer = new OpenLayers.Layer.Vector("foo", { + maxExtent: new OpenLayers.Bounds(-10, -10, 10, 10), + isBaseLayer: true + }); + map.addLayer(layer); + var control = new OpenLayers.Control({}); + var log = {}; + var MAX_VERTICES = 2; + var doneCallback = function(geo) { + t.eq(geo.components.length, MAX_VERTICES, + 'When maxVertices is reached, the geometry is finalized automatically'); + }; + var handler = new OpenLayers.Handler.Path(control, + {'done': doneCallback}, + {freehand: true, + maxVertices: MAX_VERTICES}); + control.handler = handler; + map.addControl(control); + map.setCenter(new OpenLayers.LonLat(0, 0), 0); + + // mock up feature freehand drawing + handler.activate(); + var evt = {xy: new OpenLayers.Pixel(0, 0)}; + handler.mousemove(evt); + handler.mousedown(evt); + evt = {xy: new OpenLayers.Pixel(20, 20)}; + handler.mousemove(evt); + evt = {xy: new OpenLayers.Pixel(40, 40)}; + handler.mousemove(evt); + map.destroy(); + } + /** * Helper functions for editing method tests */