?? testrequestutils.java
字號:
/*
* $Id: TestRequestUtils.java 54929 2004-10-16 16:38:42Z germuska $
*
* Copyright 1999-2004 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.util;
import java.net.MalformedURLException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.jsp.JspException;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.apache.struts.Globals;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.action.RequestProcessor;
import org.apache.struts.config.ForwardConfig;
import org.apache.struts.config.ModuleConfig;
import org.apache.struts.mock.MockFormBean;
import org.apache.struts.mock.MockPrincipal;
import org.apache.struts.mock.TestMockBase;
import org.apache.struts.taglib.html.Constants;
/**
* <p>Unit tests for <code>org.apache.struts.util.RequestUtils</code>.</p>
*
* @version $Rev: 54929 $ $Date: 2004-10-16 17:38:42 +0100 (Sat, 16 Oct 2004) $
*/
public class TestRequestUtils extends TestMockBase {
// ----------------------------------------------------------------- Basics
public TestRequestUtils(String name) {
super(name);
}
public static void main(String args[]) {
junit.awtui.TestRunner.main
(new String[] { TestRequestUtils.class.getName() } );
}
public static Test suite() {
return (new TestSuite(TestRequestUtils.class));
}
// ----------------------------------------------------- Instance Variables
// ----------------------------------------------------- Setup and Teardown
public void setUp() {
super.setUp();
}
public void tearDown() {
super.tearDown();
}
// ------------------------------------------------------- Individual Tests
// ---------------------------------------------------------- absoluteURL()
public void testAbsoluteURL() {
request.setPathElements("/myapp", "/action.do", null, null);
String url = null;
try {
url = RequestUtils.absoluteURL(request, "/foo/bar.jsp").toString();
assertEquals("absoluteURL is correct",
"http://localhost:8080/myapp/foo/bar.jsp",
url);
} catch (MalformedURLException e) {
fail("Threw MalformedURLException: " + e);
}
}
// ------------------------------------------------------------ actionURL()
// Default application -- extension mapping
public void testActionURL1() {
request.setAttribute(Globals.MODULE_KEY, moduleConfig);
request.setPathElements("/myapp", "/foo.do", null, null);
String url = RequestUtils.actionURL
(request, moduleConfig.findActionConfig("/dynamic"), "*.do");
assertNotNull("URL was returned", url);
assertEquals("URL value",
"/dynamic.do",
url);
}
// Second application -- extension mapping
public void testActionURL2() {
request.setAttribute(Globals.MODULE_KEY, moduleConfig2);
request.setPathElements("/myapp", "/2/foo.do", null, null);
String url = RequestUtils.actionURL
(request, moduleConfig2.findActionConfig("/dynamic2"), "*.do");
assertNotNull("URL was returned", url);
assertEquals("URL value",
"/2/dynamic2.do",
url);
}
// Default application -- path mapping
public void testActionURL3() {
request.setAttribute(Globals.MODULE_KEY, moduleConfig);
request.setPathElements("/myapp", "/do/foo", null, null);
String url = RequestUtils.actionURL
(request, moduleConfig.findActionConfig("/dynamic"), "/do/*");
assertNotNull("URL was returned", url);
assertEquals("URL value",
"/do/dynamic",
url);
}
// ---------------------------------------------------- computeParameters()
// No parameters and no transaction token
public void testComputeParameters0a() {
Map map = null;
try {
map = RequestUtils.computeParameters(page,
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() {
session.setAttribute(Globals.TRANSACTION_TOKEN_KEY, "token");
Map map = null;
try {
map = RequestUtils.computeParameters
(page, 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));
}
// Single parameter -- name
public void testComputeParameters1a() {
session.setAttribute("attr", "bar");
Map map = null;
try {
map = RequestUtils.computeParameters
(page, "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 = RequestUtils.computeParameters
(page, "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 = RequestUtils.computeParameters
(page, "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");
session.setAttribute("attr", map);
try {
map = RequestUtils.computeParameters
(page, 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 = RequestUtils.computeParameters
(page, 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 = RequestUtils.computeParameters
(page, 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" });
session.setAttribute("attr", map);
try {
map = RequestUtils.computeParameters
(page, 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);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -