package org.springside.modules.unit.utils.web; import static org.junit.Assert.*; import java.util.Date; import java.util.Map; import org.junit.Test; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import org.springside.modules.utils.web.ServletUtils; public class ServletUtilsTest { @Test public void checkIfModified() { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); //未设Header,返回true,需要传输内容 assertEquals(true, ServletUtils.checkIfModifiedSince(request, response, (new Date().getTime() - 2000))); //设置If-Modified-Since Header request.addHeader("If-Modified-Since", new Date().getTime()); //文件修改时间比Header时间小,文件未修改, 返回false. assertEquals(false, ServletUtils.checkIfModifiedSince(request, response, (new Date().getTime() - 2000))); //文件修改时间比Header时间大,文件已修改, 返回true,需要传输内容. assertEquals(true, ServletUtils.checkIfModifiedSince(request, response, (new Date().getTime() + 2000))); } @Test public void checkIfNoneMatch() { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); //未设Header,返回true,需要传输内容 assertEquals(true, ServletUtils.checkIfNoneMatchEtag(request, response, "V1.0")); //设置If-None-Match Header request.addHeader("If-None-Match", "V1.0,V1.1"); //存在Etag assertEquals(false, ServletUtils.checkIfNoneMatchEtag(request, response, "V1.0")); //不存在Etag assertEquals(true, ServletUtils.checkIfNoneMatchEtag(request, response, "V2.0")); } @Test public void getParametersStartingWith() { MockHttpServletRequest request = new MockHttpServletRequest(); request.addParameter("pre_a", "aa"); request.addParameter("pre_b", "bb"); request.addParameter("c", "c"); Map<String, Object> result = ServletUtils.getParametersStartingWith(request, "pre_"); assertEquals(2, result.size()); assertTrue(result.keySet().contains("a")); assertTrue(result.keySet().contains("b")); assertTrue(result.values().contains("aa")); assertTrue(result.values().contains("bb")); result = ServletUtils.getParametersStartingWith(request, "error_"); assertEquals(0, result.size()); result = ServletUtils.getParametersStartingWith(request, null); assertEquals(3, result.size()); } }