You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by lr...@apache.org on 2009/04/23 19:14:57 UTC
svn commit: r767984 - in /incubator/shindig/trunk/java/gadgets/src:
main/java/org/apache/shindig/gadgets/templates/DefaultTemplateProcessor.java
test/java/org/apache/shindig/gadgets/templates/DefaultTemplateProcessorTest.java
Author: lryan
Date: Thu Apr 23 17:14:57 2009
New Revision: 767984
URL: http://svn.apache.org/viewvc?rev=767984&view=rev
Log:
Fix coercion of JSONArray to Iterable for arrays of non JSONObject in template processing.
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/DefaultTemplateProcessor.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/templates/DefaultTemplateProcessorTest.java
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/DefaultTemplateProcessor.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/DefaultTemplateProcessor.java?rev=767984&r1=767983&r2=767984&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/DefaultTemplateProcessor.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/DefaultTemplateProcessor.java Thu Apr 23 17:14:57 2009
@@ -458,7 +458,7 @@
}
try {
- return array.getJSONObject(i++);
+ return array.get(i++);
} catch (Exception e) {
throw new ELException(e);
}
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/templates/DefaultTemplateProcessorTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/templates/DefaultTemplateProcessorTest.java?rev=767984&r1=767983&r2=767984&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/templates/DefaultTemplateProcessorTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/templates/DefaultTemplateProcessorTest.java Thu Apr 23 17:14:57 2009
@@ -30,6 +30,7 @@
import org.apache.shindig.gadgets.parse.nekohtml.NekoSerializer;
import org.apache.shindig.gadgets.parse.nekohtml.SocialMarkupHtmlParser;
import org.json.JSONObject;
+import org.json.JSONArray;
import org.junit.Before;
import org.junit.Test;
import org.w3c.dom.Document;
@@ -59,7 +60,7 @@
private TemplateContext context;
private DefaultTemplateProcessor processor;
- private Map<String, JSONObject> variables;
+ private Map<String, Object> variables;
private ELResolver resolver;
private TagRegistry registry;
@@ -79,10 +80,11 @@
parser = new SocialMarkupHtmlParser(new ParseModule.DOMImplementationProvider().get());
context = new TemplateContext(new Gadget(), variables);
- addVariable("foo", new JSONObject("{ title: 'bar' }"));
- addVariable("user", new JSONObject("{ id: '101', name: { first: 'John', last: 'Doe' }}"));
- addVariable("toys", new JSONObject("{ list: [{name: 'Ball'}, {name: 'Car'}]}"));
- addVariable("xss", new JSONObject("{ script: '<script>alert();</script>'," +
+ variables.put("foo", new JSONObject("{ title: 'bar' }"));
+ variables.put("user", new JSONObject("{ id: '101', name: { first: 'John', last: 'Doe' }}"));
+ variables.put("toys", new JSONObject("{ list: [{name: 'Ball'}, {name: 'Car'}]}"));
+ variables.put("countries", new JSONArray("['Ireland','France']"));
+ variables.put("xss", new JSONObject("{ script: '<script>alert();</script>'," +
"quote:'\"><script>alert();</script>'}"));
}
@@ -163,6 +165,12 @@
String output = executeTemplate("<span repeat=\"${toys}\">${name}</span>");
assertEquals("<span>Ball</span><span>Car</span>", output);
}
+
+ @Test
+ public void testRepeatScalar() throws Exception {
+ String output = executeTemplate("<span repeat=\"${countries}\">${Cur}</span>");
+ assertEquals("<span>Ireland</span><span>France</span>", output);
+ }
@Test
public void testCurAttribute() throws Exception {
@@ -220,10 +228,6 @@
return sb.toString();
}
- private void addVariable(String key, JSONObject value) {
- variables.put(key, value);
- }
-
/**
* A dummy custom tag.
* Expects a @text attribute equal to "bar", and a @data attribute that