Taking brackets out of the callback.

The Yahoo API doesn't accept quotes in the callback (e.g. foo['bar']).  Since the callback registry is an object and all identifiers are prefixed with "c" now, we can use dot notation.
This commit is contained in:
tschaub
2012-03-21 09:18:23 -06:00
parent 127abf8782
commit 609e5f7f09
2 changed files with 12 additions and 9 deletions
+4 -3
View File
@@ -56,10 +56,11 @@ OpenLayers.Protocol.Script = OpenLayers.Class(OpenLayers.Protocol, {
/** /**
* APIProperty: callbackTemplate * APIProperty: callbackTemplate
* {String} Template for creating a unique callback function name * {String} Template for creating a unique callback function name
* for the registry. Should include ${id}. * for the registry. Should include ${id}. The ${id} variable will be
* Default is "OpenLayers.Protocol.Script.registry['${id}']". * 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 * APIProperty: callbackKey
+8 -6
View File
@@ -135,7 +135,7 @@
} }
function test_createRequest(t) { function test_createRequest(t) {
t.plan(5); t.plan(6);
var protocol = new OpenLayers.Protocol.Script({ var protocol = new OpenLayers.Protocol.Script({
callbackKey: 'cb_key', callbackKey: 'cb_key',
callbackPrefix: 'cb_prefix:' callbackPrefix: 'cb_prefix:'
@@ -153,15 +153,17 @@
var params = OpenLayers.Util.getParameters(script.src); var params = OpenLayers.Util.getParameters(script.src);
t.eq(params.k, "bar_param", "custom query string param"); 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', t.eq(script.id, 'OpenLayers_Protocol_Script_bar',
'created script has a correct id'); 'created script has a correct id');
protocol.callbackTemplate = "OpenLayers.Protocol.Script.registry.${id}"; protocol.callbackTemplate = "customCallback(${id})";
script = protocol.createRequest('http://bar_url/', {'k': 'bar_param'}, 'bar_callback'); script = protocol.createRequest('http://bar_url/', {'k': 'bar_param2'}, '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'); 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; OpenLayers.Protocol.Script.register = _register;