/* * $Id: MockHttpServletRequest.java,v 1.1 2005/10/18 17:47:56 edburns Exp $ */ /* * The contents of this file are subject to the terms * of the Common Development and Distribution License * (the License). You may not use this file except in * compliance with the License. * * You can obtain a copy of the License at * https://javaserverfaces.dev.java.net/CDDL.html or * legal/CDDLv1.0.txt. * See the License for the specific language governing * permission and limitations under the License. * * When distributing Covered Code, include this CDDL * Header Notice in each file and include the License file * at legal/CDDLv1.0.txt. * If applicable, add the following below the CDDL Header, * with the fields enclosed by brackets [] replaced by * your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" * * [Name of File] [ver.__] [Date] * * Copyright 2005 Sun Microsystems Inc. All Rights Reserved */ package com.sun.faces.mock; import java.io.BufferedReader; import java.io.UnsupportedEncodingException; import java.security.Principal; import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; import java.util.Locale; import java.util.Map; import javax.servlet.RequestDispatcher; import javax.servlet.ServletInputStream; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; // Mock Object for HttpServletRequest (Version 2.4) public class MockHttpServletRequest implements HttpServletRequest { public MockHttpServletRequest() { super(); } public MockHttpServletRequest(HttpSession session) { super(); setHttpSession(session); } public MockHttpServletRequest(String contextPath, String servletPath, String pathInfo, String queryString) { super(); setPathElements(contextPath, servletPath, pathInfo, queryString); } public MockHttpServletRequest(String contextPath, String servletPath, String pathInfo, String queryString, HttpSession session) { super(); setPathElements(contextPath, servletPath, pathInfo, queryString); setHttpSession(session); } protected HashMap attributes = new HashMap(); protected String contextPath = null; protected Locale locale = null; protected HashMap parameters = new HashMap(); protected String pathInfo = null; protected Principal principal = null; protected String queryString = null; protected String servletPath = null; protected HttpSession session = null; protected String method = "GET"; // --------------------------------------------------------- Public Methods public void addParameter(String name, String value) { String values[] = (String[]) parameters.get(name); if (values == null) { String results[] = new String[] { value }; parameters.put(name, results); return; } String results[] = new String[values.length + 1]; System.arraycopy(values, 0, results, 0, values.length); results[values.length] = value; parameters.put(name, results); } public void setHttpSession(HttpSession session) { this.session = session; } public void setLocale(Locale locale) { this.locale = locale; } public void setMethod(String method) { this.method = method; } public void setPathElements(String contextPath, String servletPath, String pathInfo, String queryString) { this.contextPath = contextPath; this.servletPath = servletPath; this.pathInfo = pathInfo; this.queryString = queryString; } public void setUserPrincipal(Principal principal) { this.principal = principal; } // --------------------------------------------- HttpServletRequest Methods public String getAuthType() { throw new UnsupportedOperationException(); } public String getContextPath() { return (contextPath); } public Cookie[] getCookies() { throw new UnsupportedOperationException(); } public long getDateHeader(String name) { return -1; } public String getHeader(String name) { return null; } public Enumeration getHeaderNames() { return Collections.enumeration(Collections.EMPTY_LIST); } public Enumeration getHeaders(String name) { return Collections.enumeration(Collections.EMPTY_LIST); } public int getIntHeader(String name) { return -1; } public String getMethod() { return method; } public String getPathInfo() { return (pathInfo); } public String getPathTranslated() { throw new UnsupportedOperationException(); } public String getQueryString() { return (queryString); } public String getRemoteUser() { if (principal != null) { return (principal.getName()); } else { return (null); } } public String getRequestedSessionId() { throw new UnsupportedOperationException(); } public String getRequestURI() { StringBuffer sb = new StringBuffer(); if (contextPath != null) { sb.append(contextPath); } if (servletPath != null) { sb.append(servletPath); } if (pathInfo != null) { sb.append(pathInfo); } if (sb.length() > 0) { return (sb.toString()); } throw new UnsupportedOperationException(); } public StringBuffer getRequestURL() { throw new UnsupportedOperationException(); } public String getServletPath() { return (servletPath); } public HttpSession getSession() { return (getSession(true)); } public HttpSession getSession(boolean create) { if (create && (session == null)) { throw new UnsupportedOperationException(); } return (session); } public Principal getUserPrincipal() { return (principal); } public boolean isRequestedSessionIdFromCookie() { throw new UnsupportedOperationException(); } public boolean isRequestedSessionIdFromUrl() { throw new UnsupportedOperationException(); } public boolean isRequestedSessionIdFromURL() { throw new UnsupportedOperationException(); } public boolean isRequestedSessionIdValid() { throw new UnsupportedOperationException(); } public boolean isUserInRole(String role) { if ((principal != null) && (principal instanceof MockPrincipal)) { return (((MockPrincipal) principal).isUserInRole(role)); } else { return (false); } } // ------------------------------------------------- ServletRequest Methods public Object getAttribute(String name) { return (attributes.get(name)); } public Enumeration getAttributeNames() { return (new MockEnumeration(attributes.keySet().iterator())); } public String getCharacterEncoding() { return "ISO-8859-1"; } public int getContentLength() { throw new UnsupportedOperationException(); } public String getContentType() { return "text/html"; } public ServletInputStream getInputStream() { throw new UnsupportedOperationException(); } public Locale getLocale() { return (locale); } // // Servlet 2.4 methods // public int getRemotePort() { throw new UnsupportedOperationException(); } public String getLocalName() { throw new UnsupportedOperationException(); } public String getLocalAddr() { throw new UnsupportedOperationException(); } public int getLocalPort() { throw new UnsupportedOperationException(); } public Enumeration getLocales() { throw new UnsupportedOperationException(); } public String getParameter(String name) { String values[] = (String[]) parameters.get(name); if (values != null) { return (values[0]); } else { return (null); } } public Map getParameterMap() { return (parameters); } public Enumeration getParameterNames() { return (new MockEnumeration(parameters.keySet().iterator())); } public String[] getParameterValues(String name) { return ((String[]) parameters.get(name)); } public String getProtocol() { throw new UnsupportedOperationException(); } public BufferedReader getReader() { throw new UnsupportedOperationException(); } public String getRealPath(String path) { throw new UnsupportedOperationException(); } public String getRemoteAddr() { throw new UnsupportedOperationException(); } public String getRemoteHost() { throw new UnsupportedOperationException(); } public RequestDispatcher getRequestDispatcher(String path) { throw new UnsupportedOperationException(); } public String getScheme() { return ("http"); } public String getServerName() { return ("localhost"); } public int getServerPort() { return (8080); } public boolean isSecure() { return (false); } public void removeAttribute(String name) { attributes.remove(name); } public void setAttribute(String name, Object value) { if (value == null) { attributes.remove(name); } else { attributes.put(name, value); } } public void setCharacterEncoding(String string) throws UnsupportedEncodingException { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } }