📄 urlwebtestcase.java
字号:
/* * WebWork, Web Application Framework * * Distributable under Apache license. * See terms of license at opensource.org */package webwork.view.taglib;import java.util.Map;import javax.servlet.http.HttpUtils;import junit.textui.TestRunner;import org.xml.sax.SAXException;import com.meterware.httpunit.GetMethodWebRequest;import com.meterware.httpunit.WebConversation;import com.meterware.httpunit.WebRequest;import com.meterware.httpunit.WebResponse;import webwork.view.WebSupport;/** * @author Maurice C. Parker (maurice@vineyardenterprise.com) */public class UrlWebTestCase extends WebSupport { public UrlWebTestCase(String testName) { super(testName); } public void testNoParameters() { WebConversation conversation = new WebConversation(); WebRequest request = new GetMethodWebRequest(TEST_HOME + "tests/url.jsp"); WebResponse response = null; try { response = conversation.getResponse(request); } catch (Exception e) { fail(e); } String[][] table = null; try { table = response.getTables()[0].asText(); } catch (SAXException e) { fail(e); } ParsedURL parsedUrl = new ParsedURL(table[0][1]); assertEquals("test 1 had an invalid url", TEST_CONTEXT + "tests/url.jsp", parsedUrl.getTarget()); assertNull("test 1 shouldn't have any parameters", parsedUrl.getParameters()); parsedUrl = new ParsedURL(table[1][1]); assertEquals("test 2 had an invalid url", "next.action", parsedUrl.getTarget()); assertNull("test 2 shouldn't have any parameters", parsedUrl.getParameters()); parsedUrl = new ParsedURL(table[2][1]); assertEquals("test 3 had an invalid url", "http://www.google.com/search", parsedUrl.getTarget()); assertEquals("test 3 - invalid nbr of parameters", 3, parsedUrl.getParameters().size()); checkParameters(parsedUrl.getParameters()); parsedUrl = new ParsedURL(table[3][1]); assertEquals("test 4 had an invalid url", "next.action", parsedUrl.getTarget()); assertEquals("test 4 - invalid nbr of parameters", 3, parsedUrl.getParameters().size()); checkParameters(parsedUrl.getParameters()); parsedUrl = new ParsedURL(table[4][1]); assertEquals("test 5 had an invalid url", TEST_CONTEXT + "tests/url.jsp", parsedUrl.getTarget()); assertEquals("test 5 - invalid nbr of parameters", 3, parsedUrl.getParameters().size()); checkParameters(parsedUrl.getParameters()); } private void checkParameters(Map parameters) { assertEquals("param1 is invalid", "value1", ((String[])parameters.get("param1"))[0]); assertEquals("param2 is invalid", "value2", ((String[])parameters.get("param2"))[0]); assertEquals("param3 is invalid", "value3", ((String[])parameters.get("param3"))[0]); } public void testParameters() { WebConversation conversation = new WebConversation(); WebRequest request = new GetMethodWebRequest(TEST_HOME + "tests/url.jsp?foo=bar"); WebResponse response = null; try { response = conversation.getResponse(request); } catch (Exception e) { fail(e); } String[][] table = null; try { table = response.getTables()[0].asText(); } catch (SAXException e) { fail(e); } ParsedURL parsedUrl = new ParsedURL(table[0][1]); assertEquals("test 1 had an invalid url", TEST_CONTEXT + "tests/url.jsp", parsedUrl.getTarget()); assertEquals("test 1 shouldn't have any parameters", 1, parsedUrl.getParameters().size()); assertEquals("parameter foo is invalid", "bar", ((String[])parsedUrl.getParameters().get("foo"))[0]); parsedUrl = new ParsedURL(table[1][1]); assertEquals("test 2 had an invalid url", "next.action", parsedUrl.getTarget()); assertNull("test 2 shouldn't have any parameters", parsedUrl.getParameters()); parsedUrl = new ParsedURL(table[2][1]); assertEquals("test 3 had an invalid url", "http://www.google.com/search", parsedUrl.getTarget()); assertEquals("test 3 - invalid nbr of parameters", 3, parsedUrl.getParameters().size()); checkParameters(parsedUrl.getParameters()); parsedUrl = new ParsedURL(table[3][1]); assertEquals("test 4 had an invalid url", "next.action", parsedUrl.getTarget()); assertEquals("test 4 - invalid nbr of parameters", 3, parsedUrl.getParameters().size()); checkParameters(parsedUrl.getParameters()); parsedUrl = new ParsedURL(table[4][1]); assertEquals("test 5 had an invalid url", TEST_CONTEXT + "tests/url.jsp", parsedUrl.getTarget()); assertEquals("test 5 - invalid nbr of parameters", 4, parsedUrl.getParameters().size()); checkParameters(parsedUrl.getParameters()); assertEquals("parameter foo is invalid", "bar", ((String[])parsedUrl.getParameters().get("foo"))[0]); } public static void main(String[] args) { TestRunner.run(UrlWebTestCase.class); } private class ParsedURL { private String target; private Map parameters; public Map getParameters() { return parameters; } public String getTarget() { return target; } public ParsedURL(String url) { url = url.trim(); if (url.indexOf(';') > -1) { StringBuffer buffer = new StringBuffer(url.substring(0, url.indexOf(';'))); if (url.indexOf('?') > -1) { buffer.append(url.substring(url.indexOf('?'), url.length())); } url = buffer.toString(); } if (url.indexOf('?') > -1) { target = url.substring(0, url.indexOf('?')); String params = url.substring(url.indexOf('?') + 1, url.length()); parameters = HttpUtils.parseQueryString(params); } else { target = url; } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -