/******************************************************************************* * Copyright (c) 2008, 2016 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.ua.tests.help.webapp; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Locale; import javax.servlet.ServletOutputStream; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletResponse; /** * Class used for tests which require an HttpServletRequest parameter */ public class MockServletResponse implements HttpServletResponse { private List<Cookie> cookies = new ArrayList<>(); private String illegalCharactersFound = ""; @Override public String getCharacterEncoding() { return null; } @Override public String getContentType() { return null; } @Override public ServletOutputStream getOutputStream() throws IOException { return null; } @Override public PrintWriter getWriter() throws IOException { return null; } @Override public void setCharacterEncoding(String charset) { } @Override public void setContentLength(int len) { } @Override public void setContentType(String type) { } @Override public void setBufferSize(int size) { } @Override public int getBufferSize() { return 0; } @Override public void flushBuffer() throws IOException { } @Override public void resetBuffer() { } @Override public boolean isCommitted() { return false; } @Override public void reset() { } @Override public void setLocale(Locale loc) { } @Override public Locale getLocale() { return null; } @Override public void addCookie(Cookie cookie) { checkForIllegalCharacters(cookie.getValue()); // Replace if it already exists, otherwise set for (int i = 0; i < cookies.size(); i++) { Cookie nextCookie = cookies.get(i); if (nextCookie.getName().equals(cookie.getName())) { cookies.remove(i); cookies.add(cookie); return; } } cookies.add(cookie); } private void checkForIllegalCharacters(String value) { // Check for illegal characters final String illegalChars = "()<>@,;:\\\"/[]?={} \t"; for (int i = 0; i < illegalChars.length(); i++) { char ch = illegalChars.charAt(i); if (value.indexOf(ch) >= 0 && illegalCharactersFound.indexOf(ch) < 0) { illegalCharactersFound = illegalCharactersFound + ch; } } } public Cookie[] getCookies() { return cookies.toArray(new Cookie[cookies.size()]); } @Override public boolean containsHeader(String name) { // TODO Auto-generated method stub return false; } @Override public String encodeURL(String url) { // TODO Auto-generated method stub return null; } @Override public String encodeRedirectURL(String url) { // TODO Auto-generated method stub return null; } @Override public String encodeUrl(String url) { // TODO Auto-generated method stub return null; } @Override public String encodeRedirectUrl(String url) { // TODO Auto-generated method stub return null; } @Override public void sendError(int sc, String msg) throws IOException { // TODO Auto-generated method stub } @Override public void sendError(int sc) throws IOException { // TODO Auto-generated method stub } @Override public void sendRedirect(String location) throws IOException { // TODO Auto-generated method stub } @Override public void setDateHeader(String name, long date) { // TODO Auto-generated method stub } @Override public void addDateHeader(String name, long date) { // TODO Auto-generated method stub } @Override public void setHeader(String name, String value) { // TODO Auto-generated method stub } @Override public void addHeader(String name, String value) { // TODO Auto-generated method stub } @Override public void setIntHeader(String name, int value) { // TODO Auto-generated method stub } @Override public void addIntHeader(String name, int value) { // TODO Auto-generated method stub } @Override public void setStatus(int sc) { // TODO Auto-generated method stub } @Override public void setStatus(int sc, String sm) { // TODO Auto-generated method stub } public String getIllegalCharatersFound() { return illegalCharactersFound; } @Override public int getStatus() { // TODO Auto-generated method stub return 0; } @Override public String getHeader(String name) { // TODO Auto-generated method stub return null; } @Override public Collection<String> getHeaders(String name) { // TODO Auto-generated method stub return null; } @Override public Collection<String> getHeaderNames() { // TODO Auto-generated method stub return null; } @Override public void setContentLengthLong(long len) { // TODO Auto-generated method stub } }