package org.springframework.faces.webflow;
import javax.faces.FacesException;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.context.FacesContextFactory;
import javax.faces.lifecycle.Lifecycle;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.myfaces.test.mock.MockExternalContext20;
import org.apache.myfaces.test.mock.MockHttpServletResponse;
public class MockBaseFacesContextFactory extends FacesContextFactory {
public FacesContext getFacesContext(Object context, Object request, Object response, Lifecycle lifecycle)
throws FacesException {
if (FacesContext.getCurrentInstance() != null
&& FacesContext.getCurrentInstance() instanceof MockBaseFacesContext) {
return FacesContext.getCurrentInstance();
} else {
ExternalContext ext = new MockExternalContext20((ServletContext) context, (HttpServletRequest) request,
(HttpServletResponse) response) {
public void setResponseBufferSize(int size) {
((MockHttpServletResponse) getResponse()).setBufferSize(size);
}
public void setResponseContentLength(int length) {
((MockHttpServletResponse) getResponse()).setContentLength(length);
}
public void setResponseContentType(String contentType) {
((MockHttpServletResponse) getResponse()).setContentType(contentType);
}
public void setResponseStatus(int statusCode) {
((MockHttpServletResponse) getResponse()).setStatus(statusCode);
}
};
return new MockBaseFacesContext(ext, lifecycle);
}
}
}