You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by ws...@apache.org on 2006/07/12 07:08:18 UTC
svn commit: r421124 [2/3] -
/struts/struts1/trunk/taglib/src/test/java/org/apache/struts/taglib/TestTagUtils.java
Modified: struts/struts1/trunk/taglib/src/test/java/org/apache/struts/taglib/TestTagUtils.java
URL: http://svn.apache.org/viewvc/struts/struts1/trunk/taglib/src/test/java/org/apache/struts/taglib/TestTagUtils.java?rev=421124&r1=421123&r2=421124&view=diff
==============================================================================
--- struts/struts1/trunk/taglib/src/test/java/org/apache/struts/taglib/TestTagUtils.java (original)
+++ struts/struts1/trunk/taglib/src/test/java/org/apache/struts/taglib/TestTagUtils.java Tue Jul 11 22:08:17 2006
@@ -1,2191 +1,2191 @@
-/*
- * Copyright 2004-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.struts.taglib;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.struts.Globals;
-import org.apache.struts.action.ActionMessage;
-import org.apache.struts.action.ActionMessages;
-import org.apache.struts.config.ActionConfig;
-import org.apache.struts.config.ModuleConfig;
-import org.apache.struts.config.impl.ModuleConfigImpl;
-import org.apache.struts.mock.MockFormBean;
-import org.apache.struts.mock.MockHttpServletRequest;
-import org.apache.struts.mock.MockHttpServletResponse;
-import org.apache.struts.mock.MockPageContext;
-import org.apache.struts.mock.MockServletConfig;
-import org.apache.struts.mock.MockServletContext;
-import org.apache.struts.taglib.html.Constants;
-
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.PageContext;
-
-import java.net.MalformedURLException;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Locale;
-import java.util.Map;
-
-/**
- * Unit tests for the TagUtils.
- */
-public class TestTagUtils extends TagTestBase {
- private static final Log log = LogFactory.getLog(TestTagUtils.class);
-
- /**
- * Defines the testcase name for JUnit.
- *
- * @param theName the testcase's name.
- */
- public TestTagUtils(String theName) {
- super(theName);
- }
-
- /**
- * Start the tests.
- *
- * @param theArgs the arguments. Not used
- */
- public static void main(String[] theArgs) {
- junit.awtui.TestRunner.main(new String[] { TestTagUtils.class.getName() });
- }
-
- /**
- * @return a test suite (<code>TestSuite</code>) that includes all methods
- * starting with "test"
- */
- public static Test suite() {
- // All methods starting with "test" will be executed in the test suite.
- return new TestSuite(TestTagUtils.class);
- }
-
- /**
- * Test Operators.
- */
- public void testFilter() {
- assertNull("Null", null);
-
- // Test Null
- assertNull("Filter Test 1", tagutils.filter(null));
-
- // Test Empty String
- assertEquals("Filter Test 2", "", tagutils.filter(""));
-
- // Test Single Character
- assertEquals("Filter Test 3", "a", tagutils.filter("a"));
-
- // Test Multiple Characters
- assertEquals("Filter Test 4", "adhdfhdfhadhf",
- tagutils.filter("adhdfhdfhadhf"));
-
- // Test Each filtered Character
- assertEquals("Filter Test 5", "<", tagutils.filter("<"));
- assertEquals("Filter Test 6", ">", tagutils.filter(">"));
- assertEquals("Filter Test 7", "&", tagutils.filter("&"));
- assertEquals("Filter Test 8", """, tagutils.filter("\""));
- assertEquals("Filter Test 9", "'", tagutils.filter("'"));
-
- // Test filtering beginning, middle, end
- assertEquals("Filter Test 10", "a<", tagutils.filter("a<"));
- assertEquals("Filter Test 11", "<a", tagutils.filter("<a"));
- assertEquals("Filter Test 12", "a<a", tagutils.filter("a<a"));
-
- // Test filtering beginning, middle, end
- assertEquals("Filter Test 13", "abc<", tagutils.filter("abc<"));
- assertEquals("Filter Test 14", "<abc", tagutils.filter("<abc"));
- assertEquals("Filter Test 15", "abc<abc", tagutils.filter("abc<abc"));
-
- // Test Multiple Characters
- assertEquals("Filter Test 16",
- "<input type="text" value='Me & You'>",
- tagutils.filter("<input type=\"text\" value='Me & You'>"));
- }
-
- // ---------------------------------------------------- computeParameters()
- // No parameters and no transaction token
- public void testComputeParameters0a() {
- Map map = null;
-
- try {
- map = tagutils.computeParameters(pageContext, null, null, null,
- null, null, null, null, false);
- } catch (JspException e) {
- fail("JspException: " + e);
- }
-
- assertNull("Map is null", map);
- }
-
- // No parameters but add transaction token
- public void testComputeParameters0b() {
- request.getSession().setAttribute(Globals.TRANSACTION_TOKEN_KEY, "token");
-
- Map map = null;
-
- try {
- map = tagutils.computeParameters(pageContext, null, null, null,
- null, null, null, null, true);
- } catch (JspException e) {
- fail("JspException: " + e);
- }
-
- assertNotNull("Map is not null", map);
- assertEquals("One parameter in the returned map", 1, map.size());
- assertTrue("Transaction token parameter present",
- map.containsKey(Constants.TOKEN_KEY));
- assertEquals("Transaction token parameter value", "token",
- (String) map.get(Constants.TOKEN_KEY));
- }
-
- // invalid scope name is requested
- public void testComputeParametersInvalidScope() {
- Map map = null;
-
- try {
- map = tagutils.computeParameters(pageContext, null, null, null,
- "session", "i-do-not-exist", null, null, false);
-
- fail("JspException not thrown");
- } catch (JspException e) {
- assertNull("map is null", map);
- }
- }
-
- // specified bean is not found
- public void testComputeParametersBeanNotFound() {
- Map map = null;
-
- try {
- map = tagutils.computeParameters(pageContext, null, null, null,
- null, "i-do-not-exist", null, null, false);
-
- fail("JspException not thrown");
- } catch (JspException e) {
- assertNull("map is null", map);
- }
- }
-
- // accessing this property causes an exception
- public void testComputeParametersPropertyThrowsException() {
- request.getSession().setAttribute("SomeBean", new MockFormBean(true));
-
- Map map = null;
-
- try {
- map = tagutils.computeParameters(pageContext, null, null, null,
- null, "SomeBean", "justThrowAnException", null, false);
- fail("JspException not thrown");
- } catch (JspException e) {
- assertNull("map is null", map);
- }
- }
-
- public void testComputeParametersParamIdParamPropThrowException() {
- request.getSession().setAttribute("SomeBean", new MockFormBean(true));
-
- Map map = null;
-
- try {
- map = tagutils.computeParameters(pageContext, "paramId",
- "SomeBean", "justThrowAnException", null, null, null, null,
- false);
-
- fail("JspException not thrown");
- } catch (JspException e) {
- assertNull("map is null", map);
- }
- }
-
- public void testComputeParametersParamValueToString() {
- request.getSession().setAttribute("SomeBean",
- new MockFormBean(false, false, new Double(1)));
-
- Map map = null;
-
- try {
- map = tagutils.computeParameters(pageContext, "paramId",
- "SomeBean", "doubleValue", null, null, null, null, false);
-
- assertNotNull("map is null", map);
-
- String val = (String) map.get("paramId");
-
- assertTrue("paramId should be 1.0", "1.0".equals(val));
- } catch (JspException e) {
- fail("JspException not thrown");
- }
- }
-
- public void skiptestComputeParametersParamIdAsStringArray() {
- Map params = new HashMap();
-
- // String[] vals = new String[]{"test0, test1"};
- params.put("fooParamId", "fooParamValue");
-
- request.getSession().setAttribute("SomeBean", params);
-
- Map map = null;
-
- try {
- map = tagutils.computeParameters(pageContext, "fooParamId",
- "SomeBean", null, null, "SomeBean", null, null, false);
-
- // map = tagutils.computeParameters(
- // page, "paramId", "SomeBean", "stringArray", null,
- // null, null, null, false);
- assertNotNull("map is null", map);
-
- String val = (String) map.get("key0");
-
- assertTrue("paramId should be \"test\"", "1.0".equals(val));
- } catch (JspException e) {
- fail("JspException not thrown");
- }
- }
-
- // Single parameter -- name
- public void testComputeParameters1a() {
- request.getSession().setAttribute("attr", "bar");
-
- Map map = null;
-
- try {
- map = tagutils.computeParameters(pageContext, "foo", "attr", null,
- null, null, null, null, false);
- } catch (JspException e) {
- fail("JspException: " + e);
- }
-
- assertNotNull("Map is not null", map);
- assertEquals("One parameter in the returned map", 1, map.size());
- assertTrue("Parameter present", map.containsKey("foo"));
- assertEquals("Parameter value", "bar", (String) map.get("foo"));
- }
-
- // Single parameter -- scope + name
- public void testComputeParameters1b() {
- request.setAttribute("attr", "bar");
-
- Map map = null;
-
- try {
- map = tagutils.computeParameters(pageContext, "foo", "attr", null,
- "request", null, null, null, false);
- } catch (JspException e) {
- fail("JspException: " + e);
- }
-
- assertNotNull("Map is not null", map);
- assertEquals("One parameter in the returned map", 1, map.size());
- assertTrue("Parameter present", map.containsKey("foo"));
- assertEquals("Parameter value", "bar", (String) map.get("foo"));
- }
-
- // Single parameter -- scope + name + property
- public void testComputeParameters1c() {
- request.setAttribute("attr", new MockFormBean("bar"));
-
- Map map = null;
-
- try {
- map = tagutils.computeParameters(pageContext, "foo", "attr",
- "stringProperty", "request", null, null, null, false);
- } catch (JspException e) {
- fail("JspException: " + e);
- }
-
- assertNotNull("Map is not null", map);
- assertEquals("One parameter in the returned map", 1, map.size());
- assertTrue("Parameter present", map.containsKey("foo"));
- assertEquals("Parameter value", "bar", (String) map.get("foo"));
- }
-
- // Provided map -- name
- public void testComputeParameters2a() {
- Map map = new HashMap();
-
- map.put("foo1", "bar1");
- map.put("foo2", "bar2");
- request.getSession().setAttribute("attr", map);
-
- try {
- map = tagutils.computeParameters(pageContext, null, null, null,
- null, "attr", null, null, false);
- } catch (JspException e) {
- fail("JspException: " + e);
- }
-
- assertNotNull("Map is not null", map);
- assertEquals("Two parameter in the returned map", 2, map.size());
- assertTrue("Parameter foo1 present", map.containsKey("foo1"));
- assertEquals("Parameter foo1 value", "bar1", (String) map.get("foo1"));
- assertTrue("Parameter foo2 present", map.containsKey("foo2"));
- assertEquals("Parameter foo2 value", "bar2", (String) map.get("foo2"));
- }
-
- // Provided map -- scope + name
- public void testComputeParameters2b() {
- Map map = new HashMap();
-
- map.put("foo1", "bar1");
- map.put("foo2", "bar2");
- request.setAttribute("attr", map);
-
- try {
- map = tagutils.computeParameters(pageContext, null, null, null,
- null, "attr", null, "request", false);
- } catch (JspException e) {
- fail("JspException: " + e);
- }
-
- assertNotNull("Map is not null", map);
- assertEquals("Two parameter in the returned map", 2, map.size());
- assertTrue("Parameter foo1 present", map.containsKey("foo1"));
- assertEquals("Parameter foo1 value", "bar1", (String) map.get("foo1"));
- assertTrue("Parameter foo2 present", map.containsKey("foo2"));
- assertEquals("Parameter foo2 value", "bar2", (String) map.get("foo2"));
- }
-
- // Provided map -- scope + name + property
- public void testComputeParameters2c() {
- request.setAttribute("attr", new MockFormBean());
-
- Map map = null;
-
- try {
- map = tagutils.computeParameters(pageContext, null, null, null,
- null, "attr", "mapProperty", "request", false);
- } catch (JspException e) {
- fail("JspException: " + e);
- }
-
- assertNotNull("Map is not null", map);
- assertEquals("Two parameter in the returned map", 2, map.size());
- assertTrue("Parameter foo1 present", map.containsKey("foo1"));
- assertEquals("Parameter foo1 value", "bar1", (String) map.get("foo1"));
- assertTrue("Parameter foo2 present", map.containsKey("foo2"));
- assertEquals("Parameter foo2 value", "bar2", (String) map.get("foo2"));
- }
-
- // Provided map -- name with one key and two values
- public void testComputeParameters2d() {
- Map map = new HashMap();
-
- map.put("foo", new String[] { "bar1", "bar2" });
- request.getSession().setAttribute("attr", map);
-
- try {
- map = tagutils.computeParameters(pageContext, null, null, null,
- null, "attr", null, null, false);
- } catch (JspException e) {
- fail("JspException: " + e);
- }
-
- assertNotNull("Map is not null", map);
- assertEquals("One parameter in the returned map", 1, map.size());
- assertTrue("Parameter foo present", map.containsKey("foo"));
- assertTrue("Parameter foo value type",
- map.get("foo") instanceof String[]);
-
- String[] values = (String[]) map.get("foo");
-
- assertEquals("Values count", 2, values.length);
- }
-
- // Kitchen sink combination of parameters with a merge
- public void testComputeParameters3a() {
- request.setAttribute("attr", new MockFormBean("bar3"));
- request.getSession().setAttribute(Globals.TRANSACTION_TOKEN_KEY, "token");
-
- Map map = null;
-
- try {
- map = tagutils.computeParameters(pageContext, "foo1", "attr",
- "stringProperty", "request", "attr", "mapProperty",
- "request", true);
- } catch (JspException e) {
- fail("JspException: " + e);
- }
-
- assertNotNull("Map is not null", map);
- assertEquals("Three parameter in the returned map", 3, map.size());
-
- assertTrue("Parameter foo1 present", map.containsKey("foo1"));
- assertTrue("Parameter foo1 value type",
- map.get("foo1") instanceof String[]);
-
- String[] values = (String[]) map.get("foo1");
-
- assertEquals("Values count", 2, values.length);
-
- assertTrue("Parameter foo2 present", map.containsKey("foo2"));
- assertEquals("Parameter foo2 value", "bar2", (String) map.get("foo2"));
-
- assertTrue("Transaction token parameter present",
- map.containsKey(Constants.TOKEN_KEY));
- assertEquals("Transaction token parameter value", "token",
- (String) map.get(Constants.TOKEN_KEY));
- }
-
- // Kitchen sink combination of parameters with a merge
- // with array values in map
- public void testComputeParameters3aa() {
- request.setAttribute("attr", new MockFormBean("bar3"));
- request.getSession().setAttribute(Globals.TRANSACTION_TOKEN_KEY, "token");
-
- Map map = null;
-
- try {
- map = tagutils.computeParameters(pageContext, "foo1", "attr",
- "stringProperty", "request", "attr",
- "mapPropertyArrayValues", "request", true);
- } catch (JspException e) {
- fail("JspException: " + e);
- }
-
- assertNotNull("Map is not null", map);
- assertEquals("Three parameter in the returned map", 3, map.size());
-
- assertTrue("Parameter foo1 present", map.containsKey("foo1"));
- assertTrue("Parameter foo1 value type",
- map.get("foo1") instanceof String[]);
-
- String[] values = (String[]) map.get("foo1");
-
- assertEquals("Values count", 3, values.length);
-
- assertTrue("Parameter foo2 present", map.containsKey("foo2"));
-
- String[] arrayValues = (String[]) map.get("foo2");
- String val = arrayValues[0];
-
- assertEquals("Parameter foo2 value", "bar2", val);
-
- assertTrue("Transaction token parameter present",
- map.containsKey(Constants.TOKEN_KEY));
- assertEquals("Transaction token parameter value", "token",
- (String) map.get(Constants.TOKEN_KEY));
- }
-
- // Kitchen sink combination of parameters with a merge
- public void testComputeParameters3b() {
- request.setAttribute("attr", new MockFormBean("bar3"));
- request.getSession().setAttribute(Globals.TRANSACTION_TOKEN_KEY, "token");
-
- Map map = null;
-
- try {
- map = tagutils.computeParameters(pageContext, "foo1", "attr",
- "stringProperty", "request", "attr", "mapProperty",
- "request", true);
- } catch (JspException e) {
- fail("JspException: " + e);
- }
-
- assertNotNull("Map is not null", map);
- assertEquals("Three parameter in the returned map", 3, map.size());
-
- assertTrue("Parameter foo1 present", map.containsKey("foo1"));
- assertTrue("Parameter foo1 value type",
- map.get("foo1") instanceof String[]);
-
- String[] values = (String[]) map.get("foo1");
-
- assertEquals("Values count", 2, values.length);
-
- assertTrue("Parameter foo2 present", map.containsKey("foo2"));
- assertEquals("Parameter foo2 value", "bar2", (String) map.get("foo2"));
-
- assertTrue("Transaction token parameter present",
- map.containsKey(Constants.TOKEN_KEY));
- assertEquals("Transaction token parameter value", "token",
- (String) map.get(Constants.TOKEN_KEY));
- }
-
- // ----------------------------------------------------------- computeURL()
- // Default module -- Forward only
- public void testComputeURL1a() {
- request.setPathElements("/myapp", "/action.do", null, null);
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, "foo", null, null, null,
- null, null, null, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertEquals("url value", "/myapp/bar.jsp", url);
- }
-
- // Default module -- Href only
- public void testComputeURL1b() {
- request.setPathElements("/myapp", "/action.do", null, null);
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, null, "http://foo.com/bar",
- null, null, null, null, null, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertEquals("url value", "http://foo.com/bar", url);
- }
-
- // Default module -- Page only
- public void testComputeURL1c() {
- request.setPathElements("/myapp", "/action.do", null, null);
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, null, null, "/bar", null,
- null, null, null, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertEquals("url value", "/myapp/bar", url);
- }
-
- // Default module -- Forward with pattern
- public void testComputeURL1d() {
- moduleConfig.getControllerConfig().setForwardPattern("$C/WEB-INF/pages$M$P");
- request.setPathElements("/myapp", "/action.do", null, null);
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, "foo", null, null, null,
- null, null, null, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertEquals("url value", "/myapp/WEB-INF/pages/bar.jsp", url);
- }
-
- // Default module -- Page with pattern
- public void testComputeURL1e() {
- moduleConfig.getControllerConfig().setPagePattern("$C/WEB-INF/pages$M$P");
- request.setPathElements("/myapp", "/action.do", null, null);
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, null, null, "/bar", null,
- null, null, null, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertEquals("url value", "/myapp/WEB-INF/pages/bar", url);
- }
-
- // Default module -- Forward with relative path (non-context-relative)
- public void testComputeURL1f() {
- request.setPathElements("/myapp", "/action.do", null, null);
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, "relative1", null, null,
- null, null, null, null, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertEquals("url value",
- // "/myapp/relative.jsp",
- "relative.jsp", url);
- }
-
- // Default module -- Forward with relative path (context-relative)
- public void testComputeURL1g() {
- request.setPathElements("/myapp", "/action.do", null, null);
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, "relative2", null, null,
- null, null, null, null, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertEquals("url value",
- // "/myapp/relative.jsp",
- "relative.jsp", url);
- }
-
- // Default module -- Forward with external path
- public void testComputeURL1h() {
- request.setPathElements("/myapp", "/action.do", null, null);
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, "external", null, null,
- null, null, null, null, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertEquals("url value", "http://struts.apache.org/", url);
- }
-
- // Second module -- Forward only
- public void testComputeURL2a() {
- request.setAttribute(Globals.MODULE_KEY, moduleConfig2);
- request.setPathElements("/myapp", "/2/action.do", null, null);
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, "foo", null, null, null,
- null, null, null, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertEquals("url value", "/myapp/2/baz.jsp", url);
- }
-
- // Second module -- Href only
- public void testComputeURL2b() {
- request.setAttribute(Globals.MODULE_KEY, moduleConfig2);
- request.setPathElements("/myapp", "/2/action.do", null, null);
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, null, "http://foo.com/bar",
- null, null, null, null, null, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertEquals("url value", "http://foo.com/bar", url);
- }
-
- // Second module -- Page only
- public void testComputeURL2c() {
- request.setAttribute(Globals.MODULE_KEY, moduleConfig2);
- request.setPathElements("/myapp", "/2/action.do", null, null);
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, null, null, "/bar", null,
- null, null, null, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertEquals("url value", "/myapp/2/bar", url);
- }
-
- // Default module -- Forward with pattern
- public void testComputeURL2d() {
- request.setAttribute(Globals.MODULE_KEY, moduleConfig2);
- moduleConfig2.getControllerConfig().setForwardPattern("$C/WEB-INF/pages$M$P");
- request.setPathElements("/myapp", "/2/action.do", null, null);
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, "foo", null, null, null,
- null, null, null, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertEquals("url value", "/myapp/WEB-INF/pages/2/baz.jsp", url);
- }
-
- // Second module -- Page with pattern
- public void testComputeURL2e() {
- moduleConfig2.getControllerConfig().setPagePattern("$C/WEB-INF/pages$M$P");
- request.setAttribute(Globals.MODULE_KEY, moduleConfig2);
- request.setPathElements("/myapp", "/2/action.do", null, null);
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, null, null, "/bar", null,
- null, null, null, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertEquals("url value", "/myapp/WEB-INF/pages/2/bar", url);
- }
-
- // Second module -- Forward with relative path (non-context-relative)
- public void testComputeURL2f() {
- request.setAttribute(Globals.MODULE_KEY, moduleConfig2);
- request.setPathElements("/myapp", "/2/action.do", null, null);
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, "relative1", null, null,
- null, null, null, null, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertEquals("url value",
- // "/myapp/2/relative.jsp",
- "relative.jsp", url);
- }
-
- // Second module -- Forward with relative path (context-relative)
- public void testComputeURL2g() {
- request.setAttribute(Globals.MODULE_KEY, moduleConfig2);
- request.setPathElements("/myapp", "/2/action.do", null, null);
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, "relative2", null, null,
- null, null, null, null, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertEquals("url value",
- // "/myapp/relative.jsp",
- "relative.jsp", url);
- }
-
- // Second module -- Forward with external path
- public void testComputeURL2h() {
- request.setAttribute(Globals.MODULE_KEY, moduleConfig2);
- request.setPathElements("/myapp", "/2/action.do", null, null);
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, "external", null, null,
- null, null, null, null, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertEquals("url value", "http://struts.apache.org/", url);
- }
-
- // Add parameters only -- forward URL
- public void testComputeURL3a() {
- request.setPathElements("/myapp", "/action.do", null, null);
-
- Map map = new HashMap();
-
- map.put("foo1", "bar1");
- map.put("foo2", "bar2");
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, null, null, "/bar", null,
- null, map, null, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertTrue("url value",
- url.equals("/myapp/bar?foo1=bar1&foo2=bar2")
- || url.equals("/myapp/bar?foo2=bar2&foo1=bar1"));
- }
-
- // Add anchor only -- forward URL
- public void testComputeURL3b() {
- request.setPathElements("/myapp", "/action.do", null, null);
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, null, null, "/bar", null,
- null, null, "anchor", false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertEquals("url value", "/myapp/bar#anchor", url);
- }
-
- // Add parameters + anchor -- forward URL
- public void testComputeURL3c() {
- request.setPathElements("/myapp", "/action.do", null, null);
-
- Map map = new HashMap();
-
- map.put("foo1", "bar1");
- map.put("foo2", "bar2");
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, null, null, "/bar", null,
- null, map, "anchor", false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertTrue("url value",
- url.equals("/myapp/bar?foo1=bar1&foo2=bar2#anchor")
- || url.equals("/myapp/bar?foo2=bar2&foo1=bar1#anchor"));
- }
-
- // Add parameters only -- redirect URL
- public void testComputeURL3d() {
- request.setPathElements("/myapp", "/action.do", null, null);
-
- Map map = new HashMap();
-
- map.put("foo1", "bar1");
- map.put("foo2", "bar2");
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, null, null, "/bar", null,
- null, map, null, true);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertTrue("url value",
- url.equals("/myapp/bar?foo1=bar1&foo2=bar2")
- || url.equals("/myapp/bar?foo2=bar2&foo1=bar1"));
- }
-
- // Add anchor only -- redirect URL
- public void testComputeURL3e() {
- request.setPathElements("/myapp", "/action.do", null, null);
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, null, null, "/bar", null,
- null, null, "anchor", true);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertEquals("url value", "/myapp/bar#anchor", url);
- }
-
- // Add parameters + anchor -- redirect URL
- public void testComputeURL3f() {
- request.setPathElements("/myapp", "/action.do", null, null);
-
- Map map = new HashMap();
-
- map.put("foo1", "bar1");
- map.put("foo2", "bar2");
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, null, null, "/bar", null,
- null, map, "anchor", false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertTrue("url value",
- url.equals("/myapp/bar?foo1=bar1&foo2=bar2#anchor")
- || url.equals("/myapp/bar?foo2=bar2&foo1=bar1#anchor"));
- }
-
- // Add parameters only -- forward URL -- do not encode seperator
- public void testComputeURL3g() {
- request.setPathElements("/myapp", "/action.do", null, null);
-
- Map map = new HashMap();
-
- map.put("foo1", "bar1");
- map.put("foo2", "bar2");
-
- String url = null;
-
- try {
- url = tagutils.computeURLWithCharEncoding(pageContext, null, null,
- "/bar", null, null, map, null, false, false, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertTrue("url value",
- url.equals("/myapp/bar?foo1=bar1&foo2=bar2")
- || url.equals("/myapp/bar?foo2=bar2&foo1=bar1"));
- }
-
- // Add parameters only
- // -- forward URL
- // -- do not encode seperator
- // -- send param with null value
- public void testComputeURL3h() {
- request.setPathElements("/myapp", "/action.do", null, null);
-
- Map map = new HashMap();
-
- map.put("foo1", null);
-
- String url = null;
-
- try {
- url = tagutils.computeURLWithCharEncoding(pageContext, null, null,
- "/bar", null, null, map, null, false, false, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertTrue("url value", url.equals("/myapp/bar?foo1="));
- }
-
- // Add parameters only
- // -- forward URL
- // -- do not encode seperator
- // -- send param with null value
- // -- add ? to page
- public void testComputeURL3i() {
- request.setPathElements("/myapp", "/action.do", null, null);
-
- Map map = new HashMap();
-
- map.put("foo1", null);
-
- String url = null;
-
- try {
- url = tagutils.computeURLWithCharEncoding(pageContext, null, null,
- "/bar?", null, null, map, null, false, false, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertTrue("url value", url.equals("/myapp/bar?&foo1="));
- }
-
- // Add parameters only
- // -- forward URL
- // -- do not encode seperator
- // -- send param with null value
- // -- add ? and param to page
- public void testComputeURL3j() {
- request.setPathElements("/myapp", "/action.do", null, null);
-
- Map map = new HashMap();
-
- map.put("foo1", null);
- map.put("foo2", "bar2");
-
- String url = null;
-
- try {
- url = tagutils.computeURLWithCharEncoding(pageContext, null, null,
- "/bar?a=b", null, null, map, null, false, false, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertTrue("url value",
- url.equals("/myapp/bar?a=b&foo1=&foo2=bar2")
- || url.equals("/myapp/bar?a=b&foo2=bar2&foo1="));
- }
-
- // -- Add Parameters
- // -- Parameter as String Array
- public void testComputeURL3k() {
- request.setPathElements("/myapp", "/action.do", null, null);
-
- Map map = new HashMap();
-
- map.put("foo1", new String[] { "bar1", "baz1" });
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, null, null, "/bar", null,
- null, map, null, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertTrue("url value",
- url.equals("/myapp/bar?foo1=bar1&foo1=baz1")
- || url.equals("/myapp/bar?foo1=baz1&foo1=bar1"));
- }
-
- // -- Add Parameters
- // -- Parameter as non String or String Array
- public void testComputeURL3l() {
- request.setPathElements("/myapp", "/action.do", null, null);
-
- Map map = new HashMap();
-
- map.put("foo1", new Double(0));
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, null, null, "/bar", null,
- null, map, null, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertTrue("url value", url.equals("/myapp/bar?foo1=0.0"));
- }
-
- // -- Add Parameters
- // -- Parameter as non String or String Array
- // -- with ? on path
- public void testComputeURL3m() {
- request.setPathElements("/myapp", "/action.do", null, null);
-
- Map map = new HashMap();
-
- map.put("foo1", new Double(0));
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, null, null, "/bar?", null,
- null, map, null, false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertTrue("url value", url.equals("/myapp/bar?&foo1=0.0"));
- }
-
- public void testComputeURLCharacterEncoding() {
- request.setPathElements("/myapp", "/action.do", null, null);
-
- String url = null;
-
- try {
- url = tagutils.computeURLWithCharEncoding(pageContext, "foo", null,
- null, null, null, null, null, false, true, true);
- fail("Exception not thrown");
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- } catch (UnsupportedOperationException e) {
- assertNull("url should be null", url);
- }
- }
-
- public void testComputeURLCharacterEncodingMultipleSpecifier() {
- verifyBadSetOfSpecifiers("foo", "foo", null, null);
- verifyBadSetOfSpecifiers("foo", null, "foo", null);
- verifyBadSetOfSpecifiers("foo", null, null, "foo");
-
- verifyBadSetOfSpecifiers(null, "foo", "foo", null);
- verifyBadSetOfSpecifiers(null, "foo", null, "foo");
-
- verifyBadSetOfSpecifiers(null, null, "foo", "foo");
- }
-
- public void testComputeURLCharacterEncodingAction() {
- ActionConfig actionConfig = new ActionConfig();
-
- actionConfig.setName("baz");
- actionConfig.setPath("/baz");
-
- moduleConfig.addActionConfig(actionConfig);
-
- request.setPathElements("/myapp", "/foo.do", null, null);
-
- Map map = new HashMap();
-
- map.put("foo1", "bar1");
- map.put("foo2", "bar2");
-
- String url = null;
-
- try {
- url = tagutils.computeURL(pageContext, null, null, null, "baz",
- null, map, "anchor", false);
- } catch (MalformedURLException e) {
- fail("MalformedURLException: " + e);
- }
-
- assertNotNull("url present", url);
- assertTrue("url value",
- url.equals("/myapp/baz?foo1=bar1&foo2=bar2#anchor")
- || url.equals("/myapp/baz?foo2=bar2&foo1=bar1#anchor"));
- }
-
- // -------------------------------------------------------------- pageURL()
- // Default module (default pagePattern)
- public void testPageURL1() {
- request.setAttribute(Globals.MODULE_KEY, moduleConfig);
- request.setPathElements("/myapp", "/action.do", null, null);
-
- String page = null;
- String result = null;
-
- // Straight substitution
- page = "/mypages/index.jsp";
- result = tagutils.pageURL(request, page, moduleConfig);
- assertNotNull("straight sub found", result);
- assertEquals("straight sub value", "/mypages/index.jsp", result);
- }
-
- // Second module (default pagePattern)
- public void testPageURL2() {
- request.setAttribute(Globals.MODULE_KEY, moduleConfig2);
- request.setPathElements("/myapp", "/2/action.do", null, null);
-
- String page = null;
- String result = null;
-
- // Straight substitution
- page = "/mypages/index.jsp";
- result = tagutils.pageURL(request, page, moduleConfig2);
- assertNotNull("straight sub found", result);
- assertEquals("straight sub value", "/2/mypages/index.jsp", result);
- }
-
- // Third module (custom pagePattern)
- // TODO finish me
- public void testPageURL3a() {
- request.setAttribute(Globals.MODULE_KEY, moduleConfig3);
- request.setPathElements("/myapp", "/3/action.do", null, null);
-
- // String page = null;
- // String result = null;
- }
-
- // Third module (custom pagePattern)
- public void testPageURL3b() {
- request.setAttribute(Globals.MODULE_KEY, moduleConfig3);
- request.setPathElements("/myapp", "/3/action.do", null, null);
-
- String page = null;
- String result = null;
-
- // Straight substitution
- page = "/mypages/index.jsp";
- result = tagutils.pageURL(request, page, moduleConfig3);
- assertNotNull("straight sub found", result);
- assertEquals("straight sub value", "/3/mypages/index.jsp", result);
- }
-
- /**
- * Helper method that verifies the supplied specifiers.
- *
- * @param forward The forward specified
- * @param href The href specified
- * @param pageString The pageString specified
- * @param action The action specified
- */
- private void verifyBadSetOfSpecifiers(String forward, String href,
- String pageString, String action) {
- String url = null;
-
- try {
- url = tagutils.computeURLWithCharEncoding(pageContext, forward,
- href, pageString, action, null, null, null, false, true,
- false);
- } catch (MalformedURLException e) {
- assertNull("url should be null", url);
- } catch (UnsupportedOperationException e) {
- fail("MalformedURLException not thrown");
- }
- }
-
- // -------------------------------------------------------------- encodeURL()
- // Default module (default pagePattern)
- public void testencodeURL1() {
- String encodedURL = null;
-
- encodedURL = tagutils.encodeURL("foo-bar.baz");
- assertEquals("encode url", "foo-bar.baz", encodedURL);
- }
-
- // ------------------------------------------ getActionErrors()
- // ActionErrors
- public void testGetActionErrors1a() {
- ActionMessages actionErrors = new ActionMessages();
-
- actionErrors.add("prop", new ActionMessage("key.key"));
- request.setAttribute("errors", actionErrors);
-
- try {
- ActionMessages errors =
- tagutils.getActionMessages(pageContext, "errors");
-
- assertNotNull("errors should not be null", errors);
- assertNotNull("errors prop should not be null", errors.get("prop"));
-
- String val = null;
- int i = 0;
-
- for (Iterator iter = errors.get("prop"); iter.hasNext();) {
- ActionMessage error = (ActionMessage) iter.next();
-
- val = error.getKey();
- i++;
- }
-
- assertEquals("only 1 error", i, 1);
- assertEquals("errors prop should match", val, "key.key");
- } catch (JspException e) {
- fail(e.getMessage());
- }
- }
-
- // String
- public void testGetActionErrors1b() {
- request.setAttribute("foo", "bar");
-
- try {
- ActionMessages errors =
- tagutils.getActionMessages(pageContext, "foo");
-
- assertNotNull("errors should not be null", errors);
- assertNotNull("errors prop should not be null", errors.get("prop"));
-
- String key = null;
- int i = 0;
-
- for (Iterator iter = errors.get(ActionMessages.GLOBAL_MESSAGE);
- iter.hasNext();) {
- ActionMessage error = (ActionMessage) iter.next();
-
- key = error.getKey();
-
- Object[] values = error.getValues();
-
- assertNull(values);
- i++;
- }
-
- assertEquals("only 1 error", i, 1);
- assertEquals("key should match", key, "bar");
- } catch (JspException e) {
- fail(e.getMessage());
- }
- }
-
- // String Array
- public void testGetActionErrors1c() {
- String[] vals = new String[] { "bar", "baz" };
-
- request.setAttribute("foo", vals);
-
- try {
- ActionMessages errors =
- tagutils.getActionMessages(pageContext, "foo");
-
- assertNotNull("errors should not be null", errors);
- assertNotNull("errors prop should not be null", errors.get("prop"));
-
- String key = null;
- int i = 0;
-
- for (Iterator iter = errors.get(ActionMessages.GLOBAL_MESSAGE);
- iter.hasNext();) {
- ActionMessage error = (ActionMessage) iter.next();
-
- key = error.getKey();
-
- Object[] values = error.getValues();
-
- assertNull((values));
- assertEquals("1st key should match", key, vals[i]);
- i++;
- }
-
- assertEquals("only 1 error", i, 2);
- } catch (JspException e) {
- fail(e.getMessage());
- }
- }
-
- // String Array (thrown JspException)
- public void testGetActionErrors1d() {
- request.setAttribute("foo", new MockFormBean());
-
- ActionMessages errors = null;
-
- try {
- errors = tagutils.getActionMessages(pageContext, "foo");
- fail("should have thrown JspException");
- } catch (JspException e) {
- assertNull("errors should be null", errors);
- }
- }
-
- // ActionErrors (thrown Exception)
- // TODO -- currently this does not hit the line for caught Exception
- public void testGetActionErrors1e() {
- ActionMessages actionErrors = new ActionMessages();
-
- actionErrors.add("prop", new ActionMessage("key.key"));
- request.setAttribute("errors", actionErrors);
-
- try {
- ActionMessages errors =
- tagutils.getActionMessages(pageContext, "does-not-exist");
-
- assertNotNull("errors should not be null", errors);
- assertNotNull("errors prop should not be null", errors.get("prop"));
-
- for (Iterator iter = errors.get("prop"); iter.hasNext();) {
- fail("Should not have any errors for does-not-exist");
- }
- } catch (JspException e) {
- fail(e.getMessage());
- }
- }
-
- // ------------------------------------------ getActionMappingName()
- public void testGetActionMappingName1() {
- String[] paths =
- {
- "foo", "foo.do", "foo?foo=bar", "foo?foo=bar&bar=baz",
- "foo?foo=bar&bar=baz"
- };
-
- String[][] prepends =
- {
- { "", "/foo" },
- { "/", "/foo" },
- { "bar/", "/bar/foo" },
- { "/bar/", "/bar/foo" }
- };
-
- String[] appends =
- {
- "", "#anchor", "?", "?#", "?foo=bar", "?foo1=bar1&foo2=bar2",
- "?foo1=bar1&foo2=bar2"
- };
-
- String finalResult = null;
-
- String path = null;
- String results = null;
- boolean equality = false;
- int ct = 0;
-
- for (int i = 0; i < appends.length; i++) {
- for (int j = 0; j < prepends.length; j++) {
- finalResult = prepends[j][1];
-
- for (int k = 0; k < paths.length; k++) {
- path = prepends[j][0] + paths[k] + appends[i];
- results = tagutils.getActionMappingName(path);
- equality = finalResult.equals(results);
-
- if (!equality) {
- fail("Path does not return correct result\n"
- + "\nexpected: " + results + "\nfound: " + path);
- }
-
- assertTrue("Path should translate to result", equality);
- ct++;
- }
- }
- }
-
- log.debug(ct + " assertions run in this test");
- }
-
- public void testString_getActionMappingURL_String_PageContext() {
- ActionConfig actionConfig = new ActionConfig();
-
- actionConfig.setParameter("/foo");
- moduleConfig.addActionConfig(actionConfig);
-
- request.setAttribute(Globals.MODULE_KEY, moduleConfig);
- request.setPathElements("/myapp", "/foo.do", null, null);
-
- assertEquals("Check path /foo",
- tagutils.getActionMappingURL("/foo", pageContext), "/myapp/foo");
- }
-
- // use servlet mapping (extension mapping)
- public void testString_getActionMappingURL_String_String_PageContext_boolean1() {
- pageContext.getServletContext().setAttribute(Globals.SERVLET_KEY, "*.do");
-
- ActionConfig actionConfig = new ActionConfig();
-
- actionConfig.setParameter("/foo");
- moduleConfig.addActionConfig(actionConfig);
-
- request.setAttribute(Globals.MODULE_KEY, moduleConfig);
- request.setPathElements("/myapp", "/baz.do", null, null);
-
- assertEquals("Check path /foo",
- tagutils.getActionMappingURL("/foo", pageContext), "/myapp/foo.do");
- }
-
- // use servlet mapping (extension mapping)
- // -- with params
- public void testString_getActionMappingURL_String_String_PageContext_boolean2() {
- pageContext.getServletContext().setAttribute(Globals.SERVLET_KEY, "*.do");
-
- ActionConfig actionConfig = new ActionConfig();
-
- actionConfig.setParameter("/foo");
- moduleConfig.addActionConfig(actionConfig);
-
- request.setAttribute(Globals.MODULE_KEY, moduleConfig);
- request.setPathElements("/myapp", "/baz.do?foo=bar", null, null);
-
- assertEquals("Check path /foo",
- tagutils.getActionMappingURL("/foo?foo=bar", pageContext),
- "/myapp/foo.do?foo=bar");
- }
-
- // use servlet mapping (extension mapping)
- // -- path as "/"
- // (this is probably not a realistic use case)
- public void testString_getActionMappingURL_String_String_PageContext_boolean3() {
- pageContext.getServletContext().setAttribute(Globals.SERVLET_KEY, "*.do");
-
- ActionConfig actionConfig = new ActionConfig();
-
- actionConfig.setParameter("/foo");
- moduleConfig.addActionConfig(actionConfig);
-
- request.setAttribute(Globals.MODULE_KEY, moduleConfig);
- request.setPathElements("/mycontext", "/baz", null, null);
-
- assertEquals("Check path /foo",
- tagutils.getActionMappingURL("/", pageContext), "/mycontext/.do");
- }
-
- // use servlet mapping (path mapping)
- public void testString_getActionMappingURL_String_String_PageContext_boolean4() {
- pageContext.getServletContext().setAttribute(Globals.SERVLET_KEY,
- "/myapp/*");
-
- ActionConfig actionConfig = new ActionConfig();
-
- actionConfig.setParameter("/foo");
- moduleConfig.addActionConfig(actionConfig);
-
- request.setAttribute(Globals.MODULE_KEY, moduleConfig);
- request.setPathElements("/mycontext", "/baz", null, null);
-
- assertEquals("Check path /foo",
- tagutils.getActionMappingURL("/foo", pageContext),
- "/mycontext/myapp/foo");
- }
-
- // use servlet mapping (path mapping)
- // -- with params
- public void testString_getActionMappingURL_String_String_PageContext_boolean5() {
- pageContext.getServletContext().setAttribute(Globals.SERVLET_KEY,
- "/myapp/*");
-
- ActionConfig actionConfig = new ActionConfig();
-
- actionConfig.setParameter("/foo");
- moduleConfig.addActionConfig(actionConfig);
-
- request.setAttribute(Globals.MODULE_KEY, moduleConfig);
- request.setPathElements("/mycontext", "/baz?foo=bar", null, null);
-
- assertEquals("Check path /foo",
- tagutils.getActionMappingURL("/foo?foo=bar", pageContext),
- "/mycontext/myapp/foo?foo=bar");
- }
-
- // use servlet mapping (path mapping)
- // -- using "/" as mapping
- public void testString_getActionMappingURL_String_String_PageContext_boolean6() {
- pageContext.getServletContext().setAttribute(Globals.SERVLET_KEY, "/");
-
- ActionConfig actionConfig = new ActionConfig();
-
- actionConfig.setParameter("/foo");
- moduleConfig.addActionConfig(actionConfig);
-
- request.setAttribute(Globals.MODULE_KEY, moduleConfig);
- request.setPathElements("/mycontext", "/baz", null, null);
-
- assertEquals("Check path /foo",
- tagutils.getActionMappingURL("/", pageContext), "/mycontext/");
- }
-
- // ------------------------------------------ getActionMessages()
- // -- using ActionMessages
- public void testActionMessages_getActionMessages_PageContext_String1() {
- ActionMessages actionMessages = new ActionMessages();
-
- actionMessages.add("prop", new ActionMessage("key.key"));
- request.setAttribute("messages", actionMessages);
-
- try {
- ActionMessages messages =
- tagutils.getActionMessages(pageContext, "messages");
-
- assertNotNull("messages should not be null", messages);
- assertNotNull("messages prop should not be null",
- messages.get("prop"));
-
- String val = null;
- int i = 0;
-
- for (Iterator iter = messages.get("prop"); iter.hasNext();) {
- ActionMessage message = (ActionMessage) iter.next();
-
- val = message.getKey();
- i++;
- }
-
- assertEquals("only 1 message", i, 1);
- assertEquals("messages prop should match", val, "key.key");
- } catch (JspException e) {
- fail(e.getMessage());
- }
- }
-
- // -- using ActionErrors
- public void testActionMessages_getActionMessages_PageContext_String2() {
- ActionMessages actionMessages = new ActionMessages();
-
- actionMessages.add("prop", new ActionMessage("key.key"));
- request.setAttribute("messages", actionMessages);
-
- try {
- ActionMessages messages =
- tagutils.getActionMessages(pageContext, "messages");
-
- assertNotNull("messages should not be null", messages);
- assertNotNull("messages prop should not be null",
- messages.get("prop"));
-
- String val = null;
- int i = 0;
-
- for (Iterator iter = messages.get("prop"); iter.hasNext();) {
- ActionMessage message = (ActionMessage) iter.next();
-
- val = message.getKey();
- i++;
- }
-
- assertEquals("only 1 message", i, 1);
- assertEquals("messages prop should match", val, "key.key");
- } catch (JspException e) {
- fail(e.getMessage());
- }
- }
-
- // -- using String
- public void testActionMessages_getActionMessages_PageContext_String3() {
- request.setAttribute("foo", "bar");
-
- try {
- ActionMessages messages =
- tagutils.getActionMessages(pageContext, "foo");
-
- assertNotNull("messages should not be null", messages);
- assertNotNull("messages prop should not be null",
- messages.get("prop"));
-
- String key = null;
- int i = 0;
-
- for (Iterator iter = messages.get(ActionMessages.GLOBAL_MESSAGE);
- iter.hasNext();) {
- ActionMessage message = (ActionMessage) iter.next();
-
- key = message.getKey();
-
- Object[] values = message.getValues();
-
- assertNull(values);
- i++;
- }
-
- assertEquals("only 1 message", i, 1);
- assertEquals("key should match", key, "bar");
- } catch (JspException e) {
- fail(e.getMessage());
- }
- }
-
- // -- using String Array
- public void testActionMessages_getActionMessages_PageContext_String4() {
- String[] vals = new String[] { "bar", "baz" };
-
- request.setAttribute("foo", vals);
-
- try {
- ActionMessages messages =
- tagutils.getActionMessages(pageContext, "foo");
-
- assertNotNull("messages should not be null", messages);
- assertNotNull("messages prop should not be null",
- messages.get("prop"));
-
- String key = null;
- int i = 0;
-
- for (Iterator iter = messages.get(ActionMessages.GLOBAL_MESSAGE);
- iter.hasNext();) {
- ActionMessage message = (ActionMessage) iter.next();
-
- key = message.getKey();
-
- Object[] values = message.getValues();
-
- assertNull((values));
- assertEquals("1st key should match", key, vals[i]);
- i++;
- }
-
- assertEquals("only 1 message", i, 2);
- } catch (JspException e) {
- fail(e.getMessage());
- }
- }
-
- // String Array (thrown JspException)
- public void testActionMessages_getActionMessages_PageContext_String5() {
- request.setAttribute("foo", new MockFormBean());
-
- ActionMessages messages = null;
-
- try {
- messages = tagutils.getActionMessages(pageContext, "foo");
- fail("should have thrown JspException");
- } catch (JspException e) {
- assertNull("messages should be null", messages);
- }
- }
-
- // ActionMessages (thrown Exception)
- // TODO -- currently this does not hit the line for caught Exception
- public void testActionMessages_getActionMessages_PageContext_String6() {
- ActionMessages actionMessages = new ActionMessages();
-
- actionMessages.add("prop", new ActionMessage("key.key"));
- request.setAttribute("messages", actionMessages);
-
- try {
- ActionMessages messages =
- tagutils.getActionMessages(pageContext, "does-not-exist");
-
- assertNotNull("messages should not be null", messages);
- assertNotNull("messages prop should not be null",
- messages.get("prop"));
-
- for (Iterator iter = messages.get("prop"); iter.hasNext();) {
- fail("Should not have any messages for does-not-exist");
- }
- } catch (JspException e) {
- fail(e.getMessage());
- }
- }
-
- // ----public ModuleConfig getModuleConfig(PageContext pageContext)
- public void testModuleConfig_getModuleConfig_PageContext() {
- MockServletConfig mockServletConfig = new MockServletConfig();
- ModuleConfig moduleConfig = new ModuleConfigImpl("");
- MockServletContext mockServletContext = new MockServletContext();
- MockHttpServletRequest mockHttpServletRequest =
- new MockHttpServletRequest();
- MockHttpServletResponse mockHttpServletResponse =
- new MockHttpServletResponse();
-
- mockServletConfig.setServletContext(mockServletContext);
-
- MockPageContext mockPageContext =
- new MockPageContext(mockServletConfig, mockHttpServletRequest,
- mockHttpServletResponse);
-
- ModuleConfig foundModuleConfig = null;
-
- try {
- foundModuleConfig = tagutils.getModuleConfig(mockPageContext);
- fail("Expected ModuleConfig to not be found");
- } catch (NullPointerException ignore) {
- // expected result
- }
-
- mockHttpServletRequest.setAttribute(Globals.MODULE_KEY, moduleConfig);
-
- mockPageContext.getServletContext().setAttribute(Globals.MODULE_KEY,
- mockPageContext);
-
- foundModuleConfig = tagutils.getModuleConfig(mockPageContext);
- assertNotNull(foundModuleConfig);
- }
-
- // -- public Locale getUserLocale(PageContext pageContext, String locale)
- public void testLocale_getUserLocale_PageContext_String() {
- request.setLocale(Locale.ENGLISH);
- assertEquals(tagutils.getUserLocale(pageContext, ""), Locale.ENGLISH);
-
- request.setLocale(Locale.CANADA);
- assertEquals(tagutils.getUserLocale(pageContext, ""), Locale.CANADA);
- }
-
- // -- public boolean isXhtml(PageContext pageContext)
- public void test_boolean_isXhtml_PageContext() {
- assertFalse(tagutils.isXhtml(pageContext));
- pageContext.setAttribute(Globals.XHTML_KEY, "true");
-
- assertTrue(tagutils.isXhtml(pageContext));
- }
-
- // -- public Object lookup(PageContext pageContext, String name, String scopeName)
- // lookup with null scope
- public void test_Object_lookup_PageContext_String__String1() {
- pageContext.setAttribute("bean", new MockFormBean());
-
- try {
- Object val = tagutils.lookup(pageContext, "bean", null);
-
- assertNotNull((val));
- } catch (JspException e) {
- fail("bean not found:" + e.getMessage());
- }
- }
-
- // lookup with page scope
- public void test_Object_lookup_PageContext_String__String2() {
- pageContext.setAttribute("bean", new MockFormBean());
-
- try {
- Object val = tagutils.lookup(pageContext, "bean", "page");
-
- assertNotNull((val));
- } catch (JspException e) {
- fail("bean not found:" + e.getMessage());
- }
- }
-
- // lookup with invalid scope
- // -- (where an exception is thrown)
- public void test_Object_lookup_PageContext_String__String3() {
- pageContext.setAttribute("bean", new MockFormBean());
-
- Object val = null;
-
- try {
- val = tagutils.lookup(pageContext, "bean", "invalid");
- fail("invalid scope :");
- } catch (JspException e) {
- assertNull((val));
- }
- }
-
- // try to get the call to throw an IllegalAccessException
- public void test_Object_lookup_PageContext_String_String_String1() {
- // page.setAttribute("bean", new MockFormBean());
- // Object val = null;
- // try {
- // val = tagutils.lookup(page, "bean", "throwIllegalAccessException");
- // fail("should have thrown exception");
- // } catch (JspException e) {
- // assertNull(val);
- // }
- }
-
- // try to get the call to throw an IllegalArgumentException
- public void test_Object_lookup_PageContext_String_String_String2() {
- pageContext.setAttribute("bean", new MockFormBean());
-
- Object val = null;
-
- try {
- val = tagutils.lookup(pageContext, "bean", "doesNotExistMethod",
- "page");
- fail("should have thrown exception");
- } catch (JspException e) {
- assertNull(val);
- }
- }
-
- // try to get the call to throw an NoSuchMethodException
- public void test_Object_lookup_PageContext_String_String_String3() {
- pageContext.setAttribute("bean", new MockFormBean());
-
- Object val = null;
-
- try {
- val = tagutils.lookup(pageContext, "bean", "doesNotExistMethod");
- fail("should have thrown exception");
- } catch (JspException e) {
- assertNull(val);
- }
- }
-
- /**
- * Testing message()
- *
- * public String message( PageContext pageContext, String bundle, String
- * locale, String key) throws JspException
- */
- public void testMessageBadParams() {
- String val = null;
-
- try {
- val = tagutils.message(pageContext, "bundle", "locale", "key");
- fail("val should be null");
- } catch (JspException e) {
- assertNull(val);
- }
- }
-
- // set bundle in page scope
- // message() assumes the bundle will never be in page scope
- // -- bad key
- public void donttestMessagePageBadKey() {
- putBundleInScope(PageContext.PAGE_SCOPE, true);
-
- String val = null;
-
- try {
- val = tagutils.message(pageContext, null, null,
- "foo.bar.does.not.exist");
- fail("val should be null");
- } catch (JspException e) {
- assertNull(val);
- }
- }
-
- // set bundle in request scope
- // -- bad key
- public void testMessageRequestBadKey() {
- putBundleInScope(PageContext.REQUEST_SCOPE, true);
-
- String val = null;
-
- try {
- val = tagutils.message(pageContext, null, null,
- "foo.bar.does.not.exist");
- assertNull(val);
- } catch (JspException e) {
- fail("val should be null, no exception");
- }
- }
-
- // set bundle in session scope
- // -- bad key
- //
- // This represents a use case where the user specifically set the bundle
- // in session under Globals.MESSAGES_KEY.
- // Perhaps we should check session, and throw/log a rather explicit message
- // for why this is a bad idea, instead of ignoring or returning null.
- public void testMessageSessionBadKey() {
- putBundleInScope(PageContext.SESSION_SCOPE, true);
-
- String val = null;
-
- try {
- val = tagutils.message(pageContext, null, null,
- "foo.bar.does.not.exist");
- fail("MessageResources should never be put in session scope.");
- } catch (JspException e) {
- assertNull(val);
- }
- }
-
- // set bundle in application scope
- // -- bad key
- public void testMessageApplicationBadKey() {
- putBundleInScope(PageContext.APPLICATION_SCOPE, true);
-
- String val = null;
-
- try {
- val = tagutils.message(pageContext, null, null,
- "foo.bar.does.not.exist");
- assertNull(val);
- } catch (JspException e) {
- fail("val should be null, no exception");
- }
- }
-
- // set bundle in request scope
- // -- good key
- public void testMessageRequestGoodKey() {
- putBundleInScope(PageContext.REQUEST_SCOPE, true);
-
- String val = null;
-
- try {
- val = tagutils.message(pageContext, null, null, "foo");
- assertTrue("Validate message value", "bar".equals(val));
- } catch (JspException e) {
- fail("val should be \"bar\"");
- }
- }
-
- // set bundle in application scope
- // -- good key
- public void testMessageApplicationGoodKey() {
- putBundleInScope(PageContext.APPLICATION_SCOPE, true);
-
- String val = null;
-
- try {
- val = tagutils.message(pageContext, null, null, "foo");
- assertTrue("Validate message value", "bar".equals(val));
- } catch (JspException e) {
- fail("val should be \"bar\"");
- }
- }
-
- /**
- * Tests for:
- *
- * public String message( PageContext pageContext, String bundle, String
- * locale, String key, Object args[]) throws JspException
- */
- public void testMessageRequestGoodKeyWithNullParams() {
- putBundleInScope(PageContext.REQUEST_SCOPE, true);
-
- String[] args = null;
-
- String val = null;
-
- try {
- val = tagutils.message(pageContext, null, null, "foo", args);
- assertTrue("Validate message value", "bar".equals(val));
- } catch (JspException e) {
- fail("val should be \"bar\"");
- }
- }
-
- public void testMessageApplicationGoodKeyWithNullParams() {
- putBundleInScope(PageContext.REQUEST_SCOPE, true);
-
- String[] args = null;
-
- String val = null;
-
- try {
- val = tagutils.message(pageContext, null, null, "foo", args);
- assertTrue("Validate message value", "bar".equals(val));
- } catch (JspException e) {
- fail("val should be \"bar\"");
- }
- }
-
- public void testMessageRequestGoodKeyWithParams() {
- putBundleInScope(PageContext.REQUEST_SCOPE, true);
-
- String[] args = { "I love this" };
-
- String val = null;
-
- try {
- val = tagutils.message(pageContext, null, null, "foo.bar", args);
- assertTrue("Validate message value", "I love this bar".equals(val));
- } catch (JspException e) {
- fail("val should be \"bar\"");
- }
- }
-
- public void testMessageApplicationGoodKeyWithParams() {
- putBundleInScope(PageContext.REQUEST_SCOPE, true);
-
- String[] args = { "I love this" };
-
- String val = null;
-
- try {
- val = tagutils.message(pageContext, null, null, "foo.bar", args);
- assertTrue("Validate message value", "I love this bar".equals(val));
- } catch (JspException e) {
- fail("val should be \"bar\"");
- }
- }
-
- /**
- * Tests for: public boolean present( PageContext pageContext, String
- * bundle, String locale, String key) throws JspException {
- */
- public void testPresentNulls() {
- boolean result = false;
-
- try {
- result = tagutils.present(null, null, null, null);
- fail("An exception should have been thrown");
- } catch (JspException e) {
- fail("An npe should have been thrown");
- } catch (NullPointerException e) {
- assertFalse("Correct behaviour", result);
- }
- }
-
- public void testPresentBadKey() {
- putBundleInScope(PageContext.REQUEST_SCOPE, true);
-
- boolean result = false;
-
- try {
- result =
- tagutils.present(pageContext, null, null, "foo.bar.not.exist");
- assertFalse("Value should be null", result);
- } catch (JspException e) {
- fail("An npe should have been thrown");
- } catch (NullPointerException e) {
- assertFalse("Correct behaviour", result);
- }
- }
-
- public void testPresentGoodKey() {
- putBundleInScope(PageContext.REQUEST_SCOPE, true);
-
- boolean result = false;
-
- try {
- result = tagutils.present(pageContext, null, null, "foo");
- assertTrue("Key should have been found", result);
- } catch (JspException e) {
- fail("An exception should have been thrown");
- }
- }
-
- /**
- * public void write(PageContext pageContext, String text) throws
- * JspException {
- */
- public void testWriteNullParams() {
- try {
- tagutils.write(null, null);
- fail("NullPointerException should have been thrown");
- } catch (JspException e) {
- fail("NullPointerException should have been thrown");
- } catch (NullPointerException e) {
- // pass
- }
- }
-
- public void testWrite() {
- MockPageContext pg = new MockPageContext(false, false);
-
- try {
- tagutils.write(pg, null);
- } catch (JspException e) {
- fail("JspException should not have been thrown");
- }
- }
-
- public void testWriteThrowException() {
- MockPageContext pg = new MockPageContext(true, false);
-
- try {
- tagutils.write(pg, null);
- fail("JspException should have been thrown");
- } catch (JspException e) {
- // success
- }
- }
-
- public void testWritePrevious() {
- MockPageContext pg = new MockPageContext(false, false);
-
- try {
- tagutils.writePrevious(pg, null);
- } catch (JspException e) {
- fail("JspException should not have been thrown");
- }
- }
-
- public void testWritePreviousThrowException() {
- MockPageContext pg = new MockPageContext(true, false);
-
- try {
- tagutils.writePrevious(pg, null);
- fail("JspException should have been thrown");
- } catch (JspException e) {
- // success
- }
- }
-
- public void testWritePreviousBody() {
- MockPageContext pg = new MockPageContext(false, true);
-
- try {
- tagutils.writePrevious(pg, null);
- } catch (JspException e) {
- fail("JspException should not have been thrown");
- }
- }
-
- public void testOverrideInstance(){
-
- class CustomTagUtils extends TagUtils{
- public String filter(String value) {
- return "I HAVE BEEN OVERRIDDEN!";
- }
- }
- // verify original logic
- assertNull("Filter Test", TagUtils.getInstance().filter(null));
-
- // set the custom instance
- TagUtils.setInstance(new CustomTagUtils());
- assertEquals("Custom Instance Test", TagUtils.getInstance().filter(null), "I HAVE BEEN OVERRIDDEN!");
-
- // reset back to the cached instance
- TagUtils.setInstance(tagutils);
- assertNull("Filter Test", TagUtils.getInstance().filter(null));
-
- }
-}
+/*
+ * Copyright 2004-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.struts.taglib;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.struts.Globals;
+import org.apache.struts.action.ActionMessage;
+import org.apache.struts.action.ActionMessages;
+import org.apache.struts.config.ActionConfig;
+import org.apache.struts.config.ModuleConfig;
+import org.apache.struts.config.impl.ModuleConfigImpl;
+import org.apache.struts.mock.MockFormBean;
+import org.apache.struts.mock.MockHttpServletRequest;
+import org.apache.struts.mock.MockHttpServletResponse;
+import org.apache.struts.mock.MockPageContext;
+import org.apache.struts.mock.MockServletConfig;
+import org.apache.struts.mock.MockServletContext;
+import org.apache.struts.taglib.html.Constants;
+
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.PageContext;
+
+import java.net.MalformedURLException;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Locale;
+import java.util.Map;
+
+/**
+ * Unit tests for the TagUtils.
+ */
+public class TestTagUtils extends TagTestBase {
+ private static final Log log = LogFactory.getLog(TestTagUtils.class);
+
+ /**
+ * Defines the testcase name for JUnit.
+ *
+ * @param theName the testcase's name.
+ */
+ public TestTagUtils(String theName) {
+ super(theName);
+ }
+
+ /**
+ * Start the tests.
+ *
+ * @param theArgs the arguments. Not used
+ */
+ public static void main(String[] theArgs) {
+ junit.awtui.TestRunner.main(new String[] { TestTagUtils.class.getName() });
+ }
+
+ /**
+ * @return a test suite (<code>TestSuite</code>) that includes all methods
+ * starting with "test"
+ */
+ public static Test suite() {
+ // All methods starting with "test" will be executed in the test suite.
+ return new TestSuite(TestTagUtils.class);
+ }
+
+ /**
+ * Test Operators.
+ */
+ public void testFilter() {
+ assertNull("Null", null);
+
+ // Test Null
+ assertNull("Filter Test 1", tagutils.filter(null));
+
+ // Test Empty String
+ assertEquals("Filter Test 2", "", tagutils.filter(""));
+
+ // Test Single Character
+ assertEquals("Filter Test 3", "a", tagutils.filter("a"));
+
+ // Test Multiple Characters
+ assertEquals("Filter Test 4", "adhdfhdfhadhf",
+ tagutils.filter("adhdfhdfhadhf"));
+
+ // Test Each filtered Character
+ assertEquals("Filter Test 5", "<", tagutils.filter("<"));
+ assertEquals("Filter Test 6", ">", tagutils.filter(">"));
+ assertEquals("Filter Test 7", "&", tagutils.filter("&"));
+ assertEquals("Filter Test 8", """, tagutils.filter("\""));
+ assertEquals("Filter Test 9", "'", tagutils.filter("'"));
+
+ // Test filtering beginning, middle, end
+ assertEquals("Filter Test 10", "a<", tagutils.filter("a<"));
+ assertEquals("Filter Test 11", "<a", tagutils.filter("<a"));
+ assertEquals("Filter Test 12", "a<a", tagutils.filter("a<a"));
+
+ // Test filtering beginning, middle, end
+ assertEquals("Filter Test 13", "abc<", tagutils.filter("abc<"));
+ assertEquals("Filter Test 14", "<abc", tagutils.filter("<abc"));
+ assertEquals("Filter Test 15", "abc<abc", tagutils.filter("abc<abc"));
+
+ // Test Multiple Characters
+ assertEquals("Filter Test 16",
+ "<input type="text" value='Me & You'>",
+ tagutils.filter("<input type=\"text\" value='Me & You'>"));
+ }
+
+ // ---------------------------------------------------- computeParameters()
+ // No parameters and no transaction token
+ public void testComputeParameters0a() {
+ Map map = null;
+
+ try {
+ map = tagutils.computeParameters(pageContext, null, null, null,
+ null, null, null, null, false);
+ } catch (JspException e) {
+ fail("JspException: " + e);
+ }
+
+ assertNull("Map is null", map);
+ }
+
+ // No parameters but add transaction token
+ public void testComputeParameters0b() {
+ request.getSession().setAttribute(Globals.TRANSACTION_TOKEN_KEY, "token");
+
+ Map map = null;
+
+ try {
+ map = tagutils.computeParameters(pageContext, null, null, null,
+ null, null, null, null, true);
+ } catch (JspException e) {
+ fail("JspException: " + e);
+ }
+
+ assertNotNull("Map is not null", map);
+ assertEquals("One parameter in the returned map", 1, map.size());
+ assertTrue("Transaction token parameter present",
+ map.containsKey(Constants.TOKEN_KEY));
+ assertEquals("Transaction token parameter value", "token",
+ (String) map.get(Constants.TOKEN_KEY));
+ }
+
+ // invalid scope name is requested
+ public void testComputeParametersInvalidScope() {
+ Map map = null;
+
+ try {
+ map = tagutils.computeParameters(pageContext, null, null, null,
+ "session", "i-do-not-exist", null, null, false);
+
+ fail("JspException not thrown");
+ } catch (JspException e) {
+ assertNull("map is null", map);
+ }
+ }
+
+ // specified bean is not found
+ public void testComputeParametersBeanNotFound() {
+ Map map = null;
+
+ try {
+ map = tagutils.computeParameters(pageContext, null, null, null,
+ null, "i-do-not-exist", null, null, false);
+
+ fail("JspException not thrown");
+ } catch (JspException e) {
+ assertNull("map is null", map);
+ }
+ }
+
+ // accessing this property causes an exception
+ public void testComputeParametersPropertyThrowsException() {
+ request.getSession().setAttribute("SomeBean", new MockFormBean(true));
+
+ Map map = null;
+
+ try {
+ map = tagutils.computeParameters(pageContext, null, null, null,
+ null, "SomeBean", "justThrowAnException", null, false);
+ fail("JspException not thrown");
+ } catch (JspException e) {
+ assertNull("map is null", map);
+ }
+ }
+
+ public void testComputeParametersParamIdParamPropThrowException() {
+ request.getSession().setAttribute("SomeBean", new MockFormBean(true));
+
+ Map map = null;
+
+ try {
+ map = tagutils.computeParameters(pageContext, "paramId",
+ "SomeBean", "justThrowAnException", null, null, null, null,
+ false);
+
+ fail("JspException not thrown");
+ } catch (JspException e) {
+ assertNull("map is null", map);
+ }
+ }
+
+ public void testComputeParametersParamValueToString() {
+ request.getSession().setAttribute("SomeBean",
+ new MockFormBean(false, false, new Double(1)));
+
+ Map map = null;
+
+ try {
+ map = tagutils.computeParameters(pageContext, "paramId",
+ "SomeBean", "doubleValue", null, null, null, null, false);
+
+ assertNotNull("map is null", map);
+
+ String val = (String) map.get("paramId");
+
+ assertTrue("paramId should be 1.0", "1.0".equals(val));
+ } catch (JspException e) {
+ fail("JspException not thrown");
+ }
+ }
+
+ public void skiptestComputeParametersParamIdAsStringArray() {
+ Map params = new HashMap();
+
+ // String[] vals = new String[]{"test0, test1"};
+ params.put("fooParamId", "fooParamValue");
+
+ request.getSession().setAttribute("SomeBean", params);
+
+ Map map = null;
+
+ try {
+ map = tagutils.computeParameters(pageContext, "fooParamId",
+ "SomeBean", null, null, "SomeBean", null, null, false);
+
+ // map = tagutils.computeParameters(
+ // page, "paramId", "SomeBean", "stringArray", null,
+ // null, null, null, false);
+ assertNotNull("map is null", map);
+
+ String val = (String) map.get("key0");
+
+ assertTrue("paramId should be \"test\"", "1.0".equals(val));
+ } catch (JspException e) {
+ fail("JspException not thrown");
+ }
+ }
+
+ // Single parameter -- name
+ public void testComputeParameters1a() {
+ request.getSession().setAttribute("attr", "bar");
+
+ Map map = null;
+
+ try {
+ map = tagutils.computeParameters(pageContext, "foo", "attr", null,
+ null, null, null, null, false);
+ } catch (JspException e) {
+ fail("JspException: " + e);
+ }
+
+ assertNotNull("Map is not null", map);
+ assertEquals("One parameter in the returned map", 1, map.size());
+ assertTrue("Parameter present", map.containsKey("foo"));
+ assertEquals("Parameter value", "bar", (String) map.get("foo"));
+ }
+
+ // Single parameter -- scope + name
+ public void testComputeParameters1b() {
+ request.setAttribute("attr", "bar");
+
+ Map map = null;
+
+ try {
+ map = tagutils.computeParameters(pageContext, "foo", "attr", null,
+ "request", null, null, null, false);
+ } catch (JspException e) {
+ fail("JspException: " + e);
+ }
+
+ assertNotNull("Map is not null", map);
+ assertEquals("One parameter in the returned map", 1, map.size());
+ assertTrue("Parameter present", map.containsKey("foo"));
+ assertEquals("Parameter value", "bar", (String) map.get("foo"));
+ }
+
+ // Single parameter -- scope + name + property
+ public void testComputeParameters1c() {
+ request.setAttribute("attr", new MockFormBean("bar"));
+
+ Map map = null;
+
+ try {
+ map = tagutils.computeParameters(pageContext, "foo", "attr",
+ "stringProperty", "request", null, null, null, false);
+ } catch (JspException e) {
+ fail("JspException: " + e);
+ }
+
+ assertNotNull("Map is not null", map);
+ assertEquals("One parameter in the returned map", 1, map.size());
+ assertTrue("Parameter present", map.containsKey("foo"));
+ assertEquals("Parameter value", "bar", (String) map.get("foo"));
+ }
+
+ // Provided map -- name
+ public void testComputeParameters2a() {
+ Map map = new HashMap();
+
+ map.put("foo1", "bar1");
+ map.put("foo2", "bar2");
+ request.getSession().setAttribute("attr", map);
+
+ try {
+ map = tagutils.computeParameters(pageContext, null, null, null,
+ null, "attr", null, null, false);
+ } catch (JspException e) {
+ fail("JspException: " + e);
+ }
+
+ assertNotNull("Map is not null", map);
+ assertEquals("Two parameter in the returned map", 2, map.size());
[... 1855 lines stripped ...]