MYFACESTEST-43 MockExternalContext20 does not implement all its methods.
diff --git a/test20/src/main/java/org/apache/myfaces/test/mock/MockExternalContext20.java b/test20/src/main/java/org/apache/myfaces/test/mock/MockExternalContext20.java
index 9552873..cc28689 100644
--- a/test20/src/main/java/org/apache/myfaces/test/mock/MockExternalContext20.java
+++ b/test20/src/main/java/org/apache/myfaces/test/mock/MockExternalContext20.java
@@ -17,10 +17,6 @@
package org.apache.myfaces.test.mock;
-import javax.faces.context.Flash;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
@@ -31,6 +27,13 @@
import java.util.List;
import java.util.Map;
+import javax.faces.context.Flash;
+import javax.servlet.ServletContext;
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
/**
* <p>Mock implementation of <code>ExternalContext</code> that includes the semantics
* added by JavaServer Faces 2.0.</p>
@@ -243,4 +246,111 @@
{
return MockFlash.getCurrentInstance(this);
}
+
+ @Override
+ public void setResponseContentLength(int length)
+ {
+ response.setContentLength(length);
+ }
+
+ @Override
+ public int getRequestContentLength()
+ {
+ return request.getContentLength();
+ }
+
+ @Override
+ public int getResponseBufferSize()
+ {
+ return response.getBufferSize();
+ }
+
+ @Override
+ public void setResponseBufferSize(int size)
+ {
+ response.setBufferSize(size);
+ }
+
+ @Override
+ public void setResponseStatus(int statusCode)
+ {
+ response.setStatus(statusCode);
+ }
+
+ @Override
+ public void invalidateSession()
+ {
+ HttpSession session = request.getSession(false);
+ if (session != null)
+ {
+ session.invalidate();
+ }
+ }
+
+ @Override
+ public boolean isResponseCommitted()
+ {
+ return response.isCommitted();
+ }
+
+ @Override
+ public void responseFlushBuffer() throws IOException
+ {
+ response.flushBuffer();
+ }
+
+ @Override
+ public void responseReset()
+ {
+ response.reset();
+ }
+
+ @Override
+ public void addResponseCookie(String name, String value,
+ Map<String, Object> properties)
+ {
+ Cookie cookie = new Cookie(name, value);
+ if (properties != null)
+ {
+ for (Map.Entry<String, Object> entry : properties.entrySet())
+ {
+ String propertyKey = entry.getKey();
+ Object propertyValue = entry.getValue();
+ if ("comment".equals(propertyKey))
+ {
+ cookie.setComment((String) propertyValue);
+ continue;
+ }
+ else if ("domain".equals(propertyKey))
+ {
+ cookie.setDomain((String)propertyValue);
+ continue;
+ }
+ else if ("maxAge".equals(propertyKey))
+ {
+ cookie.setMaxAge((Integer) propertyValue);
+ continue;
+ }
+ else if ("secure".equals(propertyKey))
+ {
+ cookie.setSecure((Boolean) propertyValue);
+ continue;
+ }
+ else if ("path".equals(propertyKey))
+ {
+ cookie.setPath((String) propertyValue);
+ continue;
+ }
+ throw new IllegalArgumentException("Unused key when creating Cookie");
+ }
+ }
+ response.addCookie(cookie);
+ }
+
+ @Override
+ public void addResponseHeader(String name, String value)
+ {
+ response.addHeader(name, value);
+ }
+
}