From 86e779a716f0feffa5deff64af129655917b7f73 Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 21 Sep 2012 01:34:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=8E=E4=BF=AE=E6=AD=A3ca?= =?UTF-8?q?ses?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../showcase/functional/rest/UserRestFT.java | 26 +++++------ .../demos/schedule/SpringTimerJobTest.java | 8 ++-- .../applicationContext-soap-client.xml | 2 +- .../org/springside/modules/web/Servlets.java | 3 ++ .../springside/modules/web/ServletsTest.java | 43 +++++++++++++++---- 5 files changed, 55 insertions(+), 27 deletions(-) diff --git a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserRestFT.java b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserRestFT.java index 9db830e3..eeaf7e14 100644 --- a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserRestFT.java +++ b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserRestFT.java @@ -14,7 +14,6 @@ import org.springframework.http.HttpMethod; import org.springframework.http.HttpRequest; import org.springframework.http.HttpStatus; import org.springframework.http.client.ClientHttpRequestExecution; -import org.springframework.http.client.ClientHttpRequestFactory; import org.springframework.http.client.ClientHttpRequestInterceptor; import org.springframework.http.client.ClientHttpResponse; import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; @@ -40,6 +39,7 @@ public class UserRestFT extends BaseFunctionalTestCase { private RestTemplate jdkTemplate; private RestTemplate httpClientRestTemplate; + private HttpComponentsClientHttpRequestFactory httpClientRequestFactory; private static String resoureUrl; @@ -50,28 +50,28 @@ public class UserRestFT extends BaseFunctionalTestCase { @Before public void initRestTemplate() { - //默认使用JDK Connection + // 默认使用JDK Connection jdkTemplate = new RestTemplate(); - //(optional)设置20秒超时 + // (optional)设置20秒超时 ((SimpleClientHttpRequestFactory) jdkTemplate.getRequestFactory()).setConnectTimeout(20000); - //设置使用HttpClient4.0 + // 设置使用HttpClient4.0 httpClientRestTemplate = new RestTemplate(); - ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); - //(optional)设置20秒超时 - ((HttpComponentsClientHttpRequestFactory) requestFactory).setConnectTimeout(20000); + httpClientRequestFactory = new HttpComponentsClientHttpRequestFactory(); + // (optional)设置20秒超时 + httpClientRequestFactory.setConnectTimeout(20000); - httpClientRestTemplate.setRequestFactory(requestFactory); + httpClientRestTemplate.setRequestFactory(httpClientRequestFactory); - //设置处理HttpBasic Header的Interceptor + // 设置处理HttpBasic Header的Interceptor ClientHttpRequestInterceptor interceptor = new HttpBasicInterceptor("admin", "admin"); httpClientRestTemplate.setInterceptors(Lists.newArrayList(interceptor)); } @After public void destoryClient() { - //退出时关闭HttpClient4连接池中的连接 - ((HttpComponentsClientHttpRequestFactory) httpClientRestTemplate.getRequestFactory()).destroy(); + // 退出时关闭HttpClient4连接池中的连接 + httpClientRequestFactory.destroy(); } /** @@ -81,7 +81,7 @@ public class UserRestFT extends BaseFunctionalTestCase { */ @Test public void getUserAsXML() { - //设置Http Basic参数 + // 设置Http Basic参数 HttpHeaders requestHeaders = new HttpHeaders(); requestHeaders.set(com.google.common.net.HttpHeaders.AUTHORIZATION, Servlets.encodeHttpBasic("admin", "admin")); HttpEntity requestEntity = new HttpEntity(requestHeaders); @@ -109,7 +109,7 @@ public class UserRestFT extends BaseFunctionalTestCase { */ @Test public void authWithHttpBasic() { - //设置Http Basic参数 + // 设置Http Basic参数 HttpHeaders requestHeaders = new HttpHeaders(); requestHeaders.set(com.google.common.net.HttpHeaders.AUTHORIZATION, Servlets.encodeHttpBasic("admin", "wrongpassword")); diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/SpringTimerJobTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/SpringTimerJobTest.java index 489fb0eb..ec3eb3e6 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/SpringTimerJobTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/SpringTimerJobTest.java @@ -19,14 +19,14 @@ public class SpringTimerJobTest extends SpringTransactionalTestCase { @Test public void scheduleJob() throws Exception { - //加载测试用logger appender + // 加载测试用logger appender Log4jMockAppender appender = new Log4jMockAppender(); appender.addToLogger(UserCountScanner.class); - //等待任务启动 - Threads.sleep(2000); + // 等待任务启动 + Threads.sleep(3000); - //验证任务已执行 + // 验证任务已执行 assertEquals(1, appender.getLogsCount()); assertEquals("There are 6 user in database, printed by spring timer job by xml.", appender.getFirstMessage()); appender.removeFromLogger(UserCountScanner.class); diff --git a/examples/showcase/src/test/resources/applicationContext-soap-client.xml b/examples/showcase/src/test/resources/applicationContext-soap-client.xml index 62de0e5a..ed215a12 100644 --- a/examples/showcase/src/test/resources/applicationContext-soap-client.xml +++ b/examples/showcase/src/test/resources/applicationContext-soap-client.xml @@ -11,6 +11,6 @@ location="classpath*:/application.functional.properties, classpath*:/application.functional-local.properties" /> - diff --git a/modules/core/src/main/java/org/springside/modules/web/Servlets.java b/modules/core/src/main/java/org/springside/modules/web/Servlets.java index ec27a165..1f7fe8fb 100644 --- a/modules/core/src/main/java/org/springside/modules/web/Servlets.java +++ b/modules/core/src/main/java/org/springside/modules/web/Servlets.java @@ -167,6 +167,9 @@ public class Servlets { public static String encodeParameterStringWithPrefix(Map params, String prefix) { StringBuilder queryStringBuilder = new StringBuilder(); + if (prefix == null) { + prefix = ""; + } Iterator> it = params.entrySet().iterator(); while (it.hasNext()) { Entry entry = it.next(); diff --git a/modules/core/src/test/java/org/springside/modules/web/ServletsTest.java b/modules/core/src/test/java/org/springside/modules/web/ServletsTest.java index ea795f8e..261d7a3a 100644 --- a/modules/core/src/test/java/org/springside/modules/web/ServletsTest.java +++ b/modules/core/src/test/java/org/springside/modules/web/ServletsTest.java @@ -9,20 +9,22 @@ import org.junit.Test; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; +import com.google.common.collect.Maps; + public class ServletsTest { @Test public void checkIfModified() { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); - //未设Header,返回true,需要传输内容 + // 未设Header,返回true,需要传输内容 assertEquals(true, Servlets.checkIfModifiedSince(request, response, (new Date().getTime() - 2000))); - //设置If-Modified-Since Header + // 设置If-Modified-Since Header request.addHeader("If-Modified-Since", new Date().getTime()); - //文件修改时间比Header时间小,文件未修改, 返回false. + // 文件修改时间比Header时间小,文件未修改, 返回false. assertEquals(false, Servlets.checkIfModifiedSince(request, response, (new Date().getTime() - 2000))); - //文件修改时间比Header时间大,文件已修改, 返回true,需要传输内容. + // 文件修改时间比Header时间大,文件已修改, 返回true,需要传输内容. assertEquals(true, Servlets.checkIfModifiedSince(request, response, (new Date().getTime() + 2000))); } @@ -30,14 +32,14 @@ public class ServletsTest { public void checkIfNoneMatch() { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); - //未设Header,返回true,需要传输内容 + // 未设Header,返回true,需要传输内容 assertEquals(true, Servlets.checkIfNoneMatchEtag(request, response, "V1.0")); - //设置If-None-Match Header + // 设置If-None-Match Header request.addHeader("If-None-Match", "V1.0,V1.1"); - //存在Etag + // 存在Etag assertEquals(false, Servlets.checkIfNoneMatchEtag(request, response, "V1.0")); - //不存在Etag + // 不存在Etag assertEquals(true, Servlets.checkIfNoneMatchEtag(request, response, "V2.0")); } @@ -59,7 +61,30 @@ public class ServletsTest { result = Servlets.getParametersStartingWith(request, null); assertEquals(3, result.size()); - } + @Test + public void encodeParameterStringWithPrefix() { + Map params = Maps.newLinkedHashMap(); + params.put("name", "foo"); + params.put("age", "1"); + + String queryString = Servlets.encodeParameterStringWithPrefix(params, "search_"); + assertEquals("search_name=foo&search_age=1", queryString); + + // data type is not String + params.clear(); + params.put("name", "foo"); + params.put("age", 1); + queryString = Servlets.encodeParameterStringWithPrefix(params, "search_"); + assertEquals("search_name=foo&search_age=1", queryString); + + // prefix is null + queryString = Servlets.encodeParameterStringWithPrefix(params, null); + assertEquals("name=foo&age=1", queryString); + + queryString = Servlets.encodeParameterStringWithPrefix(params, ""); + assertEquals("name=foo&age=1", queryString); + + } } -- GitLab