You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by gv...@apache.org on 2006/03/05 00:34:51 UTC
svn commit: r383226 - in /struts/shale/trunk/clay-plugin: ./
src/java/org/apache/shale/clay/parser/builder/chain/
src/test/org/apache/shale/clay/config/
Author: gvanmatre
Date: Sat Mar 4 15:34:50 2006
New Revision: 383226
URL: http://svn.apache.org/viewcvs?rev=383226&view=rev
Log:
Added a clay test for handling a comment block.
Added:
struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/CommentTestCase.java (with props)
struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/comment.html (with props)
Modified:
struts/shale/trunk/clay-plugin/build.xml
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/AnchorBuilderRule.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/DefaultBuilderRule.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/FormBuilderRule.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/InputBuilderRule.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/LabelBuilderRule.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/OptionBuilderRule.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/SelectBuilderRule.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/SpanBuilderRule.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/TextareaBuilderRule.java
struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/AbstractTestCaseConfig.java
Modified: struts/shale/trunk/clay-plugin/build.xml
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/build.xml?rev=383226&r1=383225&r2=383226&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/build.xml (original)
+++ struts/shale/trunk/clay-plugin/build.xml Sat Mar 4 15:34:50 2006
@@ -96,6 +96,7 @@
<pathelement location="${servlet-api.jar}"/>
<pathelement location="${shale-core.jar}"/>
<pathelement location="${shale-test.jar}"/>
+ <pathelement location="${jsf-impl.jar}"/>
<pathelement location="${build.home}/classes"/>
<pathelement location="${build.home}/test-classes"/>
</path>
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/AnchorBuilderRule.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/AnchorBuilderRule.java?rev=383226&r1=383225&r2=383226&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/AnchorBuilderRule.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/AnchorBuilderRule.java Sat Mar 4 15:34:50 2006
@@ -62,7 +62,8 @@
BuilderRuleContext builderRuleContext = (BuilderRuleContext) context;
Node node = builderRuleContext.getNode();
- if (node.getName() != null && node.getName().equalsIgnoreCase("a")) {
+ if (!node.isComment() && node.getName() != null
+ && node.getName().equalsIgnoreCase("a")) {
builderRuleContext.setBuilder(builder);
isFinal = true;
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/DefaultBuilderRule.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/DefaultBuilderRule.java?rev=383226&r1=383225&r2=383226&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/DefaultBuilderRule.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/DefaultBuilderRule.java Sat Mar 4 15:34:50 2006
@@ -63,7 +63,7 @@
BuilderRuleContext builderRuleContext = (BuilderRuleContext) context;
Node node = builderRuleContext.getNode();
- if (node.getName() != null && node.isComment()) {
+ if (node.isComment()) {
builderRuleContext.setBuilder(builders[0]);
} else if (node.getName() != null && node.getAttributes().containsKey("jsfid")) {
builderRuleContext.setBuilder(builders[1]);
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/FormBuilderRule.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/FormBuilderRule.java?rev=383226&r1=383225&r2=383226&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/FormBuilderRule.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/FormBuilderRule.java Sat Mar 4 15:34:50 2006
@@ -52,7 +52,8 @@
BuilderRuleContext builderRuleContext = (BuilderRuleContext) context;
Node node = builderRuleContext.getNode();
- if (node.getName() != null && node.getName().equalsIgnoreCase("form")) {
+ if (!node.isComment() && node.getName() != null
+ && node.getName().equalsIgnoreCase("form")) {
builderRuleContext.setBuilder(builder);
isFinal = true;
}
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/InputBuilderRule.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/InputBuilderRule.java?rev=383226&r1=383225&r2=383226&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/InputBuilderRule.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/InputBuilderRule.java Sat Mar 4 15:34:50 2006
@@ -65,7 +65,9 @@
BuilderRuleContext builderRuleContext = (BuilderRuleContext) context;
Node node = builderRuleContext.getNode();
- if (node.getName() != null && node.getName().equalsIgnoreCase("input")) {
+ if (!node.isComment() && node.getName() != null
+ && node.getName().equalsIgnoreCase("input")) {
+
String type = (String) node.getAttributes().get("type");
if (type != null && type.equalsIgnoreCase("text")) {
builderRuleContext.setBuilder(builders[0]);
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/LabelBuilderRule.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/LabelBuilderRule.java?rev=383226&r1=383225&r2=383226&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/LabelBuilderRule.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/LabelBuilderRule.java Sat Mar 4 15:34:50 2006
@@ -53,7 +53,9 @@
BuilderRuleContext builderRuleContext = (BuilderRuleContext) context;
Node node = builderRuleContext.getNode();
- if (node.getName() != null && node.getName().equalsIgnoreCase("label")) {
+ if (!node.isComment() && node.getName() != null
+ && node.getName().equalsIgnoreCase("label")) {
+
builderRuleContext.setBuilder(builder);
isFinal = true;
}
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/OptionBuilderRule.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/OptionBuilderRule.java?rev=383226&r1=383225&r2=383226&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/OptionBuilderRule.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/OptionBuilderRule.java Sat Mar 4 15:34:50 2006
@@ -52,7 +52,9 @@
BuilderRuleContext builderRuleContext = (BuilderRuleContext) context;
Node node = builderRuleContext.getNode();
- if (node.getName() != null && node.getName().equalsIgnoreCase("option")) {
+ if (!node.isComment() && node.getName() != null
+ && node.getName().equalsIgnoreCase("option")) {
+
if (node.getChildren().size() > 0) {
builderRuleContext.setBuilder(builders[0]);
isFinal = true;
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/SelectBuilderRule.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/SelectBuilderRule.java?rev=383226&r1=383225&r2=383226&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/SelectBuilderRule.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/SelectBuilderRule.java Sat Mar 4 15:34:50 2006
@@ -53,7 +53,9 @@
BuilderRuleContext builderRuleContext = (BuilderRuleContext) context;
Node node = builderRuleContext.getNode();
- if (node.getName() != null && node.getName().equalsIgnoreCase("select")) {
+ if (!node.isComment() && node.getName() != null
+ && node.getName().equalsIgnoreCase("select")) {
+
if (!node.getAttributes().containsKey("multiple")) {
builderRuleContext.setBuilder(builders[0]);
isFinal = true;
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/SpanBuilderRule.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/SpanBuilderRule.java?rev=383226&r1=383225&r2=383226&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/SpanBuilderRule.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/SpanBuilderRule.java Sat Mar 4 15:34:50 2006
@@ -55,7 +55,8 @@
BuilderRuleContext builderRuleContext = (BuilderRuleContext) context;
Node node = builderRuleContext.getNode();
- if (node.getName() != null && node.getName().equals("span")
+ if (!node.isComment() && node.getName() != null
+ && node.getName().equals("span")
&& node.getAttributes().containsKey("jsfid")) {
builderRuleContext.setBuilder(builder);
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/TextareaBuilderRule.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/TextareaBuilderRule.java?rev=383226&r1=383225&r2=383226&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/TextareaBuilderRule.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/TextareaBuilderRule.java Sat Mar 4 15:34:50 2006
@@ -54,8 +54,9 @@
BuilderRuleContext builderRuleContext = (BuilderRuleContext) context;
Node node = builderRuleContext.getNode();
- if (node.getName() != null
- && node.getName().equalsIgnoreCase("textarea")) {
+ if (!node.isComment() && node.getName() != null
+ && node.getName().equalsIgnoreCase("textarea")) {
+
builderRuleContext.setBuilder(builder);
isFinal = true;
Modified: struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/AbstractTestCaseConfig.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/AbstractTestCaseConfig.java?rev=383226&r1=383225&r2=383226&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/AbstractTestCaseConfig.java (original)
+++ struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/AbstractTestCaseConfig.java Sat Mar 4 15:34:50 2006
@@ -52,19 +52,20 @@
new String[] {"outputLabel", "javax.faces.HtmlOutputLabel", "javax.faces.component.html.HtmlOutputLabel"},
new String[] {"inputTextarea", "javax.faces.HtmlInputTextarea","javax.faces.component.html.HtmlInputTextarea"},
new String[] {"inputSecret", "javax.faces.HtmlInputSecret","javax.faces.component.html.HtmlInputSecret"},
- new String[] {"inputHidden", "javax.faces.HtmlInputHidden", "javax.faces.component.html.HtmlInputText"},
+ new String[] {"inputText", "javax.faces.HtmlInputText", "javax.faces.component.html.HtmlInputText"},
new String[] {"image", "javax.faces.HtmlGraphicImage", "javax.faces.component.html.HtmlGraphicImage"},
new String[] {"form", "javax.faces.HtmlForm", "javax.faces.component.html.HtmlForm"},
new String[] {"dataTable", "javax.faces.HtmlDataTable", "javax.faces.component.html.HtmlDataTable"},
new String[] {"commandLink", "javax.faces.HtmlCommandLink", "javax.faces.component.html.HtmlCommandLink"},
new String[] {"column", "javax.faces.Column", "javax.faces.component.UIColumn"},
- new String[] {"inputText", "javax.faces.HtmlInputText", "javax.faces.component.html.HtmlInputHidden"},
+ new String[] {"inputHidden", "javax.faces.HtmlInputHidden", "javax.faces.component.html.HtmlInputHidden"},
new String[] {"outputFormat", "javax.faces.HtmlOutputFormat", "javax.faces.component.html.HtmlOutputFormat"},
new String[] {"messages", "javax.faces.HtmlMessages", "javax.faces.component.html.HtmlMessages"},
new String[] {"message", "javax.faces.HtmlMessage", "javax.faces.component.html.HtmlMessage"},
new String[] {"commandButton", "javax.faces.HtmlCommandButton", "javax.faces.component.html.HtmlCommandButton"},
new String[] {"panelGrid", "javax.faces.HtmlPanelGrid", "javax.faces.component.html.HtmlPanelGrid"},
- new String[] {"namingContainer", "javax.faces.NamingContainer", "javax.faces.component.UINamingContainer"}
+ new String[] {"namingContainer", "javax.faces.NamingContainer", "javax.faces.component.UINamingContainer"},
+ new String[] {"clay", "org.apache.shale.clay.component.Clay", "org.apache.shale.clay.component.Clay"}
};
// load the mock component config data
Added: struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/CommentTestCase.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/CommentTestCase.java?rev=383226&view=auto
==============================================================================
--- struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/CommentTestCase.java (added)
+++ struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/CommentTestCase.java Sat Mar 4 15:34:50 2006
@@ -0,0 +1,141 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.shale.clay.config;
+
+import java.io.StringWriter;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.faces.context.ResponseWriter;
+import javax.faces.render.RenderKitFactory;
+import javax.faces.render.Renderer;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.apache.shale.clay.component.Clay;
+import org.apache.shale.clay.parser.Node;
+import org.apache.shale.clay.parser.Parser;
+import org.apache.shale.faces.ShaleConstants;
+import org.apache.shale.util.Tags;
+
+// test processing comment blocks
+public class CommentTestCase extends AbstractTestCaseConfig {
+
+ // Construct a new instance of this test case.
+ public CommentTestCase(String name) {
+ super(name);
+ }
+
+ // Return the tests included in this test case.
+ public static Test suite() {
+
+ return (new TestSuite(CommentTestCase.class));
+
+ }
+
+ protected String[][] RENDERERS = {
+ {"javax.faces.Output", "javax.faces.Text",
+ "org.apache.myfaces.renderkit.html.HtmlTextRenderer", "com.sun.faces.renderkit.html_basic.TextRenderer",},
+ {"javax.faces.Input", "javax.faces.Text",
+ "org.apache.myfaces.renderkit.html.HtmlTextRenderer", "com.sun.faces.renderkit.html_basic.TextRenderer"},
+ {"javax.faces.Output", "javax.faces.Label",
+ "org.apache.myfaces.renderkit.html.HtmlLabelRenderer","com.sun.faces.renderkit.html_basic.LabelRenderer"}
+
+ };
+
+ public void setUp() {
+ super.setUp();
+
+ servletContext.setAttribute(ShaleConstants.TAG_UTILITY_BEAN, new Tags());
+ facesContext.getViewRoot().setRenderKitId(RenderKitFactory.HTML_BASIC_RENDER_KIT);
+
+ for (int i = 0; i < RENDERERS.length; i++) {
+
+ Renderer renderer = null;
+ renderer: for (int j = 2; j < 4; j++) {
+ try {
+ Class clazz = Class.forName(RENDERERS[i][j]);
+ if (clazz != null) {
+ renderer = (Renderer) clazz.newInstance();
+ if (renderer != null) {
+ //System.out.println(RENDERERS[i][j]);
+ break renderer;
+ }
+ }
+ } catch (ClassNotFoundException e) {
+ } catch (InstantiationException e) {
+ } catch (IllegalAccessException e) {
+ }
+ }
+
+ if (renderer != null) {
+ facesContext.getRenderKit().addRenderer(RENDERERS[i][0], RENDERERS[i][1],
+ renderer);
+ }
+ }
+
+ }
+
+ public void testComment() throws Exception{
+
+
+ loadConfigFiles(null, null);
+
+ Clay clay = (Clay) application.createComponent("org.apache.shale.clay.component.Clay");
+ clay.setId("test");
+ clay.setJsfid("/org/apache/shale/clay/config/comment.html");
+ clay.setManagedBeanName("test");
+
+ //builds a buffer to write the page to
+ StringWriter writer = new StringWriter();
+ //create a buffered response writer
+ ResponseWriter buffResponsewriter = facesContext.getRenderKit()
+ .createResponseWriter(writer, null, response.getCharacterEncoding());
+ //push buffered writer to the faces context
+ facesContext.setResponseWriter(buffResponsewriter);
+ //start a document
+ buffResponsewriter.startDocument();
+
+ clay.encodeBegin(facesContext);
+ clay.encodeChildren(facesContext);
+ clay.encodeEnd(facesContext);
+
+ //end the document
+ buffResponsewriter.endDocument();
+
+ Parser p = new Parser();
+ List nodes = p.parse(writer.getBuffer());
+ assertEquals("1 root node", nodes.size(), 1);
+ Node table = (Node) nodes.get(0);
+ assertEquals("2 root node", table.getChildren().size(), 2);
+ Node comment = (Node) table.getChildren().get(1);
+
+ StringBuffer buff = new StringBuffer();
+ buff.append(comment.getToken().getRawText());
+ Iterator ci = comment.getChildren().iterator();
+ while (ci.hasNext()) {
+ Node child = (Node) ci.next();
+ buff.append(child.getToken().getRawText());
+ }
+
+ assertEquals(buff.toString(), "<!-- <span jsfid=\"outputText\"/> -->");
+
+ writer.close();
+
+ }
+
+}
Propchange: struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/CommentTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/CommentTestCase.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Added: struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/comment.html
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/comment.html?rev=383226&view=auto
==============================================================================
--- struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/comment.html (added)
+++ struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/comment.html Sat Mar 4 15:34:50 2006
@@ -0,0 +1 @@
+<table><tr><td><label for=input id=label>Mock Address 1:</label></td><td><input id=input type=text size=45 value="test"></td></tr><!-- <span jsfid="outputText"/> --></table>
\ No newline at end of file
Propchange: struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/comment.html
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/comment.html
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org