1. Project Clover database Tue Dec 20 2016 21:24:09 CET
  2. Package com.xpn.xwiki.web

File XWikiServletRequestStub.java

 

Coverage histogram

../../../../img/srcFileCovDistChart4.png
78% of files have more coverage

Code metrics

22
100
79
1
610
456
91
0.91
1.27
79
1.15

Classes

Class Line # Actions
XWikiServletRequestStub 56 100 0% 91 136
0.323383132.3%
 

Contributing tests

This file is covered by 13 tests. .

Source view

1    /*
2    * See the NOTICE file distributed with this work for additional
3    * information regarding copyright ownership.
4    *
5    * This is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU Lesser General Public License as
7    * published by the Free Software Foundation; either version 2.1 of
8    * the License, or (at your option) any later version.
9    *
10    * This software is distributed in the hope that it will be useful,
11    * but WITHOUT ANY WARRANTY; without even the implied warranty of
12    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13    * Lesser General Public License for more details.
14    *
15    * You should have received a copy of the GNU Lesser General Public
16    * License along with this software; if not, write to the Free
17    * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
18    * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
19    */
20    package com.xpn.xwiki.web;
21   
22    import java.io.BufferedReader;
23    import java.io.IOException;
24    import java.io.UnsupportedEncodingException;
25    import java.net.URL;
26    import java.security.Principal;
27    import java.util.Collection;
28    import java.util.Collections;
29    import java.util.Enumeration;
30    import java.util.LinkedHashMap;
31    import java.util.Locale;
32    import java.util.Map;
33   
34    import javax.servlet.AsyncContext;
35    import javax.servlet.DispatcherType;
36    import javax.servlet.RequestDispatcher;
37    import javax.servlet.ServletContext;
38    import javax.servlet.ServletException;
39    import javax.servlet.ServletInputStream;
40    import javax.servlet.ServletRequest;
41    import javax.servlet.ServletResponse;
42    import javax.servlet.http.Cookie;
43    import javax.servlet.http.HttpServletRequest;
44    import javax.servlet.http.HttpServletResponse;
45    import javax.servlet.http.HttpSession;
46    import javax.servlet.http.Part;
47   
48    import org.apache.commons.lang3.ArrayUtils;
49   
50    /**
51    * This stub is intended to simulate a servlet request in a daemon context, in order to be able to create a custom XWiki
52    * context. This trick is used in to give a daemon thread access to the XWiki api.
53    *
54    * @version $Id: f20cc42afd7a17fb8bfea20ebd26aa7db90d3b09 $
55    */
 
56    public class XWikiServletRequestStub implements XWikiRequest
57    {
58    /**
59    * The scheme used by the runtime instance. This is required for creating URLs from daemon thread.
60    */
61    private String scheme;
62   
63    private String host;
64   
65    /**
66    * The context path used by the runtime instance. This is required for creating URLs from daemon thread.
67    */
68    private String contextPath;
69   
70    private StringBuffer requestURL;
71   
72    private String requestURI;
73   
74    private String serverName;
75   
76    private Map<String, String[]> parameters;
77   
 
78  7108 toggle public XWikiServletRequestStub()
79    {
80  7108 setHost("");
81    }
82   
83    /**
84    * @since 8.4RC1
85    */
 
86  2 toggle public XWikiServletRequestStub(URL requestURL, Map<String, String[]> requestParameters)
87    {
88  2 if (requestURL != null) {
89  2 setScheme(requestURL.getProtocol());
90  2 setHost(requestURL.getHost());
91   
92  2 setRequestURI(requestURL.toString());
93  2 setrequestURL(new StringBuffer(requestURL.toString()));
94    } else {
95  0 setHost("");
96    }
97   
98  2 this.parameters = clone(requestParameters);
99    }
100   
 
101  33 toggle private Map<String, String[]> clone(Map<String, String[]> map)
102    {
103  33 Map<String, String[]> clone;
104  33 if (this.parameters != null) {
105  0 clone = new LinkedHashMap<>(map.size());
106  0 for (Map.Entry<String, String[]> entry : map.entrySet()) {
107  0 clone.put(entry.getKey(), entry.getValue().clone());
108    }
109    } else {
110  33 clone = null;
111    }
112   
113  33 return clone;
114    }
115   
 
116  41 toggle public void setContextPath(String contextPath)
117    {
118  41 this.contextPath = contextPath;
119    }
120   
 
121  14152 toggle public void setHost(String host)
122    {
123  14152 this.host = host;
124    }
125   
 
126  7051 toggle public void setScheme(String scheme)
127    {
128  7051 this.scheme = scheme;
129    }
130   
131    /**
132    * @since 7.1RC1
133    * @since 6.4.5
134    */
 
135  39 toggle public void setrequestURL(StringBuffer requestURL)
136    {
137  39 this.requestURL = requestURL;
138    }
139   
140    /**
141    * @since 7.2M2
142    */
 
143  4 toggle public void setRequestURI(String requestURI)
144    {
145  4 this.requestURI = requestURI;
146    }
147   
148    /**
149    * @since 7.1RC1
150    * @since 6.4.5
151    */
 
152  37 toggle public void setServerName(String serverName)
153    {
154  37 this.serverName = serverName;
155    }
156   
 
157  7110 toggle @Override
158    public String getHeader(String s)
159    {
160  7110 if (s.equals("x-forwarded-host")) {
161  7106 return this.host;
162    }
163  4 return "";
164    }
165   
166    /**
167    * @since 7.3M1
168    */
 
169  0 toggle public void put(String key, String value)
170    {
171  0 if (this.parameters == null) {
172  0 this.parameters = new LinkedHashMap<>();
173    }
174   
175  0 String[] values = this.parameters.get(key);
176  0 if (values == null) {
177  0 values = new String[] { value };
178    } else {
179  0 values = ArrayUtils.add(values, value);
180    }
181  0 this.parameters.put(key, values);
182    }
183   
 
184  0 toggle @Override
185    public String get(String name)
186    {
187  0 return getParameter(name);
188    }
189   
 
190  0 toggle @Override
191    public HttpServletRequest getHttpServletRequest()
192    {
193  0 return null;
194    }
195   
 
196  0 toggle @Override
197    public Cookie getCookie(String cookieName)
198    {
199  0 return null;
200    }
201   
 
202  0 toggle @Override
203    public String getAuthType()
204    {
205  0 return "";
206    }
207   
 
208  1 toggle @Override
209    public Cookie[] getCookies()
210    {
211  1 return new Cookie[0];
212    }
213   
 
214  2 toggle @Override
215    public long getDateHeader(String s)
216    {
217  2 return 0;
218    }
219   
 
220  0 toggle @Override
221    public Enumeration<String> getHeaders(String s)
222    {
223  0 return null;
224    }
225   
 
226  0 toggle @Override
227    public Enumeration<String> getHeaderNames()
228    {
229  0 return null;
230    }
231   
 
232  0 toggle @Override
233    public int getIntHeader(String s)
234    {
235  0 return 0;
236    }
237   
 
238  0 toggle @Override
239    public String getMethod()
240    {
241  0 return null;
242    }
243   
 
244  0 toggle @Override
245    public String getPathInfo()
246    {
247  0 return null;
248    }
249   
 
250  0 toggle @Override
251    public String getPathTranslated()
252    {
253  0 return null;
254    }
255   
 
256  130 toggle @Override
257    public String getContextPath()
258    {
259  130 return this.contextPath;
260    }
261   
 
262  0 toggle @Override
263    public String getQueryString()
264    {
265  0 return "";
266    }
267   
 
268  0 toggle @Override
269    public String getRemoteUser()
270    {
271  0 return null;
272    }
273   
 
274  0 toggle @Override
275    public boolean isUserInRole(String s)
276    {
277  0 return false;
278    }
279   
 
280  0 toggle @Override
281    public Principal getUserPrincipal()
282    {
283  0 return null;
284    }
285   
 
286  0 toggle @Override
287    public String getRequestedSessionId()
288    {
289  0 return null;
290    }
291   
 
292  1 toggle @Override
293    public String getRequestURI()
294    {
295  1 return this.requestURI;
296    }
297   
 
298  70 toggle @Override
299    public StringBuffer getRequestURL()
300    {
301  70 return this.requestURL == null ? new StringBuffer() : this.requestURL;
302    }
303   
 
304  34 toggle @Override
305    public String getServletPath()
306    {
307  34 return null;
308    }
309   
 
310  0 toggle @Override
311    public HttpSession getSession(boolean b)
312    {
313  0 return null;
314    }
315   
 
316  0 toggle @Override
317    public HttpSession getSession()
318    {
319  0 return null;
320    }
321   
 
322  0 toggle @Override
323    public boolean isRequestedSessionIdValid()
324    {
325  0 return false;
326    }
327   
 
328  0 toggle @Override
329    public boolean isRequestedSessionIdFromCookie()
330    {
331  0 return false;
332    }
333   
 
334  0 toggle @Override
335    public boolean isRequestedSessionIdFromURL()
336    {
337  0 return false;
338    }
339   
340    /**
341    * @deprecated
342    */
 
343  0 toggle @Override
344    @Deprecated
345    public boolean isRequestedSessionIdFromUrl()
346    {
347  0 return false;
348    }
349   
 
350  2 toggle @Override
351    public Object getAttribute(String s)
352    {
353  2 return null;
354    }
355   
 
356  2 toggle @Override
357    public Enumeration<String> getAttributeNames()
358    {
359  2 return null;
360    }
361   
 
362  0 toggle @Override
363    public String getCharacterEncoding()
364    {
365  0 return null;
366    }
367   
 
368  0 toggle @Override
369    public void setCharacterEncoding(String s) throws UnsupportedEncodingException
370    {
371   
372    }
373   
 
374  0 toggle @Override
375    public int getContentLength()
376    {
377  0 return 0;
378    }
379   
 
380  0 toggle @Override
381    public String getContentType()
382    {
383  0 return null;
384    }
385   
 
386  0 toggle @Override
387    public ServletInputStream getInputStream() throws IOException
388    {
389  0 return null;
390    }
391   
 
392  3352 toggle @Override
393    public String getParameter(String s)
394    {
395  3352 if (this.parameters != null) {
396  0 String[] values = this.parameters.get(s);
397  0 return values != null && values.length > 0 ? values[0] : null;
398    }
399   
400  3351 return null;
401    }
402   
 
403  0 toggle @Override
404    public Enumeration<String> getParameterNames()
405    {
406  0 return this.parameters != null ? Collections.enumeration(this.parameters.keySet()) : null;
407    }
408   
 
409  0 toggle @Override
410    public String[] getParameterValues(String s)
411    {
412  0 if (this.parameters != null) {
413  0 String[] values = this.parameters.get(s);
414   
415  0 return values != null ? values.clone() : null;
416    }
417   
418  0 return null;
419    }
420   
 
421  31 toggle @Override
422    public Map<String, String[]> getParameterMap()
423    {
424  31 return clone(this.parameters);
425    }
426   
 
427  0 toggle @Override
428    public String getProtocol()
429    {
430  0 return null;
431    }
432   
 
433  7106 toggle @Override
434    public String getScheme()
435    {
436  7106 return this.scheme;
437    }
438   
 
439  4 toggle @Override
440    public String getServerName()
441    {
442  4 return this.serverName;
443    }
444   
 
445  0 toggle @Override
446    public int getServerPort()
447    {
448  0 return 0;
449    }
450   
 
451  0 toggle @Override
452    public BufferedReader getReader() throws IOException
453    {
454  0 return null;
455    }
456   
 
457  0 toggle @Override
458    public String getRemoteAddr()
459    {
460  0 return null;
461    }
462   
 
463  0 toggle @Override
464    public String getRemoteHost()
465    {
466  0 return null;
467    }
468   
 
469  2 toggle @Override
470    public void setAttribute(String s, Object o)
471    {
472   
473    }
474   
 
475  0 toggle @Override
476    public void removeAttribute(String s)
477    {
478   
479    }
480   
 
481  0 toggle @Override
482    public Locale getLocale()
483    {
484  0 return null;
485    }
486   
 
487  0 toggle @Override
488    public Enumeration<Locale> getLocales()
489    {
490  0 return null;
491    }
492   
 
493  75 toggle @Override
494    public boolean isSecure()
495    {
496  75 return false;
497    }
498   
 
499  0 toggle @Override
500    public RequestDispatcher getRequestDispatcher(String s)
501    {
502  0 return null;
503    }
504   
505    /**
506    * @deprecated
507    */
 
508  0 toggle @Override
509    @Deprecated
510    public String getRealPath(String s)
511    {
512  0 return null;
513    }
514   
 
515  0 toggle @Override
516    public int getRemotePort()
517    {
518  0 return 0;
519    }
520   
 
521  0 toggle @Override
522    public String getLocalName()
523    {
524  0 return null;
525    }
526   
 
527  0 toggle @Override
528    public String getLocalAddr()
529    {
530  0 return null;
531    }
532   
 
533  0 toggle @Override
534    public int getLocalPort()
535    {
536  0 return 0;
537    }
538   
 
539  0 toggle @Override
540    public boolean authenticate(HttpServletResponse httpServletResponse) throws IOException, ServletException
541    {
542  0 return false;
543    }
544   
 
545  0 toggle @Override
546    public void login(String s, String s1) throws ServletException
547    {
548    }
549   
 
550  0 toggle @Override
551    public void logout() throws ServletException
552    {
553   
554    }
555   
 
556  0 toggle @Override
557    public Collection<Part> getParts() throws IOException, ServletException
558    {
559  0 return null;
560    }
561   
 
562  0 toggle @Override
563    public Part getPart(String s) throws IOException, ServletException
564    {
565  0 return null;
566    }
567   
 
568  0 toggle @Override
569    public ServletContext getServletContext()
570    {
571  0 return null;
572    }
573   
 
574  0 toggle @Override
575    public AsyncContext startAsync() throws IllegalStateException
576    {
577  0 return null;
578    }
579   
 
580  0 toggle @Override
581    public AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse)
582    throws IllegalStateException
583    {
584  0 return null;
585    }
586   
 
587  0 toggle @Override
588    public boolean isAsyncStarted()
589    {
590  0 return false;
591    }
592   
 
593  0 toggle @Override
594    public boolean isAsyncSupported()
595    {
596  0 return false;
597    }
598   
 
599  0 toggle @Override
600    public AsyncContext getAsyncContext()
601    {
602  0 return null;
603    }
604   
 
605  0 toggle @Override
606    public DispatcherType getDispatcherType()
607    {
608  0 return null;
609    }
610    }