View Javadoc

    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *      http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   */
    17
    18  package org.apache.commons.fileupload.portlet;
    19
    20  import java.io.BufferedReader;
    21  import java.io.ByteArrayInputStream;
    22  import java.io.IOException;
    23  import java.io.InputStream;
    24  import java.io.UnsupportedEncodingException;
    25  import java.security.Principal;
    26  import java.util.Arrays;
    27  import java.util.Collections;
    28  import java.util.Enumeration;
    29  import java.util.HashMap;
    30  import java.util.Hashtable;
    31  import java.util.Locale;
    32  import java.util.Map;
    33
    34  import javax.portlet.ActionRequest;
    35  import javax.portlet.PortalContext;
    36  import javax.portlet.PortletMode;
    37  import javax.portlet.PortletPreferences;
    38  import javax.portlet.PortletSession;
    39  import javax.portlet.WindowState;
    40
    41  import org.apache.commons.fileupload.FileUploadBase;
    42
    43  /**
    44   * Mock class for tests. Implements an {@link ActionRequest}.
    45   *
    46   * @see PortletFileUploadTest
    47   * @since 1.4
    48   */
    49  @SuppressWarnings("rawtypes") // because of the portlet ActionRequest API does not use generics
    50  public class MockPortletActionRequest implements ActionRequest {
    51
    52      private final Hashtable<String, Object> attributes = new Hashtable<>();
    53      private final Map<String, String> parameters = new HashMap<>();
    54      private String characterEncoding;
    55      private final int length;
    56      private final String contentType;
    57      private final InputStream requestData;
    58
    59      public MockPortletActionRequest(final byte[] requestData, final String contentType) {
    60          this(new ByteArrayInputStream(requestData), requestData.length, contentType);
    61      }
    62
    63      public MockPortletActionRequest(final ByteArrayInputStream byteArrayInputStream, final int requestLength, final String contentType) {
    64          this.requestData = byteArrayInputStream;
    65          length = requestLength;
    66          this.contentType = contentType;
    67          attributes.put(FileUploadBase.CONTENT_TYPE, contentType);
    68      }
    69
    70      @Override
    71      public Object getAttribute(final String key) {
    72          return attributes.get(key);
    73      }
    74
    75      @Override
    76      public Enumeration getAttributeNames() {
    77          return attributes.keys();
    78      }
    79
    80      @Override
    81      public String getAuthType() {
    82          return null;
    83      }
    84
    85      @Override
    86      public String getCharacterEncoding() {
    87          return characterEncoding;
    88      }
    89
    90      @Override
    91      public int getContentLength() {
    92          return length;
    93      }
    94
    95      @Override
    96      public String getContentType() {
    97          return contentType;
    98      }
    99
    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 }