|
|
|
@ -23,6 +23,7 @@ import java.io.OutputStreamWriter; |
|
|
|
import java.io.PrintWriter; |
|
|
|
import java.io.PrintWriter; |
|
|
|
import java.io.UnsupportedEncodingException; |
|
|
|
import java.io.UnsupportedEncodingException; |
|
|
|
import java.io.Writer; |
|
|
|
import java.io.Writer; |
|
|
|
|
|
|
|
import java.text.ParseException; |
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Collection; |
|
|
|
import java.util.Collection; |
|
|
|
@ -32,7 +33,6 @@ import java.util.List; |
|
|
|
import java.util.Locale; |
|
|
|
import java.util.Locale; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.TimeZone; |
|
|
|
import java.util.TimeZone; |
|
|
|
|
|
|
|
|
|
|
|
import javax.servlet.ServletOutputStream; |
|
|
|
import javax.servlet.ServletOutputStream; |
|
|
|
import javax.servlet.http.Cookie; |
|
|
|
import javax.servlet.http.Cookie; |
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
@ -490,16 +490,30 @@ public class MockHttpServletResponse implements HttpServletResponse { |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void setDateHeader(String name, long value) { |
|
|
|
public void setDateHeader(String name, long value) { |
|
|
|
|
|
|
|
setHeaderValue(name, formatDate(value)); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public long getDateHeader(String name) { |
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT, Locale.US); |
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT, Locale.US); |
|
|
|
dateFormat.setTimeZone(GMT); |
|
|
|
dateFormat.setTimeZone(GMT); |
|
|
|
setHeaderValue(name, dateFormat.format(new Date(value))); |
|
|
|
try { |
|
|
|
|
|
|
|
return dateFormat.parse(getHeader(name)).getTime(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
catch (ParseException ex) { |
|
|
|
|
|
|
|
throw new IllegalArgumentException( |
|
|
|
|
|
|
|
"Value for header '" + name + "' is not a valid Date: " + getHeader(name)); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void addDateHeader(String name, long value) { |
|
|
|
public void addDateHeader(String name, long value) { |
|
|
|
|
|
|
|
addHeaderValue(name, formatDate(value)); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private String formatDate(long date) { |
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT, Locale.US); |
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT, Locale.US); |
|
|
|
dateFormat.setTimeZone(GMT); |
|
|
|
dateFormat.setTimeZone(GMT); |
|
|
|
setHeaderValue(name, dateFormat.format(new Date(value))); |
|
|
|
return dateFormat.format(new Date(date)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
@ -538,11 +552,12 @@ public class MockHttpServletResponse implements HttpServletResponse { |
|
|
|
|
|
|
|
|
|
|
|
private boolean setSpecialHeader(String name, Object value) { |
|
|
|
private boolean setSpecialHeader(String name, Object value) { |
|
|
|
if (CONTENT_TYPE_HEADER.equalsIgnoreCase(name)) { |
|
|
|
if (CONTENT_TYPE_HEADER.equalsIgnoreCase(name)) { |
|
|
|
setContentType((String) value); |
|
|
|
setContentType(value.toString()); |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
else if (CONTENT_LENGTH_HEADER.equalsIgnoreCase(name)) { |
|
|
|
else if (CONTENT_LENGTH_HEADER.equalsIgnoreCase(name)) { |
|
|
|
setContentLength(Integer.parseInt((String) value)); |
|
|
|
setContentLength(value instanceof Number ? ((Number) value).intValue() : |
|
|
|
|
|
|
|
Integer.parseInt(value.toString())); |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
else { |
|
|
|
|