Author: musachy
Date: Mon Dec 15 10:39:09 2008
New Revision: 726762

URL: http://svn.apache.org/viewvc?rev=726762&view=rev
Log:
Add ActionError and Anchor handlers

Added:
    
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/ActionErrorHandler.java
    
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/AnchorHandler.java
    
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AbstractCommonAttributesTest.java
    
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AbstractTest.java
   (contents, props changed)
      - copied, changed from r726697, 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AbstractTestCase.java
    
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/ActionErrorTest.java
    
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AnchorTest.java
Removed:
    
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AbstractTestCase.java
Modified:
    
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/XHTMLTagSerializer.java
    
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SimpleTheme.java
    
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/FormTest.java
    
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/SelectTest.java
    
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/TextFieldTest.java

Modified: 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/XHTMLTagSerializer.java
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/XHTMLTagSerializer.java?rev=726762&r1=726761&r2=726762&view=diff
==============================================================================
--- 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/XHTMLTagSerializer.java
 (original)
+++ 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/XHTMLTagSerializer.java
 Mon Dec 15 10:39:09 2008
@@ -29,7 +29,7 @@
 public class XHTMLTagSerializer implements TagSerializer {
 
     private Writer writer;
-    
+
     public void characters(String text) throws IOException {
         characters(text, true);
     }
@@ -47,22 +47,25 @@
     public void setNext(TagHandler next) {
     }
 
-    public void start(String name, Attributes a) throws IOException {
+    public void start(String name, Attributes attrs) throws IOException {
         writer.write("<");
         writer.write(name);
-        for (String key : a.keySet()) {
-            writer.write(" ");
-            writer.write(key);
-            writer.write("=\"");
-            writer.write(a.get(key));
-            writer.write("\"");
+        if (attrs != null) {
+            for (String key : attrs.keySet()) {
+                writer.write(" ");
+                writer.write(key);
+                writer.write("=\"");
+                writer.write(attrs.get(key));
+                writer.write("\"");
+            }
         }
+
         writer.write(">");
     }
 
     public void setup(TemplateRenderingContext context) {
         this.writer = context.getWriter();
-        
+
     }
 
 }

Added: 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/ActionErrorHandler.java
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/ActionErrorHandler.java?rev=726762&view=auto
==============================================================================
--- 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/ActionErrorHandler.java
 (added)
+++ 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/ActionErrorHandler.java
 Mon Dec 15 10:39:09 2008
@@ -0,0 +1,62 @@
+/*
+ * $Id: SelectHandler.java 726340 2008-12-14 02:45:05Z musachy $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.struts2.views.java.simple;
+
+import org.apache.struts2.views.java.TagGenerator;
+import org.apache.struts2.views.java.Attributes;
+import org.apache.struts2.util.MakeIterator;
+
+import java.io.IOException;
+import java.util.Map;
+import java.util.Iterator;
+
+public class ActionErrorHandler extends AbstractTagHandler implements 
TagGenerator {
+    @Override
+    public void generate() throws IOException {
+        Map<String, Object> params = context.getParameters();
+        Object errorsObj = findValue("actionErrors");
+
+        if (errorsObj != null) {
+            Iterator itt = MakeIterator.convert(errorsObj);
+            if (itt.hasNext()) {
+                start("ul", null);
+                while (itt.hasNext()) {
+                    String error = (String) itt.next();
+
+                    //li for each error
+                    start("li", null);
+
+                    //span for error
+                    Attributes attrs = new Attributes();
+                    attrs.addIfExists("style", params.get("cssStyle"))
+                            .add("class", params.containsKey("cssClass") ? 
(String) params.get("cssClass") : "errorMessage");
+
+                    start("span", attrs);
+                    characters(error);
+                    end("span");
+                    end("li");
+
+                }
+                end("ul");
+            }
+        }
+    }
+}

Added: 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/AnchorHandler.java
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/AnchorHandler.java?rev=726762&view=auto
==============================================================================
--- 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/AnchorHandler.java
 (added)
+++ 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/AnchorHandler.java
 Mon Dec 15 10:39:09 2008
@@ -0,0 +1,45 @@
+/*
+ * $Id: SelectHandler.java 726340 2008-12-14 02:45:05Z musachy $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.struts2.views.java.simple;
+
+import org.apache.struts2.views.java.TagGenerator;
+import org.apache.struts2.views.java.Attributes;
+
+import java.io.IOException;
+import java.util.Map;
+
+public class AnchorHandler extends AbstractTagHandler implements TagGenerator {
+    @Override
+    public void generate() throws IOException {
+        Map<String, Object> params = context.getParameters();
+        Attributes attrs = new Attributes();
+
+        attrs.addIfExists("name", params.get("name"))
+                .addIfExists("id", params.get("id"))
+                .addIfExists("class", params.get("cssClass"))
+                .addIfExists("style", params.get("cssStyle"))
+                .addIfExists("href", params.get("href"), false)
+                .addIfExists("title", params.get("title"))
+                .addIfExists("tabindex", params.get("tabindex"));
+        start("a", attrs);
+        end("a");
+    }
+}

Modified: 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SimpleTheme.java
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SimpleTheme.java?rev=726762&r1=726761&r2=726762&view=diff
==============================================================================
--- 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SimpleTheme.java
 (original)
+++ 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SimpleTheme.java
 Mon Dec 15 10:39:09 2008
@@ -37,6 +37,8 @@
             put("textfield", new FactoryList(TextFieldHandler.class, 
ScriptingEventsHandler.class, CommonAttributesHandler.class));
             put("select", new FactoryList(SelectHandler.class, 
ScriptingEventsHandler.class, CommonAttributesHandler.class));
             put("form", new FactoryList(FormHandler.class, 
ScriptingEventsHandler.class, CommonAttributesHandler.class));
+            put("a", new FactoryList(AnchorHandler.class, 
ScriptingEventsHandler.class, CommonAttributesHandler.class));
+            put("actionerror", new FactoryList(ActionErrorHandler.class));
             put("empty", new FactoryList(EmptyHandler.class));
         }});
         setName("simple");

Added: 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AbstractCommonAttributesTest.java
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AbstractCommonAttributesTest.java?rev=726762&view=auto
==============================================================================
--- 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AbstractCommonAttributesTest.java
 (added)
+++ 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AbstractCommonAttributesTest.java
 Mon Dec 15 10:39:09 2008
@@ -0,0 +1,33 @@
+package org.apache.struts2.views.java.simple;
+
+import org.apache.struts2.components.UIBean;
+
+public abstract class AbstractCommonAttributesTest extends AbstractTest {
+    public void testRenderTextFieldScriptingAttrs() {
+        UIBean tag = getUIBean();
+
+        applyScriptingAttrs(tag);
+
+        tag.evaluateParams();
+        map.putAll(tag.getParameters());
+        theme.renderTag(getTagName(), context);
+        String output = writer.getBuffer().toString();
+
+        assertScriptingAttrs(output);
+    }
+
+    public void testRenderTextFieldCommonAttrs() {
+        UIBean tag = getUIBean();
+
+
+        applyCommonAttrs(tag);
+
+        tag.evaluateParams();
+        map.putAll(tag.getParameters());
+        theme.renderTag(getTagName(), context);
+        String output = writer.getBuffer().toString();
+
+        assertCommongAttrs(output);
+    }
+
+}

Copied: 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AbstractTest.java
 (from r726697, 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AbstractTestCase.java)
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AbstractTest.java?p2=struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AbstractTest.java&p1=struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AbstractTestCase.java&r1=726697&r2=726762&rev=726762&view=diff
==============================================================================
--- 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AbstractTestCase.java
 (original)
+++ 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AbstractTest.java
 Mon Dec 15 10:39:09 2008
@@ -1,27 +1,25 @@
 package org.apache.struts2.views.java.simple;
 
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.conversion.impl.XWorkConverter;
+import com.opensymphony.xwork2.inject.Container;
+import com.opensymphony.xwork2.util.ValueStack;
 import junit.framework.TestCase;
+import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.components.Component;
 import org.apache.struts2.components.UIBean;
 import org.apache.struts2.components.template.Template;
 import org.apache.struts2.components.template.TemplateRenderingContext;
-import org.apache.struts2.StrutsConstants;
 import org.easymock.EasyMock;
 
-import java.util.Map;
-import java.util.HashMap;
-import java.util.Stack;
-import java.io.StringWriter;
-
-import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.conversion.impl.XWorkConverter;
-import com.opensymphony.xwork2.inject.Container;
-
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.StringWriter;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Stack;
 
-public abstract class AbstractTestCase extends TestCase {
+public abstract class AbstractTest extends TestCase {
     private Map<String, String> scriptingAttrs = new HashMap<String, String>();
     private Map<String, String> commonAttrs = new HashMap<String, String>();
 
@@ -37,6 +35,9 @@
     protected HttpServletRequest request;
     protected HttpServletResponse response;
 
+    protected abstract UIBean getUIBean();
+
+    protected abstract String getTagName();
 
     @Override
     protected void setUp() throws Exception {
@@ -82,7 +83,6 @@
         stackContext.put(ActionContext.CONTAINER, container);
 
 
-
         EasyMock.replay(stack);
         EasyMock.replay(container);
     }
@@ -95,7 +95,7 @@
         EasyMock.expect(stack.findValue(expr, toClass)).andReturn(returnVal);
     }
 
-     protected void expectFind(String expr, Object returnVal) {
+    protected void expectFind(String expr, Object returnVal) {
         EasyMock.expect(stack.findValue(expr)).andReturn(returnVal);
     }
 
@@ -149,7 +149,7 @@
 
     public class ConverterEx extends XWorkConverter {
         public ConverterEx() {
-            
+
         }
     }
 }

Propchange: 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AbstractTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AbstractTest.java
------------------------------------------------------------------------------
    svn:keywords = Id

Added: 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/ActionErrorTest.java
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/ActionErrorTest.java?rev=726762&view=auto
==============================================================================
--- 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/ActionErrorTest.java
 (added)
+++ 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/ActionErrorTest.java
 Mon Dec 15 10:39:09 2008
@@ -0,0 +1,92 @@
+/*
+ * $Id: Bean.java 726216 2008-12-13 14:58:16Z musachy $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.struts2.views.java.simple;
+
+import org.apache.struts2.components.ActionError;
+import org.apache.struts2.components.Anchor;
+import org.apache.struts2.components.UIBean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ActionErrorTest extends AbstractTest {
+    private ActionError tag;
+    private List<String> errors;
+
+    public void testRenderActionError() {
+        tag.setCssClass("class");
+        tag.setCssStyle("style");
+
+        tag.evaluateParams();
+        map.putAll(tag.getParameters());
+        theme.renderTag(getTagName(), context);
+        String output = writer.getBuffer().toString();
+        String expected = s("<ul><li><span style='style' class='class'>this 
clas is bad</span></li><li><span style='style' 
class='class'>baaaaad</span></li></ul>");
+        assertEquals(expected, output);
+    }
+
+    public void testRenderActionErrorWithoutCssClass() {
+        tag.setCssStyle("style");
+
+        tag.evaluateParams();
+        map.putAll(tag.getParameters());
+        theme.renderTag(getTagName(), context);
+        String output = writer.getBuffer().toString();
+        String expected = s("<ul><li><span style='style' 
class='errorMessage'>this clas is bad</span></li><li><span style='style' 
class='errorMessage'>baaaaad</span></li></ul>");
+        assertEquals(expected, output);
+    }
+
+    public void testRenderActionErrorNoErrors() {
+        this.errors.clear();
+        tag.evaluateParams();
+        map.putAll(tag.getParameters());
+        theme.renderTag(getTagName(), context);
+        String output = writer.getBuffer().toString();
+        assertEquals("", output);
+    }
+
+    @Override
+    protected void setUp() throws Exception {
+        this.errors = new ArrayList();
+        this.errors.add("this clas is bad");
+        this.errors.add("baaaaad");
+
+        //errors are needed to setup stack
+        super.setUp();
+        this.tag = new ActionError(stack, request, response);
+    }
+
+    @Override
+    protected void setUpStack() {
+        super.setUpStack();
+        expectFind("actionErrors", this.errors);
+    }
+
+    @Override
+    protected UIBean getUIBean() {
+        return new Anchor(stack, request, response);
+    }
+
+    @Override
+    protected String getTagName() {
+        return "actionerror";
+    }
+}

Added: 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AnchorTest.java
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AnchorTest.java?rev=726762&view=auto
==============================================================================
--- 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AnchorTest.java
 (added)
+++ 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AnchorTest.java
 Mon Dec 15 10:39:09 2008
@@ -0,0 +1,62 @@
+/*
+ * $Id: Bean.java 726216 2008-12-13 14:58:16Z musachy $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.struts2.views.java.simple;
+
+import org.apache.struts2.components.Anchor;
+import org.apache.struts2.components.UIBean;
+
+public class AnchorTest extends AbstractCommonAttributesTest {
+    private Anchor tag;
+
+    public void testRenderAnchor() {
+        tag.setName("name_");
+        tag.setDisabled("true");
+        tag.setTabindex("1");
+        tag.setId("id_");
+        tag.setCssClass("class");
+        tag.setCssStyle("style");
+        tag.setTitle("title");
+        tag.setHref("http://sometest.com?ab=10";);
+
+        tag.evaluateParams();
+        map.putAll(tag.getParameters());
+        theme.renderTag("a", context);
+        String output = writer.getBuffer().toString();
+        String expected = s("<a name='name_' id='id_' class='class' 
style='style' href='http://sometest.com?ab=10' title='title' 
tabindex='1'></a>");
+        assertEquals(expected, output);
+    }
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        this.tag = new Anchor(stack, request, response);
+    }
+
+    @Override
+    protected UIBean getUIBean() {
+        return new Anchor(stack, request, response);
+    }
+
+    @Override
+    protected String getTagName() {
+        return "a";
+    }
+}

Modified: 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/FormTest.java
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/FormTest.java?rev=726762&r1=726761&r2=726762&view=diff
==============================================================================
--- 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/FormTest.java
 (original)
+++ 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/FormTest.java
 Mon Dec 15 10:39:09 2008
@@ -20,26 +20,13 @@
  */
 package org.apache.struts2.views.java.simple;
 
-import org.apache.struts2.components.Select;
 import org.apache.struts2.components.Form;
+import org.apache.struts2.components.UIBean;
 import org.apache.struts2.components.UrlRenderer;
 import org.easymock.EasyMock;
-import com.opensymphony.xwork2.util.ValueStack;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-public class FormTest extends AbstractTestCase {
-    private FormEx tag;
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        tag = new FormEx(stack, request, response);
-        UrlRenderer renderer = EasyMock.createNiceMock(UrlRenderer.class);
-        EasyMock.replay(renderer);
-        tag.setUrlRenderer(renderer);
-    }
+public class FormTest extends AbstractCommonAttributesTest {
+    private Form tag;
 
     public void testRenderForm() {
         tag.setName("name_");
@@ -57,7 +44,7 @@
         tag.setEnctype("enc");
         tag.setMethod("post");
 
-        tag.processParams();
+        tag.evaluateParams();
         map.putAll(tag.getParameters());
         theme.renderTag("form", context);
         String output = writer.getBuffer().toString();
@@ -66,7 +53,7 @@
     }
 
     public void testDefaultMethod() {
-        tag.processParams();
+        tag.evaluateParams();
         map.putAll(tag.getParameters());
         theme.renderTag("form", context);
         String output = writer.getBuffer().toString();
@@ -74,43 +61,22 @@
         assertEquals(expected, output);
     }
 
-
-    public void testRenderScriptingAttrs() {
-
-        applyScriptingAttrs(tag);
-
-        tag.processParams();
-        map.putAll(tag.getParameters());
-        theme.renderTag("form", context);
-        String output = writer.getBuffer().toString();
-
-        assertScriptingAttrs(output);
+    @Override
+    protected UIBean getUIBean() {
+        return tag;
     }
 
-    public void testRenderCommonAttrs() {
-
-        applyCommonAttrs(tag);
-
-        tag.processParams();
-        map.putAll(tag.getParameters());
-        theme.renderTag("form", context);
-        String output = writer.getBuffer().toString();
-
-        assertCommongAttrs(output);
+    @Override
+    protected String getTagName() {
+        return "form";
     }
 
-    class FormEx extends Form {
-        public FormEx(ValueStack stack, HttpServletRequest request, 
HttpServletResponse response) {
-            super(stack, request, response);
-        }
-
-        public void processParams() {
-            //these methods are protected
-            evaluateParams();
-        }
-
-        public boolean altSyntax() {
-            return true;
-        }
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        tag = new Form(stack, request, response);
+        UrlRenderer renderer = EasyMock.createNiceMock(UrlRenderer.class);
+        EasyMock.replay(renderer);
+        tag.setUrlRenderer(renderer);
     }
 }

Modified: 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/SelectTest.java
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/SelectTest.java?rev=726762&r1=726761&r2=726762&view=diff
==============================================================================
--- 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/SelectTest.java
 (original)
+++ 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/SelectTest.java
 Mon Dec 15 10:39:09 2008
@@ -20,21 +20,17 @@
  */
 package org.apache.struts2.views.java.simple;
 
-import org.apache.struts2.components.TextField;
 import org.apache.struts2.components.Select;
-import org.easymock.EasyMock;
-import com.opensymphony.xwork2.util.ValueStack;
+import org.apache.struts2.components.UIBean;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
 import java.util.Arrays;
 import java.util.HashMap;
 
-public class SelectTest extends AbstractTestCase {
+public class SelectTest extends AbstractCommonAttributesTest {
     private Bean bean1;
+    private Select tag;
 
     public void testRenderSelect() {
-        SelectEx tag = new SelectEx(stack, request, response);
         tag.setName("name_");
         tag.setSize("10");
         tag.setDisabled("true");
@@ -45,7 +41,7 @@
         tag.setCssStyle("style");
         tag.setTitle("title");
 
-        tag.processParams();
+        tag.evaluateParams();
         map.putAll(tag.getParameters());
         theme.renderTag("select", context);
         String output = writer.getBuffer().toString();
@@ -54,13 +50,11 @@
     }
 
     public void testRenderSelectWithHeader() {
-        SelectEx tag = new SelectEx(stack, request, response);
-
         tag.setList("%{{'key0', 'key1'}}");
         tag.setHeaderKey("%{'key0'}");
         tag.setHeaderValue("%{'val'}");
 
-        tag.processParams();
+        tag.evaluateParams();
         map.putAll(tag.getParameters());
         theme.renderTag("select", context);
         String output = writer.getBuffer().toString();
@@ -69,13 +63,11 @@
     }
 
     public void testRenderSelectWithOptions() {
-        SelectEx tag = new SelectEx(stack, request, response);
-
         tag.setList("%{list}");
         tag.setListKey("intField");
         tag.setListValue("stringField");
 
-        tag.processParams();
+        tag.evaluateParams();
         map.putAll(tag.getParameters());
         theme.renderTag("select", context);
         String output = writer.getBuffer().toString();
@@ -84,11 +76,9 @@
     }
 
     public void testRenderSelectWithMapOptions() {
-        SelectEx tag = new SelectEx(stack, request, response);
-
         tag.setList("%{#{'key0' : 'val'}}");
 
-        tag.processParams();
+        tag.evaluateParams();
         map.putAll(tag.getParameters());
         theme.renderTag("select", context);
         String output = writer.getBuffer().toString();
@@ -97,14 +87,12 @@
     }
 
     public void testRenderSelectWithOptionSelected() {
-        SelectEx tag = new SelectEx(stack, request, response);
-
         tag.setList("%{list}");
         tag.setListKey("intField");
         tag.setListValue("stringField");
         tag.setValue("%{'1'}");
 
-        tag.processParams();
+        tag.evaluateParams();
         map.putAll(tag.getParameters());
         theme.renderTag("select", context);
         String output = writer.getBuffer().toString();
@@ -113,6 +101,22 @@
     }
 
     @Override
+    protected UIBean getUIBean() {
+        return tag;
+    }
+
+    @Override
+    protected String getTagName() {
+        return "select";
+    }
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        this.tag = new Select(stack, request, response);
+    }
+
+    @Override
     protected void setUpStack() {
         super.setUpStack();
         bean1 = new Bean();
@@ -137,19 +141,4 @@
         expectFind("intField", 1);
         expectFind("stringField", "val");
     }
-
-    class SelectEx extends Select {
-        public SelectEx(ValueStack stack, HttpServletRequest request, 
HttpServletResponse response) {
-            super(stack, request, response);
-        }
-
-        public void processParams() {
-            //these methods are protected
-            evaluateParams();
-        }
-
-        public boolean altSyntax() {
-            return true;
-        }
-    }
 }

Modified: 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/TextFieldTest.java
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/TextFieldTest.java?rev=726762&r1=726761&r2=726762&view=diff
==============================================================================
--- 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/TextFieldTest.java
 (original)
+++ 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/TextFieldTest.java
 Mon Dec 15 10:39:09 2008
@@ -20,28 +20,13 @@
  */
 package org.apache.struts2.views.java.simple;
 
-import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.TextParseUtil;
-import junit.framework.TestCase;
-import org.apache.struts2.components.Component;
 import org.apache.struts2.components.TextField;
-import org.apache.struts2.components.template.Template;
-import org.apache.struts2.components.template.TemplateRenderingContext;
-import org.apache.struts2.views.util.ContextUtil;
-import org.easymock.EasyMock;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.StringWriter;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Stack;
+import org.apache.struts2.components.UIBean;
 
-public class TextFieldTest extends AbstractTestCase {
+public class TextFieldTest extends AbstractCommonAttributesTest {
+    private TextField tag;
 
     public void testRenderTextField() {
-        TestFieldEx tag = new TestFieldEx(stack, request, response);
-
         tag.setName("name");
         tag.setValue("val1");
         tag.setSize("10");
@@ -55,7 +40,7 @@
         tag.setTitle("title");
 
 
-        tag.processParams();
+        tag.evaluateParams();
         map.putAll(tag.getParameters());
         theme.renderTag("textfield", context);
         String output = writer.getBuffer().toString();
@@ -63,50 +48,19 @@
         assertEquals(expected, output);
     }
 
-    public void testRenderTextFieldScriptingAttrs() {
-        TestFieldEx tag = new TestFieldEx(stack, request, response);
-
-        applyScriptingAttrs(tag);
-
-        tag.processParams();
-        map.putAll(tag.getParameters());
-        theme.renderTag("textfield", context);
-        String output = writer.getBuffer().toString();
-
-        assertScriptingAttrs(output);
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        this.tag = new TextField(stack, request, response);
     }
 
-     public void testRenderTextFieldCommonAttrs() {
-        TestFieldEx tag = new TestFieldEx(stack, request, response);
-
-        applyCommonAttrs(tag);
-
-        tag.processParams();
-        map.putAll(tag.getParameters());
-        theme.renderTag("textfield", context);
-        String output = writer.getBuffer().toString();
-
-        assertCommongAttrs(output);
+    @Override
+    protected UIBean getUIBean() {
+        return tag;
     }
 
-    class TestFieldEx extends TextField {
-        public TestFieldEx(ValueStack stack, HttpServletRequest request, 
HttpServletResponse response) {
-            super(stack, request, response);
-        }
-
-        public void processParams() {
-            //these methods are protected 
-            evaluateParams();
-            evaluateExtraParams();
-        }
-
-        public boolean altSyntax() {
-            return true;
-        }
-
-        protected Object findValue(String expr, Class toType) {
-            return doFindValue(expr, toType);
-        }
+    @Override
+    protected String getTagName() {
+        return "textfield";
     }
-
 }


Reply via email to