From 6fd37d86cceeae43a3481ed70ba2f500778249a4 Mon Sep 17 00:00:00 2001 From: cnenning Date: Tue, 5 Jan 2016 13:47:15 +0100 Subject: [PATCH] added testcase for WW-4312 / #69 --- .../components/IteratorComponentTest.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/core/src/test/java/org/apache/struts2/components/IteratorComponentTest.java b/core/src/test/java/org/apache/struts2/components/IteratorComponentTest.java index 1115493fa..c9a075a34 100644 --- a/core/src/test/java/org/apache/struts2/components/IteratorComponentTest.java +++ b/core/src/test/java/org/apache/struts2/components/IteratorComponentTest.java @@ -76,6 +76,44 @@ public class IteratorComponentTest extends StrutsInternalTestCase { assertEquals("item2 item3 item4 ", out.getBuffer().toString()); } + public void testIteratorWithNulls() throws Exception { + // given + final ValueStack stack = ActionContext.getContext().getValueStack(); + stack.push(new FooAction() { + private List items = Arrays.asList("1", "2", null, "4"); + + public List getItems() { + return items; + } + }); + + StringWriter out = new StringWriter(); + + IteratorComponent ic = new IteratorComponent(stack); + ic.setValue("items"); + ic.setVar("val"); + Property prop = new Property(stack); + + ic.getComponentStack().push(prop); + ic.getComponentStack().push(prop); + ic.getComponentStack().push(prop); + ic.getComponentStack().push(prop); + + String body = ", "; + + // when + assertTrue(ic.start(out)); + + for (int i = 0; i < 4; i++) { + prop.start(out); + prop.end(out, body); + ic.end(out, null); + } + + // then + assertEquals("1, 2, , 4, ", out.getBuffer().toString()); + } + static class FooAction { private List items;