001/* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package org.apache.commons.fileupload2.portlet; 018 019import java.io.BufferedReader; 020import java.io.ByteArrayInputStream; 021import java.io.IOException; 022import java.io.InputStream; 023import java.io.UnsupportedEncodingException; 024import java.security.Principal; 025import java.util.Arrays; 026import java.util.Collections; 027import java.util.Enumeration; 028import java.util.HashMap; 029import java.util.Hashtable; 030import java.util.Locale; 031import java.util.Map; 032 033import javax.portlet.ActionRequest; 034import javax.portlet.PortalContext; 035import javax.portlet.PortletMode; 036import javax.portlet.PortletPreferences; 037import javax.portlet.PortletSession; 038import javax.portlet.WindowState; 039 040import org.apache.commons.fileupload2.core.AbstractFileUpload; 041 042/** 043 * Mock class for tests. Implements an {@link ActionRequest}. 044 * 045 * @see JavaxPortletFileUploadTest 046 */ 047@SuppressWarnings("rawtypes") // because of the portlet ActionRequest API does not use generics 048public class JavaxPortletMockActionRequest implements ActionRequest { 049 050 private final Hashtable<String, Object> attributes = new Hashtable<>(); 051 052 private final Map<String, String> parameters = new HashMap<>(); 053 054 private String characterEncoding; 055 private final int length; 056 private final String contentType; 057 private final InputStream requestData; 058 059 public JavaxPortletMockActionRequest(final byte[] requestData, final String contentType) { 060 this(new ByteArrayInputStream(requestData), requestData.length, contentType); 061 } 062 063 public JavaxPortletMockActionRequest(final ByteArrayInputStream requestData, final int length, final String contentType) { 064 this.requestData = requestData; 065 this.length = length; 066 this.contentType = contentType; 067 this.attributes.put(AbstractFileUpload.CONTENT_TYPE, contentType); 068 } 069 070 @Override 071 public Object getAttribute(final String key) { 072 return attributes.get(key); 073 } 074 075 @Override 076 public Enumeration getAttributeNames() { 077 return attributes.keys(); 078 } 079 080 @Override 081 public String getAuthType() { 082 return null; 083 } 084 085 @Override 086 public String getCharacterEncoding() { 087 return characterEncoding; 088 } 089 090 @Override 091 public int getContentLength() { 092 return length; 093 } 094 095 @Override 096 public String getContentType() { 097 return contentType; 098 } 099 100 @Override 101 public String getContextPath() { 102 return null; 103 } 104 105 @Override 106 public Locale getLocale() { 107 return Locale.getDefault(); 108 } 109 110 @Override 111 public Enumeration getLocales() { 112 return Collections.enumeration(Arrays.asList(Locale.getAvailableLocales())); 113 } 114 115 @Override 116 public String getParameter(final String key) { 117 return parameters.get(key); 118 } 119 120 @Override 121 public Map getParameterMap() { 122 return Collections.unmodifiableMap(parameters); 123 } 124 125 @Override 126 public Enumeration getParameterNames() { 127 return Collections.enumeration(parameters.keySet()); 128 } 129 130 @Override 131 public String[] getParameterValues(final String arg0) { 132 return null; 133 } 134 135 @Override 136 public PortalContext getPortalContext() { 137 return null; 138 } 139 140 @Override 141 public InputStream getPortletInputStream() throws IOException { 142 return requestData; 143 } 144 145 @Override 146 public PortletMode getPortletMode() { 147 return null; 148 } 149 150 @Override 151 public PortletSession getPortletSession() { 152 return null; 153 } 154 155 @Override 156 public PortletSession getPortletSession(final boolean arg0) { 157 return null; 158 } 159 160 @Override 161 public PortletPreferences getPreferences() { 162 return null; 163 } 164 165 @Override 166 public Enumeration getProperties(final String arg0) { 167 return null; 168 } 169 170 @Override 171 public String getProperty(final String arg0) { 172 return null; 173 } 174 175 @Override 176 public Enumeration getPropertyNames() { 177 return null; 178 } 179 180 @Override 181 public BufferedReader getReader() throws UnsupportedEncodingException, IOException { 182 return null; 183 } 184 185 @Override 186 public String getRemoteUser() { 187 return null; 188 } 189 190 @Override 191 public String getRequestedSessionId() { 192 return null; 193 } 194 195 @Override 196 public String getResponseContentType() { 197 return null; 198 } 199 200 @Override 201 public Enumeration getResponseContentTypes() { 202 return null; 203 } 204 205 @Override 206 public String getScheme() { 207 return null; 208 } 209 210 @Override 211 public String getServerName() { 212 return null; 213 } 214 215 @Override 216 public int getServerPort() { 217 return 0; 218 } 219 220 @Override 221 public Principal getUserPrincipal() { 222 return null; 223 } 224 225 @Override 226 public WindowState getWindowState() { 227 return null; 228 } 229 230 @Override 231 public boolean isPortletModeAllowed(final PortletMode arg0) { 232 return false; 233 } 234 235 @Override 236 public boolean isRequestedSessionIdValid() { 237 return false; 238 } 239 240 @Override 241 public boolean isSecure() { 242 return false; 243 } 244 245 @Override 246 public boolean isUserInRole(final String arg0) { 247 return false; 248 } 249 250 @Override 251 public boolean isWindowStateAllowed(final WindowState arg0) { 252 return false; 253 } 254 255 @Override 256 public void removeAttribute(final String key) { 257 attributes.remove(key); 258 } 259 260 @Override 261 public void setAttribute(final String key, final Object value) { 262 attributes.put(key, value); 263 } 264 265 @Override 266 public void setCharacterEncoding(final String characterEncoding) throws UnsupportedEncodingException { 267 this.characterEncoding = characterEncoding; 268 } 269 270}