diff --git a/lib/OpenLayers/Protocol/Script.js b/lib/OpenLayers/Protocol/Script.js index 4ef847494e..f2ea5bcb24 100644 --- a/lib/OpenLayers/Protocol/Script.js +++ b/lib/OpenLayers/Protocol/Script.js @@ -56,10 +56,11 @@ OpenLayers.Protocol.Script = OpenLayers.Class(OpenLayers.Protocol, { /** * APIProperty: callbackTemplate * {String} Template for creating a unique callback function name - * for the registry. Should include ${id}. - * Default is "OpenLayers.Protocol.Script.registry['${id}']". + * for the registry. Should include ${id}. The ${id} variable will be + * replaced with a string identifier prefixed with a "c" (e.g. c1, c2). + * Default is "OpenLayers.Protocol.Script.registry.${id}". */ - callbackTemplate: "OpenLayers.Protocol.Script.registry['${id}']", + callbackTemplate: "OpenLayers.Protocol.Script.registry.${id}", /** * APIProperty: callbackKey diff --git a/tests/Protocol/Script.html b/tests/Protocol/Script.html index 3a0b9b610f..894427a605 100644 --- a/tests/Protocol/Script.html +++ b/tests/Protocol/Script.html @@ -135,7 +135,7 @@ } function test_createRequest(t) { - t.plan(5); + t.plan(6); var protocol = new OpenLayers.Protocol.Script({ callbackKey: 'cb_key', callbackPrefix: 'cb_prefix:' @@ -153,15 +153,17 @@ var params = OpenLayers.Util.getParameters(script.src); t.eq(params.k, "bar_param", "custom query string param"); - t.eq(params.cb_key, "cb_prefix:OpenLayers.Protocol.Script.registry['bar']", "callback with prefix"); + t.eq(params.cb_key, "cb_prefix:OpenLayers.Protocol.Script.registry.bar", "callback with prefix"); t.eq(script.id, 'OpenLayers_Protocol_Script_bar', 'created script has a correct id'); - protocol.callbackTemplate = "OpenLayers.Protocol.Script.registry.${id}"; - script = protocol.createRequest('http://bar_url/', {'k': 'bar_param'}, 'bar_callback'); - t.eq(script.src, 'http://bar_url/?k=bar_param&cb_key=cb_prefix%3AOpenLayers.Protocol.Script.registry.bar', - 'created script has a correct url with different template'); + protocol.callbackTemplate = "customCallback(${id})"; + script = protocol.createRequest('http://bar_url/', {'k': 'bar_param2'}, 'bar_callback'); + + params = OpenLayers.Util.getParameters(script.src); + t.eq(params.k, "bar_param2", "custom query string param"); + t.eq(params.cb_key, "cb_prefix:customCallback(bar)", "custom callback with prefix"); OpenLayers.Protocol.Script.register = _register;