Author: ddewolf Date: Thu Jan 25 19:41:19 2007 New Revision: 500131 URL: http://svn.apache.org/viewvc?view=rev&rev=500131 Log: Implementing a couple of tests; Slowly getting ready to add additional tags to the java simple theme
Added: struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/ struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/AbstractTagHandler.java - copied, changed from r499925, struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/AbstractTagHandler.java struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/CommonAttributesHandler.java - copied, changed from r499925, struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/CommonAttributesHandler.java struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/ScriptingEventsHandler.java - copied, changed from r499925, struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/ScriptingEventsHandler.java struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SelectHandler.java (with props) struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SimpleTheme.java - copied, changed from r499925, struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/SimpleTheme.java struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/TextFieldHandler.java - copied, changed from r499925, struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/TextFieldHandler.java struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/ struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/ struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/ struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/ struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/ struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/ struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/ struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/ struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/SimpleThemeTest.java (with props) Removed: struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/AbstractTagHandler.java struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/CommonAttributesHandler.java struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/ScriptingEventsHandler.java struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/SimpleTheme.java struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/TextFieldHandler.java Modified: struts/sandbox/trunk/struts2-javatemplates-plugin/pom.xml struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/JavaTemplateEngine.java Modified: struts/sandbox/trunk/struts2-javatemplates-plugin/pom.xml URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/pom.xml?view=diff&rev=500131&r1=500130&r2=500131 ============================================================================== --- struts/sandbox/trunk/struts2-javatemplates-plugin/pom.xml (original) +++ struts/sandbox/trunk/struts2-javatemplates-plugin/pom.xml Thu Jan 25 19:41:19 2007 @@ -25,5 +25,17 @@ <scope>test</scope> <version>3.8.1</version> </dependency> + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymock</artifactId> + <scope>test</scope> + <version>2.2</version> + </dependency> + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymockclassextension</artifactId> + <scope>test</scope> + <version>2.2</version> + </dependency> </dependencies> </project> Modified: struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/JavaTemplateEngine.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/JavaTemplateEngine.java?view=diff&rev=500131&r1=500130&r2=500131 ============================================================================== --- struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/JavaTemplateEngine.java (original) +++ struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/JavaTemplateEngine.java Thu Jan 25 19:41:19 2007 @@ -27,7 +27,7 @@ import org.apache.struts2.components.template.Template; import org.apache.struts2.components.template.TemplateRenderingContext; import org.apache.struts2.views.java.Theme; -import org.apache.struts2.views.java.SimpleTheme; +import org.apache.struts2.views.java.simple.SimpleTheme; public class JavaTemplateEngine extends BaseTemplateEngine { Copied: struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/AbstractTagHandler.java (from r499925, struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/AbstractTagHandler.java) URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/AbstractTagHandler.java?view=diff&rev=500131&p1=struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/AbstractTagHandler.java&r1=499925&p2=struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/AbstractTagHandler.java&r2=500131 ============================================================================== --- struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/AbstractTagHandler.java (original) +++ struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/AbstractTagHandler.java Thu Jan 25 19:41:19 2007 @@ -1,5 +1,5 @@ /* - * $Id: BaseTemplateEngine.java 471756 2006-11-06 15:01:43Z husted $ + * $Id$ * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -18,11 +18,13 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.struts2.views.java; +package org.apache.struts2.views.java.simple; import java.io.IOException; import org.apache.struts2.components.template.TemplateRenderingContext; +import org.apache.struts2.views.java.TagHandler; +import org.apache.struts2.views.java.Attributes; public class AbstractTagHandler implements TagHandler { Copied: struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/CommonAttributesHandler.java (from r499925, struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/CommonAttributesHandler.java) URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/CommonAttributesHandler.java?view=diff&rev=500131&p1=struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/CommonAttributesHandler.java&r1=499925&p2=struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/CommonAttributesHandler.java&r2=500131 ============================================================================== --- struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/CommonAttributesHandler.java (original) +++ struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/CommonAttributesHandler.java Thu Jan 25 19:41:19 2007 @@ -18,14 +18,17 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.struts2.views.java; +package org.apache.struts2.views.java.simple; + +import org.apache.struts2.views.java.simple.AbstractTagHandler; +import org.apache.struts2.views.java.Attributes; import java.io.IOException; public class CommonAttributesHandler extends AbstractTagHandler { /* (non-Javadoc) - * @see org.apache.struts2.views.java.AbstractTagHandler#start(java.lang.String, org.apache.struts2.views.java.Attributes) + * @see org.apache.struts2.views.java.simple.AbstractTagHandler#start(java.lang.String, org.apache.struts2.views.java.Attributes) */ @Override public void start(String name, Attributes a) throws IOException { Copied: struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/ScriptingEventsHandler.java (from r499925, struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/ScriptingEventsHandler.java) URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/ScriptingEventsHandler.java?view=diff&rev=500131&p1=struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/ScriptingEventsHandler.java&r1=499925&p2=struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/ScriptingEventsHandler.java&r2=500131 ============================================================================== --- struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/ScriptingEventsHandler.java (original) +++ struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/ScriptingEventsHandler.java Thu Jan 25 19:41:19 2007 @@ -1,5 +1,5 @@ /* - * $Id: BaseTemplateEngine.java 471756 2006-11-06 15:01:43Z husted $ + * $Id$ * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -18,7 +18,10 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.struts2.views.java; +package org.apache.struts2.views.java.simple; + +import org.apache.struts2.views.java.simple.AbstractTagHandler; +import org.apache.struts2.views.java.Attributes; import java.io.IOException; import java.util.Map; @@ -26,7 +29,7 @@ public class ScriptingEventsHandler extends AbstractTagHandler { /* (non-Javadoc) - * @see org.apache.struts2.views.java.AbstractTagHandler#start(java.lang.String, org.apache.struts2.views.java.Attributes) + * @see org.apache.struts2.views.java.simple.AbstractTagHandler#start(java.lang.String, org.apache.struts2.views.java.Attributes) */ @Override public void start(String name, Attributes a) throws IOException { Added: struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SelectHandler.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SelectHandler.java?view=auto&rev=500131 ============================================================================== --- struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SelectHandler.java (added) +++ struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SelectHandler.java Thu Jan 25 19:41:19 2007 @@ -0,0 +1,49 @@ +/* + * $Id$ + * + * 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 SelectHandler extends AbstractTagHandler implements TagGenerator { + + public void generate() throws IOException { + Map<String,Object> params = context.getParameters(); + Attributes a = new Attributes(); + + a.addDefaultToEmpty("name", params.get("name")) + .addIfExists("size", params.get("size")) + .addIfExists("value", params.get("nameValue"), false) + .addIfTrue("disabled", params.get("disabled")) + .addIfTrue("readonly", params.get("readonly")) + .addIfTrue("multiple", params.get("multiple")) + .addIfExists("tabindex", params.get("tagindex")) + .addIfExists("id", params.get("id")) + .addIfExists("class", params.get("cssClass")) + .addIfExists("style", params.get("cssStyle")) + .addIfExists("title", params.get("title")); + super.start("select", a); + super.end("select"); + } +} Propchange: struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SelectHandler.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SelectHandler.java ------------------------------------------------------------------------------ svn:keywords = Id Author Date Rev Copied: struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SimpleTheme.java (from r499925, struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/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?view=diff&rev=500131&p1=struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/SimpleTheme.java&r1=499925&p2=struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SimpleTheme.java&r2=500131 ============================================================================== --- struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/SimpleTheme.java (original) +++ struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SimpleTheme.java Thu Jan 25 19:41:19 2007 @@ -1,5 +1,5 @@ /* - * $Id: BaseTemplateEngine.java 471756 2006-11-06 15:01:43Z husted $ + * $Id$ * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -18,18 +18,24 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.struts2.views.java; +package org.apache.struts2.views.java.simple; + +import org.apache.struts2.views.java.DefaultTheme; +import org.apache.struts2.views.java.TagHandlerFactory; +import org.apache.struts2.views.java.DefaultTagHandlerFactory; +import org.apache.struts2.views.java.XHTMLTagSerializer; import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import java.util.Map; public class SimpleTheme extends DefaultTheme { public SimpleTheme() { setHandlerFactories(new HashMap<String,List<TagHandlerFactory>>() {{ put("text", new FactoryList(TextFieldHandler.class, ScriptingEventsHandler.class, CommonAttributesHandler.class)); + put("textfield", new FactoryList(TextFieldHandler.class, ScriptingEventsHandler.class, CommonAttributesHandler.class)); + put("select", new FactoryList(SelectHandler.class, ScriptingEventsHandler.class, CommonAttributesHandler.class)); }}); setName("simple"); } Copied: struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/TextFieldHandler.java (from r499925, struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/TextFieldHandler.java) URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/TextFieldHandler.java?view=diff&rev=500131&p1=struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/TextFieldHandler.java&r1=499925&p2=struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/TextFieldHandler.java&r2=500131 ============================================================================== --- struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/TextFieldHandler.java (original) +++ struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/TextFieldHandler.java Thu Jan 25 19:41:19 2007 @@ -1,5 +1,5 @@ /* - * $Id: BaseTemplateEngine.java 471756 2006-11-06 15:01:43Z husted $ + * $Id$ * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -18,15 +18,15 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.struts2.views.java; +package org.apache.struts2.views.java.simple; import java.io.IOException; import java.io.StringWriter; -import java.util.HashMap; import java.util.Map; import org.apache.struts2.components.Property; -import org.apache.struts2.components.template.TemplateRenderingContext; +import org.apache.struts2.views.java.TagGenerator; +import org.apache.struts2.views.java.Attributes; public class TextFieldHandler extends AbstractTagHandler implements TagGenerator { Added: struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/SimpleThemeTest.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/SimpleThemeTest.java?view=auto&rev=500131 ============================================================================== --- struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/SimpleThemeTest.java (added) +++ struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/SimpleThemeTest.java Thu Jan 25 19:41:19 2007 @@ -0,0 +1,93 @@ +/* + * $Id$ + * + * 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 com.opensymphony.xwork2.util.ValueStack; +import junit.framework.TestCase; +import org.apache.struts2.components.Component; +import org.apache.struts2.components.template.Template; +import org.apache.struts2.components.template.TemplateRenderingContext; +import org.easymock.EasyMock; + +import java.io.StringWriter; +import java.util.HashMap; +import java.util.Map; +import java.util.Stack; + +public class SimpleThemeTest extends TestCase { + + private SimpleTheme theme; + + private StringWriter writer; + private Map map; + + private Template template; + private Map stackContext; + private ValueStack stack; + private TemplateRenderingContext context; + + public void setUp() { + theme = new SimpleTheme(); + writer = new StringWriter(); + map = new HashMap(); + + template = org.easymock.classextension.EasyMock.createMock(Template.class); + stack = EasyMock.createMock(ValueStack.class); + stackContext = new HashMap(); + + context = new TemplateRenderingContext(template, writer, stack, map, null); + stackContext.put(Component.COMPONENT_STACK, new Stack()); + } + + public void prepareForTest() { + EasyMock.expect(stack.getContext()).andReturn(stackContext).anyTimes(); + EasyMock.replay(stack); + writer.getBuffer().delete(0, writer.getBuffer().length()); + } + + public void testRenderTextField() { + prepareForTest(); + theme.renderTag("textfield", context); + assertEquals("<input type=\"text\" name=\"\"></input>", writer.getBuffer().toString()); + + EasyMock.reset(stack); + prepareForTest(); + map.put("name", "name"); + map.put("accesskey", "accesskey"); + theme.renderTag("textfield", context); + assertEquals("<input type=\"text\" name=\"name\" accesskey=\"accesskey\"></input>", writer.getBuffer().toString()); + + } + + public void testRenderSelect() { + prepareForTest(); + map.put("name", "choose"); + theme.renderTag("select", context); + assertEquals("<select name=\"choose\"></select>", writer.getBuffer().toString()); + + EasyMock.reset(stack); + prepareForTest(); + map.put("multiple", true); + theme.renderTag("select", context); + assertEquals("<select name=\"choose\" multiple=\"multiple\"></select>", writer.getBuffer().toString()); + } + +} Propchange: struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/SimpleThemeTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/SimpleThemeTest.java ------------------------------------------------------------------------------ svn:keywords = Id Author Date Rev