You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2006/10/28 18:47:20 UTC
svn commit: r468700 - in /tapestry/tapestry4/trunk/tapestry-framework/src:
java/org/apache/tapestry/components/IfBean.java
test/org/apache/tapestry/components/TestIfElse.java
Author: jkuhnert
Date: Sat Oct 28 09:47:19 2006
New Revision: 468700
URL: http://svn.apache.org/viewvc?view=rev&rev=468700
Log:
Fixes bug where existing span blocks were being rendered.
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/components/IfBean.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestIfElse.java
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/components/IfBean.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/components/IfBean.java?view=diff&rev=468700&r1=468699&r2=468700
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/components/IfBean.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/components/IfBean.java Sat Oct 28 09:47:19 2006
@@ -34,6 +34,8 @@
{
public static final String IF_VALUE_ATTRIBUTE = "org.mb.tapestry.base.IfValue";
+ public static final String SPAN_TAG = "span";
+
private boolean _rendering = false;
private boolean _conditionValue;
@@ -81,7 +83,7 @@
{
String element = HiveMind.isNonBlank(getElement()) ? getElement() : getTemplateTagName();
- boolean render = !cycleRewinding && getRenderTag();
+ boolean render = !cycleRewinding && getRenderTag() && !SPAN_TAG.equalsIgnoreCase(element);
if (render)
{
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestIfElse.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestIfElse.java?view=diff&rev=468700&r1=468699&r2=468700
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestIfElse.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestIfElse.java Sat Oct 28 09:47:19 2006
@@ -48,7 +48,7 @@
return render;
}
- public void testRenderPlainTrue()
+ public void test_Render_Plain_True()
{
IRequestCycle cycle = newMock(IRequestCycle.class);
@@ -93,7 +93,7 @@
verify();
}
- public void testRenderPlainFalse()
+ public void test_Render_Plain_False()
{
IRequestCycle cycle = newCycle();
IMarkupWriter writer = newWriter();
@@ -137,7 +137,7 @@
verify();
}
- public void testRenderInFormTrue()
+ public void test_Render_In_Form_True()
{
IMarkupWriter writer = newWriter();
@@ -188,7 +188,7 @@
verify();
}
- public void testRenderInFormFalse()
+ public void test_Render_In_Form_False()
{
IMarkupWriter writer = newWriter();
@@ -240,7 +240,7 @@
verify();
}
- public void testIgnoreElementWhenRewindingTrue()
+ public void test_Ignore_Element_When_Rewinding_True()
{
IMarkupWriter writer = newWriter();
@@ -291,7 +291,7 @@
verify();
}
- public void testIgnoreElementWhenRewindingFalse()
+ public void test_Ignore_Element_When_Rewinding_False()
{
IMarkupWriter writer = newWriter();
@@ -426,6 +426,106 @@
verify();
}
+ public void test_Render_Span_False()
+ {
+ IRequestCycle cycle = newMock(IRequestCycle.class);
+
+ IMarkupWriter writer = newBufferWriter();
+
+ IfBean conditional = newInstance(IfBean.class,
+ new Object[] { "condition", Boolean.TRUE,
+ "templateTagName", "span",
+ "renderTag", Boolean.TRUE
+ });
+
+ ElseBean reverse = (ElseBean) newInstance(ElseBean.class);
+
+ expect(cycle.renderStackPush(conditional)).andReturn(conditional);
+
+ expect(cycle.isRewinding()).andReturn(false);
+
+ expect(cycle.getAttribute(TapestryUtils.FORM_ATTRIBUTE)).andReturn(null);
+
+ trainResponseBuilder(cycle, writer);
+
+ IRender body = newRender(writer, cycle);
+
+ cycle.setAttribute(IfBean.IF_VALUE_ATTRIBUTE, Boolean.TRUE);
+
+ expect(cycle.renderStackPop()).andReturn(conditional);
+
+ expect(cycle.renderStackPush(reverse)).andReturn(reverse);
+
+ expect(cycle.getAttribute(IfBean.IF_VALUE_ATTRIBUTE)).andReturn(Boolean.TRUE);
+
+ expect(cycle.renderStackPop()).andReturn(reverse);
+
+ IRender body2 = newRender();
+
+ replay();
+
+ conditional.addBody(body);
+
+ conditional.render(writer, cycle);
+
+ reverse.addBody(body2);
+ reverse.render(writer, cycle);
+
+ verify();
+
+ assertBuffer("");
+ }
+
+ public void test_Render_Div_Tag()
+ {
+ IRequestCycle cycle = newMock(IRequestCycle.class);
+
+ IMarkupWriter writer = newBufferWriter();
+
+ IfBean conditional = newInstance(IfBean.class,
+ new Object[] { "condition", Boolean.TRUE,
+ "templateTagName", "div",
+ "renderTag", Boolean.TRUE
+ });
+
+ ElseBean reverse = (ElseBean) newInstance(ElseBean.class);
+
+ expect(cycle.renderStackPush(conditional)).andReturn(conditional);
+
+ expect(cycle.isRewinding()).andReturn(false);
+
+ expect(cycle.getAttribute(TapestryUtils.FORM_ATTRIBUTE)).andReturn(null);
+
+ trainResponseBuilder(cycle, writer);
+
+ IRender body = newRender(writer, cycle);
+
+ cycle.setAttribute(IfBean.IF_VALUE_ATTRIBUTE, Boolean.TRUE);
+
+ expect(cycle.renderStackPop()).andReturn(conditional);
+
+ expect(cycle.renderStackPush(reverse)).andReturn(reverse);
+
+ expect(cycle.getAttribute(IfBean.IF_VALUE_ATTRIBUTE)).andReturn(Boolean.TRUE);
+
+ expect(cycle.renderStackPop()).andReturn(reverse);
+
+ IRender body2 = newRender();
+
+ replay();
+
+ conditional.addBody(body);
+
+ conditional.render(writer, cycle);
+
+ reverse.addBody(body2);
+ reverse.render(writer, cycle);
+
+ verify();
+
+ assertBuffer("<div></div>");
+ }
+
public static abstract class TestIfBean extends IfBean
{
public TestIfBean() {
@@ -435,4 +535,4 @@
return DataSqueezerUtil.createUnitTestSqueezer();
}
}
-}
\ No newline at end of file
+}