package org.springframework.js.resource;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import junit.framework.TestCase;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.mock.web.MockServletConfig;
import org.springframework.mock.web.MockServletContext;
@SuppressWarnings("deprecation")
public class ResourceServletTests extends TestCase {
ServletContext servletContext = new ResourceTestMockServletContext();
ServletConfig config = new MockServletConfig(servletContext);
MockHttpServletResponse response = new MockHttpServletResponse();
MockHttpServletRequest request = new MockHttpServletRequest();
String[] requestElements;
ResourceServlet servlet;
protected void setUp() throws Exception {
servlet = new ResourceServlet();
servlet.init(config);
}
public final void testExecute() throws Exception {
String requestPath = "/org/springframework/js/resource/TestResource1.js";
request.setPathInfo(requestPath);
servlet.doGet(request, response);
assertEquals(200, response.getStatus());
assertNull(response.getHeader("Content-Encoding"));
}
public final void testExecute_CombinedResources() throws Exception {
String requestPath = "/org/springframework/js/resource/TestResource1.js";
request.setPathInfo(requestPath);
Map<String, String> params = new HashMap<String, String>();
params.put("appended", "/org/springframework/js/resource/TestResource2.js");
request.setParameters(params);
servlet.doGet(request, response);
assertEquals(200, response.getStatus());
}
public final void testExecute_CompressedResponse() throws Exception {
String requestPath = "/org/springframework/js/resource/TestResource1.js";
request.setPathInfo(requestPath);
request.addHeader("Accept-Encoding", "gzip");
servlet.doGet(request, response);
assertEquals(200, response.getStatus());
assertEquals("gzip", response.getHeader("Content-Encoding"));
}
public final void testExecute_ResourceNotFound() throws Exception {
String requestPath = "/xxx/xxx.js";
request.setPathInfo(requestPath);
servlet.doGet(request, response);
assertEquals(404, response.getStatus());
}
public final void testExecute_ProtectedPath() throws Exception {
String requestPath = "/WEB-INF/web.xml";
request.setPathInfo(requestPath);
servlet.doGet(request, response);
assertEquals(404, response.getStatus());
}
public final void testExecute_DisallowedPath() throws Exception {
String requestPath = "/persistence.xml";
request.setPathInfo(requestPath);
servlet.doGet(request, response);
assertEquals(404, response.getStatus());
}
private class ResourceTestMockServletContext extends MockServletContext {
public String getMimeType(String filePath) {
return null;
}
}
}