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 2005/10/01 19:45:38 UTC

svn commit: r293007 - in /struts/shale/trunk: clay-plugin/src/conf/ clay-plugin/src/java/org/apache/shale/clay/ clay-plugin/src/java/org/apache/shale/clay/component/chain/ clay-plugin/src/java/org/apache/shale/clay/config/beans/ clay-plugin/src/java/or...

Author: gvanmatre
Date: Sat Oct  1 10:45:24 2005
New Revision: 293007

URL: http://svn.apache.org/viewcvs?rev=293007&view=rev
Log:
Fix for bug#: 36884, added more unit test coverage and some cleanup.

Added:
    struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/utils/ClayAmalgamTestCase.java
    struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/utils/hello.html
Modified:
    struts/shale/trunk/clay-plugin/src/conf/view-config.xml
    struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/Bundle.properties
    struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/ClayContext.java
    struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ActionListenerBean.java
    struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/AttributeBean.java
    struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ComponentBean.java
    struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ConverterBean.java
    struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ElementBean.java
    struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/InnerComponentBean.java
    struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ValidatorBean.java
    struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ValueChangeListenerBean.java
    struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/Node.java
    struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/Parser.java
    struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/BuilderRuleContext.java
    struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/utils/ClayAmalgam.java
    struts/shale/trunk/test-framework/src/java/org/apache/shale/test/mock/MockVariableResolver.java

Modified: struts/shale/trunk/clay-plugin/src/conf/view-config.xml
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/conf/view-config.xml?rev=293007&r1=293006&r2=293007&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/conf/view-config.xml (original)
+++ struts/shale/trunk/clay-plugin/src/conf/view-config.xml Sat Oct  1 10:45:24 2005
@@ -575,7 +575,7 @@
     <attributes>
       <set name="shapeValidator" bindingType="MB" value="#{ClayAmalgam.clayImport}"/> 
       <set name="url" bindingType="None"/>
-      <set name="excapeXml" bindingType="None" value="false"/>
+      <set name="escapeXml" bindingType="None" value="false"/>
     </attributes>
   </component>	
 

Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/Bundle.properties
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/Bundle.properties?rev=293007&r1=293006&r2=293007&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/Bundle.properties (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/Bundle.properties Sat Oct  1 10:45:24 2005
@@ -26,8 +26,8 @@
 parser.load.file=Loading file "{0}".
 parser.load.error=Exception parsing file "{0}".
 parser.load.rules=Loading digester rules.
-parser.unmatched.endtoken=Unmatched ending non-optional token: {0}
-parser.unmatched.begintoken=Unmatched begining token: {0}
+parser.unmatched.endtoken=Unmatched ending non-optional token: {0}\n{1}
+parser.unmatched.begintoken=Unmatched begining token: {0}\n{1}
 
 #org.apache.shale.clay.parser.NodeTokenizer
 node.document.size=Indexing Document containing {0} character(s).

Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/ClayContext.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/ClayContext.java?rev=293007&r1=293006&r2=293007&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/ClayContext.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/ClayContext.java Sat Oct  1 10:45:24 2005
@@ -34,6 +34,8 @@
  */
 public class ClayContext extends ContextBase {
     
+    private static final long serialVersionUID = 3618132372818901298L;
+    
     /**
      * <p>The name of the ViewController or back bean that
      * is bound to the {@link org.apache.shale.clay.component.Clay} component.

Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ActionListenerBean.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ActionListenerBean.java?rev=293007&r1=293006&r2=293007&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ActionListenerBean.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ActionListenerBean.java Sat Oct  1 10:45:24 2005
@@ -23,5 +23,7 @@
  * a subclass of {@link ComponentBean} where this class acts like an enumerated type.
  */
 public class ActionListenerBean extends InnerComponentBean {
+
+    private static final long serialVersionUID = 3256723996136716338L;
     
 }

Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/AttributeBean.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/AttributeBean.java?rev=293007&r1=293006&r2=293007&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/AttributeBean.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/AttributeBean.java Sat Oct  1 10:45:24 2005
@@ -28,6 +28,8 @@
  */
 public class AttributeBean implements Comparable, Serializable {
 
+    private static final long serialVersionUID = 3689352130423305014L;
+
     /**
      * <p>Mnemonic the signifies the a method binding expression.</p>
      */

Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ComponentBean.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ComponentBean.java?rev=293007&r1=293006&r2=293007&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ComponentBean.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ComponentBean.java Sat Oct  1 10:45:24 2005
@@ -45,6 +45,8 @@
  */
 public class ComponentBean implements Comparable, Serializable {
     
+    private static final long serialVersionUID = 3907217039524312373L;
+
     /**
      * <p>Common Logging utility class </p>
      */    
@@ -77,6 +79,8 @@
      * the collection case insensitive.</p>  
      */
     protected class Attributes extends TreeMap {
+
+        private static final long serialVersionUID = 3905244515647173938L;
 
         /**
          * <p>Make the key case insensitive.</p>

Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ConverterBean.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ConverterBean.java?rev=293007&r1=293006&r2=293007&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ConverterBean.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ConverterBean.java Sat Oct  1 10:45:24 2005
@@ -23,5 +23,7 @@
  * a subclass of {@link ComponentBean} where this class acts like an enumerated type.
  */
 public class ConverterBean extends InnerComponentBean {
+
+    private static final long serialVersionUID = 3258417218273621552L;
     
 }

Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ElementBean.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ElementBean.java?rev=293007&r1=293006&r2=293007&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ElementBean.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ElementBean.java Sat Oct  1 10:45:24 2005
@@ -25,6 +25,8 @@
 
 public class ElementBean extends InnerComponentBean implements Comparable {
     
+    private static final long serialVersionUID = 3690760596346123828L;
+    
     /**
      * <p>An integer id that is used to order a nested component within it's 
      * child collection.  This id is also used a the "signature" when resolving

Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/InnerComponentBean.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/InnerComponentBean.java?rev=293007&r1=293006&r2=293007&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/InnerComponentBean.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/InnerComponentBean.java Sat Oct  1 10:45:24 2005
@@ -24,6 +24,8 @@
  */
 public class InnerComponentBean extends ComponentBean {
     
+    private static final long serialVersionUID = 3257283630291301426L;
+
     /**
      *  <p>This method describes the inheritance relationship for a containing component.  
      *  It works kind of like a java inner class in that the jsfid becomes the parent that 

Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ValidatorBean.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ValidatorBean.java?rev=293007&r1=293006&r2=293007&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ValidatorBean.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ValidatorBean.java Sat Oct  1 10:45:24 2005
@@ -23,5 +23,7 @@
  * a subclass of {@link ComponentBean} where this class acts like an enumerated type.
  */
 public class ValidatorBean extends InnerComponentBean {
+
+    private static final long serialVersionUID = 4050763771565782322L;
     
 }

Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ValueChangeListenerBean.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ValueChangeListenerBean.java?rev=293007&r1=293006&r2=293007&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ValueChangeListenerBean.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ValueChangeListenerBean.java Sat Oct  1 10:45:24 2005
@@ -23,5 +23,7 @@
  * a subclass of {@link ComponentBean} where this class acts like an enumerated type.
  */
 public class ValueChangeListenerBean extends InnerComponentBean {
+
+    private static final long serialVersionUID = 3256718472791536436L;
     
 }

Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/Node.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/Node.java?rev=293007&r1=293006&r2=293007&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/Node.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/Node.java Sat Oct  1 10:45:24 2005
@@ -234,8 +234,8 @@
     
     public String toString() {
         StringBuffer buff = new StringBuffer();
-        buff.append("name=").append(name).append(" isStart=\"").append(isStart)
-        .append(" isEnd=\"").append(isEnd).append(" isWellFormed=")
+        buff.append("name=").append(name).append(" isStart=").append(isStart)
+        .append(" isEnd=").append(isEnd).append(" isWellFormed=")
         .append(isWellFormed).append(" isComment=").append(isComment)
         .append("\n").append(token).append("\n").append(attributes);
         return buff.toString();

Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/Parser.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/Parser.java?rev=293007&r1=293006&r2=293007&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/Parser.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/Parser.java Sat Oct  1 10:45:24 2005
@@ -70,6 +70,8 @@
      */
     private class Attributes extends TreeMap implements Map {
         
+        private static final long serialVersionUID = 3906654111096190000L;
+
         /**
          * <p> Returns the value of the attribute using a offset
          * range within the parsed document.  The parameter <code>key</code>
@@ -218,7 +220,7 @@
             if (current.getParent() == null) {
                throw new RuntimeException(
                                messages.getMessage("parser.unmatched.endtoken",
-                               new Object[] {node.getToken()}));              
+                               new Object[] {node.getToken(), node.getToken().getRawText()}));              
             }
             
             current = (Node) current.getParent();
@@ -351,7 +353,7 @@
         if (node.getName() != null && !node.isWellFormed()) {
             throw new RuntimeException(
                     messages.getMessage("parser.unmatched.begintoken",
-                    new Object[] {node.getToken()}));              
+                    new Object[] {node.getToken(), node.getToken().getRawText()}));              
         }
           
         if (!node.isComment()) {

Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/BuilderRuleContext.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/BuilderRuleContext.java?rev=293007&r1=293006&r2=293007&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/BuilderRuleContext.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/BuilderRuleContext.java Sat Oct  1 10:45:24 2005
@@ -33,6 +33,8 @@
  */
 public class BuilderRuleContext extends ContextBase {
 
+    private static final long serialVersionUID = 4123103940092377137L;
+    
     /**
      * <p>
      * The current html node.

Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/utils/ClayAmalgam.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/utils/ClayAmalgam.java?rev=293007&r1=293006&r2=293007&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/utils/ClayAmalgam.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/utils/ClayAmalgam.java Sat Oct  1 10:45:24 2005
@@ -93,7 +93,6 @@
     private static TreeMap encodeMap = null;
     static {
         encodeMap = new TreeMap();
-        encodeMap.put("\"", "&quot;");
         encodeMap.put("'", "&#39;");
         encodeMap.put("&", "&amp;");
         encodeMap.put("<", "&lt;");
@@ -205,7 +204,8 @@
      * <code>shapeValidator</code> attribute of the {@link org.apache.shale.clay.component.Clay}
      * component.  It expects that the <code>url</code> attribute will contain the file to import
      * relative to the web context root. The content of the file will be encode or decode depending 
-     * on the value of the <code>escapeXml</code> optional attribute.  The default is "true". </p>   
+     * on the value of the <code>escapeXml</code> optional attribute.  The default doesn't apply
+     * any encoding. </p>   
      */
     public void clayImport(javax.faces.context.FacesContext context,
             javax.faces.component.UIComponent component,
@@ -231,9 +231,9 @@
         url = tagUtils.eval(url);
         
         boolean escapeXml = true;
-        String tmp = (String) clay.getAttributes().get("escapeXml");
-        if (tmp != null) {
-           escapeXml =  tagUtils.evalBoolean(tmp).booleanValue();
+        String escAttribute = (String) clay.getAttributes().get("escapeXml");
+        if (escAttribute != null) {
+           escapeXml =  tagUtils.evalBoolean(escAttribute).booleanValue();
         }
                 
         StringBuffer value = new StringBuffer();
@@ -261,10 +261,12 @@
             
         }
         
-        if (!escapeXml)
-            replace(value, decodeMap);
-        else 
-            replace(value, encodeMap);
+        if (escAttribute != null) {
+           if (!escapeXml)
+               replace(value, decodeMap);
+           else 
+               replace(value, encodeMap);
+        }
            
         text.setJsfid("outputText");
         text.setComponentType("javax.faces.HtmlOutputText");

Added: struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/utils/ClayAmalgamTestCase.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/utils/ClayAmalgamTestCase.java?rev=293007&view=auto
==============================================================================
--- struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/utils/ClayAmalgamTestCase.java (added)
+++ struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/utils/ClayAmalgamTestCase.java Sat Oct  1 10:45:24 2005
@@ -0,0 +1,148 @@
+/*
+ * Copyright 2005 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.utils;
+
+import java.util.Map;
+import java.util.TreeMap;
+
+import javax.faces.component.UIComponent;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.apache.shale.clay.config.beans.AttributeBean;
+import org.apache.shale.clay.config.beans.ComponentBean;
+import org.apache.shale.faces.ShaleConstants;
+import org.apache.shale.test.base.AbstractViewControllerTestCase;
+import org.apache.shale.util.Tags;
+
+public class ClayAmalgamTestCase extends AbstractViewControllerTestCase {
+
+    private ClayAmalgam clayAmalgam = null;
+        
+    public void setUp() {
+        super.setUp();
+        
+        clayAmalgam = new ClayAmalgam();
+        application.addComponent("org.apache.shale.clay.component.Clay", "org.apache.shale.clay.component.Clay"); 
+        servletContext.setAttribute(ShaleConstants.TAG_UTILITY_BEAN, new Tags());
+    }
+ 
+    // Construct a new instance of this test case.
+    public ClayAmalgamTestCase(String name) {
+        super(name);
+    }
+
+    // Return the tests included in this test case.
+    public static Test suite() {
+        return (new TestSuite(ClayAmalgamTestCase.class));
+    }
+
+    //test the import file into a outputText component
+    public void testClayImport() {
+       //test excapeXml=true
+       Map requestParams = new TreeMap();
+       requestParams.put("url", "/org/apache/shale/clay/utils/hello.html");
+       externalContext.setRequestParameterMap(requestParams);
+       
+       ComponentBean displayElement = new ComponentBean();
+       displayElement.setId("clayImport");
+       displayElement.setComponentType("org.apache.shale.clay.component.Clay");
+       displayElement.setJsfid("clayImport");
+        
+       UIComponent component = (UIComponent) application.createComponent("org.apache.shale.clay.component.Clay");     
+       component.setId("clayImport");
+       component.getAttributes().put("url","#{param.url}");
+       component.getAttributes().put("escapeXml", Boolean.TRUE.toString());
+       
+       clayAmalgam.clayImport(facesContext, component, displayElement);
+       
+       assertEquals("jsfid", displayElement.getJsfid(), "outputText");
+       assertEquals("componentType", displayElement.getComponentType(), "javax.faces.HtmlOutputText");
+       
+       AttributeBean attr = displayElement.getAttribute("escape");
+       assertNotNull("escape", attr);
+       assertEquals("escape", attr.getValue(), Boolean.FALSE.toString());
+       
+       attr = displayElement.getAttribute("isTransient");
+       assertNotNull("isTransient", attr);
+       assertEquals("isTransient", attr.getValue(), Boolean.TRUE.toString());
+       
+       attr = displayElement.getAttribute("value");
+       assertNotNull("value", attr);
+       assertEquals("value", attr.getValue(), "&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body bgcolor=\"blue\"&gt;Hello World&lt;/body&gt;&lt;/html&gt;");
+
+       //test excapeXml=false
+       component.getAttributes().put("escapeXml", Boolean.FALSE.toString());
+       displayElement = new ComponentBean();
+       displayElement.setId("clayImport");
+       displayElement.setComponentType("org.apache.shale.clay.component.Clay");
+       displayElement.setJsfid("clayImport");
+      
+       clayAmalgam.clayImport(facesContext, component, displayElement);
+       
+       assertEquals("jsfid", displayElement.getJsfid(), "outputText");
+       assertEquals("componentType", displayElement.getComponentType(), "javax.faces.HtmlOutputText");
+       
+       attr = displayElement.getAttribute("escape");
+       assertNotNull("escape", attr);
+       assertEquals("escape", attr.getValue(), Boolean.FALSE.toString());
+       
+       attr = displayElement.getAttribute("isTransient");
+       assertNotNull("isTransient", attr);
+       assertEquals("isTransient", attr.getValue(), Boolean.TRUE.toString());
+       
+       attr = displayElement.getAttribute("value");
+       assertNotNull("value", attr);
+       assertEquals("value", attr.getValue(), "<html><head></head><body bgcolor=\"blue\">Hello World</body></html>");
+
+       
+    }
+    
+    //convert an escaped value into a un-escaped outputText
+    public void testClayOut() {
+        ComponentBean displayElement = new ComponentBean();
+        displayElement.setId("clayOut");
+        displayElement.setComponentType("org.apache.shale.clay.component.Clay");
+        displayElement.setJsfid("clayOut");
+
+        UIComponent component = (UIComponent) application.createComponent("org.apache.shale.clay.component.Clay");     
+        component.setId("clayOut");
+        component.getAttributes().put("value","&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body bgcolor=\"blue\"&gt;Hello World&lt;/body&gt;&lt;/html&gt;");
+        component.getAttributes().put("escapeXml", Boolean.FALSE.toString());
+        
+   
+        clayAmalgam.clayOut(facesContext, component, displayElement);
+        
+        assertEquals("jsfid", displayElement.getJsfid(), "outputText");
+        assertEquals("componentType", displayElement.getComponentType(), "javax.faces.HtmlOutputText");
+        
+        AttributeBean attr = displayElement.getAttribute("escape");
+        assertNotNull("escape", attr);
+        assertEquals("escape", attr.getValue(), Boolean.FALSE.toString());
+        
+        attr = displayElement.getAttribute("isTransient");
+        assertNotNull("isTransient", attr);
+        assertEquals("isTransient", attr.getValue(), Boolean.TRUE.toString());
+        
+        attr = displayElement.getAttribute("value");
+        assertNotNull("value", attr);
+        assertEquals("value", attr.getValue(), "<html><head></head><body bgcolor=\"blue\">Hello World</body></html>");
+          
+    }
+    
+}

Added: struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/utils/hello.html
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/utils/hello.html?rev=293007&view=auto
==============================================================================
--- struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/utils/hello.html (added)
+++ struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/utils/hello.html Sat Oct  1 10:45:24 2005
@@ -0,0 +1 @@
+<html><head></head><body bgcolor="blue">Hello World</body></html>
\ No newline at end of file

Modified: struts/shale/trunk/test-framework/src/java/org/apache/shale/test/mock/MockVariableResolver.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/test-framework/src/java/org/apache/shale/test/mock/MockVariableResolver.java?rev=293007&r1=293006&r2=293007&view=diff
==============================================================================
--- struts/shale/trunk/test-framework/src/java/org/apache/shale/test/mock/MockVariableResolver.java (original)
+++ struts/shale/trunk/test-framework/src/java/org/apache/shale/test/mock/MockVariableResolver.java Sat Oct  1 10:45:24 2005
@@ -70,6 +70,8 @@
             return external().getRequestMap();
         } else if ("sessionScope".equals(name)) {
             return external().getSessionMap();
+        } else if ("param".equals(name)) {
+            return external().getRequestParameterMap();
         }
 
         // Search ascending scopes for non-magic names



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org