1   /*
2    * Copyright 2001-2004 The Apache Software Foundation
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.apache.commons.fileupload;
17  
18  import java.io.BufferedReader;
19  import java.io.ByteArrayInputStream;
20  import java.io.IOException;
21  import java.io.UnsupportedEncodingException;
22  import java.security.Principal;
23  import java.util.Enumeration;
24  import java.util.Locale;
25  import java.util.Map;
26  
27  import javax.servlet.RequestDispatcher;
28  import javax.servlet.ServletInputStream;
29  import javax.servlet.http.Cookie;
30  import javax.servlet.http.HttpServletRequest;
31  import javax.servlet.http.HttpSession;
32  
33  /***
34   *
35   *
36   *
37   *
38   *
39   *
40   */
41  class MockHttpServletRequest implements HttpServletRequest
42  {
43  
44  	private byte[] m_requestData;
45  	private String m_strContentType;
46  	private Map m_headers = new java.util.HashMap();
47  
48  	public MockHttpServletRequest(
49  			final byte[] requestData,
50  			final String strContentType)
51  	{
52  		m_requestData = requestData;
53  		m_strContentType = strContentType;
54  		m_headers.put(FileUploadBase.CONTENT_TYPE, strContentType);
55  	}
56  
57  	/***
58  	 * @see javax.servlet.http.HttpServletRequest#getAuthType()
59  	 */
60  	public String getAuthType()
61  	{
62  		return null;
63  	}
64  
65  	/***
66  	 * @see javax.servlet.http.HttpServletRequest#getCookies()
67  	 */
68  	public Cookie[] getCookies()
69  	{
70  		return null;
71  	}
72  
73  	/***
74  	 * @see javax.servlet.http.HttpServletRequest#getDateHeader(String)
75  	 */
76  	public long getDateHeader(String arg0)
77  	{
78  		return 0;
79  	}
80  
81  	/***
82  	 * @see javax.servlet.http.HttpServletRequest#getHeader(String)
83  	 */
84  	public String getHeader(String headerName)
85  	{
86  		return (String) m_headers.get(headerName);
87  	}
88  
89  	/***
90  	 * @see javax.servlet.http.HttpServletRequest#getHeaders(String)
91  	 */
92  	public Enumeration getHeaders(String arg0)
93  	{
94  		// todo - implement
95  		return null;
96  	}
97  
98  	/***
99  	 * @see javax.servlet.http.HttpServletRequest#getHeaderNames()
100 	 */
101 	public Enumeration getHeaderNames()
102 	{
103 		// todo - implement
104 		return null;
105 	}
106 
107 	/***
108 	 * @see javax.servlet.http.HttpServletRequest#getIntHeader(String)
109 	 */
110 	public int getIntHeader(String arg0)
111 	{
112 		return 0;
113 	}
114 
115 	/***
116 	 * @see javax.servlet.http.HttpServletRequest#getMethod()
117 	 */
118 	public String getMethod()
119 	{
120 		return null;
121 	}
122 
123 	/***
124 	 * @see javax.servlet.http.HttpServletRequest#getPathInfo()
125 	 */
126 	public String getPathInfo()
127 	{
128 		return null;
129 	}
130 
131 	/***
132 	 * @see javax.servlet.http.HttpServletRequest#getPathTranslated()
133 	 */
134 	public String getPathTranslated()
135 	{
136 		return null;
137 	}
138 
139 	/***
140 	 * @see javax.servlet.http.HttpServletRequest#getContextPath()
141 	 */
142 	public String getContextPath()
143 	{
144 		return null;
145 	}
146 
147 	/***
148 	 * @see javax.servlet.http.HttpServletRequest#getQueryString()
149 	 */
150 	public String getQueryString()
151 	{
152 		return null;
153 	}
154 
155 	/***
156 	 * @see javax.servlet.http.HttpServletRequest#getRemoteUser()
157 	 */
158 	public String getRemoteUser()
159 	{
160 		return null;
161 	}
162 
163 	/***
164 	 * @see javax.servlet.http.HttpServletRequest#isUserInRole(String)
165 	 */
166 	public boolean isUserInRole(String arg0)
167 	{
168 		return false;
169 	}
170 
171 	/***
172 	 * @see javax.servlet.http.HttpServletRequest#getUserPrincipal()
173 	 */
174 	public Principal getUserPrincipal()
175 	{
176 		return null;
177 	}
178 
179 	/***
180 	 * @see javax.servlet.http.HttpServletRequest#getRequestedSessionId()
181 	 */
182 	public String getRequestedSessionId()
183 	{
184 		return null;
185 	}
186 
187 	/***
188 	 * @see javax.servlet.http.HttpServletRequest#getRequestURI()
189 	 */
190 	public String getRequestURI()
191 	{
192 		return null;
193 	}
194 
195 	/***
196 	 * @see javax.servlet.http.HttpServletRequest#getRequestURL()
197 	 */
198 	public StringBuffer getRequestURL()
199 	{
200 		return null;
201 	}
202 
203 	/***
204 	 * @see javax.servlet.http.HttpServletRequest#getServletPath()
205 	 */
206 	public String getServletPath()
207 	{
208 		return null;
209 	}
210 
211 	/***
212 	 * @see javax.servlet.http.HttpServletRequest#getSession(boolean)
213 	 */
214 	public HttpSession getSession(boolean arg0)
215 	{
216 		return null;
217 	}
218 
219 	/***
220 	 * @see javax.servlet.http.HttpServletRequest#getSession()
221 	 */
222 	public HttpSession getSession()
223 	{
224 		return null;
225 	}
226 
227 	/***
228 	 * @see javax.servlet.http.HttpServletRequest#isRequestedSessionIdValid()
229 	 */
230 	public boolean isRequestedSessionIdValid()
231 	{
232 		return false;
233 	}
234 
235 	/***
236 	 * @see javax.servlet.http.HttpServletRequest#isRequestedSessionIdFromCookie()
237 	 */
238 	public boolean isRequestedSessionIdFromCookie()
239 	{
240 		return false;
241 	}
242 
243 	/***
244 	 * @see javax.servlet.http.HttpServletRequest#isRequestedSessionIdFromURL()
245 	 */
246 	public boolean isRequestedSessionIdFromURL()
247 	{
248 		return false;
249 	}
250 
251 	/***
252 	 * @see javax.servlet.http.HttpServletRequest#isRequestedSessionIdFromUrl()
253 	 * @deprecated
254 	 */
255 	public boolean isRequestedSessionIdFromUrl()
256 	{
257 		return false;
258 	}
259 
260 	/***
261 	 * @see javax.servlet.ServletRequest#getAttribute(String)
262 	 */
263 	public Object getAttribute(String arg0)
264 	{
265 		return null;
266 	}
267 
268 	/***
269 	 * @see javax.servlet.ServletRequest#getAttributeNames()
270 	 */
271 	public Enumeration getAttributeNames()
272 	{
273 		return null;
274 	}
275 
276 	/***
277 	 * @see javax.servlet.ServletRequest#getCharacterEncoding()
278 	 */
279 	public String getCharacterEncoding()
280 	{
281 		return null;
282 	}
283 
284 	/***
285 	 * @see javax.servlet.ServletRequest#setCharacterEncoding(String)
286 	 */
287 	public void setCharacterEncoding(String arg0)
288 		throws UnsupportedEncodingException
289 	{
290 	}
291 
292 	/***
293 	 * @see javax.servlet.ServletRequest#getContentLength()
294 	 */
295 	public int getContentLength()
296 	{
297 		int iLength = 0;
298 
299 		if (null == m_requestData)
300 		{
301 			iLength = -1;
302 		}
303 		else
304 		{
305 			iLength = m_requestData.length;
306 		}
307 		return iLength;
308 	}
309 
310 	/***
311 	 * @see javax.servlet.ServletRequest#getContentType()
312 	 */
313 	public String getContentType()
314 	{
315 		return m_strContentType;
316 	}
317 
318 	/***
319 	 * @see javax.servlet.ServletRequest#getInputStream()
320 	 */
321 	public ServletInputStream getInputStream() throws IOException
322 	{
323 		ServletInputStream sis = new MyServletInputStream(m_requestData);
324 		return sis;
325 	}
326 
327 	/***
328 	 * @see javax.servlet.ServletRequest#getParameter(String)
329 	 */
330 	public String getParameter(String arg0)
331 	{
332 		return null;
333 	}
334 
335 	/***
336 	 * @see javax.servlet.ServletRequest#getParameterNames()
337 	 */
338 	public Enumeration getParameterNames()
339 	{
340 		return null;
341 	}
342 
343 	/***
344 	 * @see javax.servlet.ServletRequest#getParameterValues(String)
345 	 */
346 	public String[] getParameterValues(String arg0)
347 	{
348 		return null;
349 	}
350 
351 	/***
352 	 * @see javax.servlet.ServletRequest#getParameterMap()
353 	 */
354 	public Map getParameterMap()
355 	{
356 		return null;
357 	}
358 
359 	/***
360 	 * @see javax.servlet.ServletRequest#getProtocol()
361 	 */
362 	public String getProtocol()
363 	{
364 		return null;
365 	}
366 
367 	/***
368 	 * @see javax.servlet.ServletRequest#getScheme()
369 	 */
370 	public String getScheme()
371 	{
372 		return null;
373 	}
374 
375 	/***
376 	 * @see javax.servlet.ServletRequest#getServerName()
377 	 */
378 	public String getServerName()
379 	{
380 		return null;
381 	}
382 
383 	/***
384 	 * @see javax.servlet.ServletRequest#getServerPort()
385 	 */
386 	public int getServerPort()
387 	{
388 		return 0;
389 	}
390 
391 	/***
392 	 * @see javax.servlet.ServletRequest#getReader()
393 	 */
394 	public BufferedReader getReader() throws IOException
395 	{
396 		return null;
397 	}
398 
399 	/***
400 	 * @see javax.servlet.ServletRequest#getRemoteAddr()
401 	 */
402 	public String getRemoteAddr()
403 	{
404 		return null;
405 	}
406 
407 	/***
408 	 * @see javax.servlet.ServletRequest#getRemoteHost()
409 	 */
410 	public String getRemoteHost()
411 	{
412 		return null;
413 	}
414 
415 	/***
416 	 * @see javax.servlet.ServletRequest#setAttribute(String, Object)
417 	 */
418 	public void setAttribute(String arg0, Object arg1)
419 	{
420 	}
421 
422 	/***
423 	 * @see javax.servlet.ServletRequest#removeAttribute(String)
424 	 */
425 	public void removeAttribute(String arg0)
426 	{
427 	}
428 
429 	/***
430 	 * @see javax.servlet.ServletRequest#getLocale()
431 	 */
432 	public Locale getLocale()
433 	{
434 		return null;
435 	}
436 
437 	/***
438 	 * @see javax.servlet.ServletRequest#getLocales()
439 	 */
440 	public Enumeration getLocales()
441 	{
442 		return null;
443 	}
444 
445 	/***
446 	 * @see javax.servlet.ServletRequest#isSecure()
447 	 */
448 	public boolean isSecure()
449 	{
450 		return false;
451 	}
452 
453 	/***
454 	 * @see javax.servlet.ServletRequest#getRequestDispatcher(String)
455 	 */
456 	public RequestDispatcher getRequestDispatcher(String arg0)
457 	{
458 		return null;
459 	}
460 
461 	/***
462 	 * @see javax.servlet.ServletRequest#getRealPath(String)
463 	 * @deprecated
464 	 */
465 	public String getRealPath(String arg0)
466 	{
467 		return null;
468 	}
469 
470 	/***
471 	 *
472 	 *
473 	 *
474 	 *
475 	 */
476 	private static class MyServletInputStream
477 		extends javax.servlet.ServletInputStream
478 	{
479 		private ByteArrayInputStream m_bais;
480 
481 		public MyServletInputStream(byte[] data)
482 		{
483 			m_bais = new ByteArrayInputStream(data);
484 		}
485 
486 		public int read()
487 		{
488 			return m_bais.read();
489 		}
490 	}
491 }