001// Generated by delombok at Sun Jul 30 17:21:56 UTC 2023 002package de.cuioss.test.jsf.mocks; 003 004import static de.cuioss.tools.collect.CollectionLiterals.mutableList; 005import java.util.Collection; 006import java.util.Collections; 007import java.util.Enumeration; 008import java.util.List; 009import java.util.Locale; 010import java.util.Vector; 011import javax.servlet.AsyncContext; 012import javax.servlet.DispatcherType; 013import javax.servlet.ServletRequest; 014import javax.servlet.ServletResponse; 015import javax.servlet.http.HttpServletResponse; 016import javax.servlet.http.HttpSession; 017import javax.servlet.http.HttpSessionEvent; 018import javax.servlet.http.Part; 019import org.apache.myfaces.test.mock.MockHttpServletRequest; 020 021/** 022 * Extends {@link MockHttpServletRequest} and provides some additional 023 * convenience methods 024 * 025 * @author Oliver Wolff 026 */ 027public class CuiMockHttpServletRequest extends MockHttpServletRequest { 028 /** 029 * "http://localhost:8080/servletRequestUrl/" 030 */ 031 public static final String SERVLET_REQUEST_URL = "http://localhost:8080/servletRequestUrl/"; 032 private List<Locale> requestLocales = mutableList(Locale.getDefault()); 033 private String requestUrl = SERVLET_REQUEST_URL; 034 035 // API defined 036 @SuppressWarnings("rawtypes") 037 @Override 038 public Enumeration getLocales() { 039 return new Vector<>(requestLocales).elements(); 040 } 041 042 @Override 043 public StringBuffer getRequestURL() { 044 return new StringBuffer(requestUrl); 045 } 046 047 /* Servlet 3+ api */ 048 @Override 049 public boolean authenticate(final HttpServletResponse response) { 050 return false; 051 } 052 053 @Override 054 public Part getPart(final String name) { 055 return null; 056 } 057 058 @Override 059 public Collection<Part> getParts() { 060 return Collections.emptyList(); 061 } 062 063 @Override 064 public void login(final String username, final String password) { 065 // No login for mock 066 } 067 068 @Override 069 public void logout() { 070 // No logout for mock 071 } 072 073 @Override 074 public AsyncContext getAsyncContext() { 075 return null; 076 } 077 078 @Override 079 public DispatcherType getDispatcherType() { 080 return null; 081 } 082 083 @Override 084 public boolean isAsyncStarted() { 085 return false; 086 } 087 088 @Override 089 public boolean isAsyncSupported() { 090 return false; 091 } 092 093 @Override 094 public AsyncContext startAsync() { 095 return null; 096 } 097 098 @Override 099 public AsyncContext startAsync(final ServletRequest request, final ServletResponse response) { 100 return null; 101 } 102 103 /** 104 * getSession should never return an invalidated session. 105 */ 106 @Override 107 public HttpSession getSession(final boolean create) { 108 HttpSession session = null; 109 if (!create) { 110 session = super.getSession(false); 111 if (null == session) { 112 return null; 113 } 114 } else { 115 session = super.getSession(true); 116 } 117 try { 118 session.getAttribute("test"); // test if the session was invalidated 119 } catch (IllegalStateException e) { 120 super.setHttpSession(null); 121 session = super.getSession(true); 122 } 123 if (!(session instanceof CuiMockHttpSession)) { 124 session = new CuiMockHttpSession(getServletContext()); 125 super.setHttpSession(session); 126 var container = getWebContainer(); 127 if (container != null) { 128 var se = new HttpSessionEvent(session); 129 container.sessionCreated(se); 130 } 131 } 132 return session; 133 } 134 135 @java.lang.SuppressWarnings("all") 136 @lombok.Generated 137 public void setRequestLocales(final List<Locale> requestLocales) { 138 this.requestLocales = requestLocales; 139 } 140 141 @java.lang.SuppressWarnings("all") 142 @lombok.Generated 143 public void setRequestUrl(final String requestUrl) { 144 this.requestUrl = requestUrl; 145 } 146}