rwaldhoff 2002/10/22 09:15:49
Modified: jelly/src/java/org/apache/commons/jelly/tags/core
CaseTag.java
jelly/src/test/org/apache/commons/jelly/core
TestSwitchTag.java testSwitchTag.jelly
Log:
don't allow <case> after <default>, and add a test demonstrating that
add test for <switch> without @on
Revision Changes Path
1.2 +8 -5
jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/core/CaseTag.java
Index: CaseTag.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/core/CaseTag.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CaseTag.java 22 Oct 2002 15:13:43 -0000 1.1
+++ CaseTag.java 22 Oct 2002 16:15:49 -0000 1.2
@@ -104,6 +104,9 @@
if(null == tag) {
throw new JellyException("This tag must be enclosed inside a <switch>
tag" );
}
+ if(tag.hasDefaultBeenEncountered()) {
+ throw new JellyException("<default> should be the last tag within a
<switch>" );
+ }
Object value = valueExpression.evaluate(context);
if(tag.isFallingThru() ||
(null == tag.getValue() && null == value) ||
1.3 +29 -5
jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/core/TestSwitchTag.java
Index: TestSwitchTag.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/core/TestSwitchTag.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TestSwitchTag.java 22 Oct 2002 16:03:05 -0000 1.2
+++ TestSwitchTag.java 22 Oct 2002 16:15:49 -0000 1.3
@@ -179,6 +179,18 @@
context.getVariable("a.default"));
}
+ public void testSwitchWithoutOn() throws Exception {
+ setUpScript("testSwitchTag.jelly");
+ Script script = jelly.compileScript();
+ context.setVariable("switch.without.on",new Boolean(true));
+ try {
+ script.run(context,xmlOutput);
+ fail("Expected MissingAttributeException");
+ } catch(MissingAttributeException e) {
+ // expected
+ }
+ }
+
public void testCaseWithoutSwitch() throws Exception {
setUpScript("testSwitchTag.jelly");
Script script = jelly.compileScript();
@@ -219,6 +231,18 @@
setUpScript("testSwitchTag.jelly");
Script script = jelly.compileScript();
context.setVariable("multiple.defaults",new Boolean(true));
+ try {
+ script.run(context,xmlOutput);
+ fail("Expected JellyException");
+ } catch(JellyException e) {
+ // expected
+ }
+ }
+
+ public void testCaseAfterDefault() throws Exception {
+ setUpScript("testSwitchTag.jelly");
+ Script script = jelly.compileScript();
+ context.setVariable("case.after.default",new Boolean(true));
try {
script.run(context,xmlOutput);
fail("Expected JellyException");
1.3 +19 -0
jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/core/testSwitchTag.jelly
Index: testSwitchTag.jelly
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/core/testSwitchTag.jelly,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- testSwitchTag.jelly 22 Oct 2002 16:03:05 -0000 1.2
+++ testSwitchTag.jelly 22 Oct 2002 16:15:49 -0000 1.3
@@ -17,6 +17,16 @@
</j:default>
</j:switch>
+ <j:if test="${switch.without.on}">
+ <j:switch>
+ <j:case value="one" fallThru="true"/>
+ <j:case value="two"/>
+ <j:case value="three"/>
+ <j:case value="${null}"/>
+ <j:default/>
+ </j:switch>
+ </j:if>
+
<j:if test="${case.without.switch}">
<j:case value="this tag should cause an exception"/>
</j:if>
@@ -45,5 +55,14 @@
</j:switch>
</j:if>
+ <j:if test="${case.after.default}">
+ <j:switch on="foo">
+ <j:default>
+ </j:default>
+ <j:case value="bar">
+ <!-- this one should cause an exception (or even better, fail on
validation) -->
+ </j:case>
+ </j:switch>
+ </j:if>
</j:jelly>
--
To unsubscribe, e-mail: <mailto:commons-dev-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@;jakarta.apache.org>