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