seq.bindAction(1, UTS1.SERVICE_JOIN_POINT, new ServletServiceTestAction()
{
protected Response run(Servlet servlet, HttpServletRequest request, HttpServletResponse response, PortletTestContext context) throws ServletException, IOException
{
//we get this object to assert some of it's method compare wieth http request methods
ResourceRequest portletRequest = (ResourceRequest)request.getAttribute("javax.portlet.request");
ResourceResponse portletResponse = (ResourceResponse)request.getAttribute("javax.portlet.response");
assertNotNull(portletRequest);
assertNotNull(portletResponse);
//SPEC:231
//Those should do nothing - some of the getters will be checked later
response.setCharacterEncoding("lolo");
response.setContentType("lolo");
response.setContentLength(22);
response.setLocale(Locale.TRADITIONAL_CHINESE);
response.addCookie(new Cookie("lolo", "bobo"));
response.sendError(404,"bobo");
response.sendRedirect("http://www.jboss.org");
response.setDateHeader("bobo",11);
response.addDateHeader("bobo",21);
response.setHeader("bobo", "toto");
response.addHeader("bobo", "bubu");
response.setIntHeader("toto",13);
response.addIntHeader("lala",25);
response.setStatus(505);
//SPEC:220
assertNull(request.getRemoteAddr());
assertNull(request.getRemoteHost());
assertNull(request.getRealPath("toto"));
assertNull(request.getLocalAddr());
assertNull(request.getLocalName());
assertNull(request.getRequestURL());
//SPEC:221
assertEquals(0, request.getRemotePort());
assertEquals(0, request.getLocalPort());
//SPEC:222
assertEquals(null, request.getPathInfo());
//TODO:NYI
//assertEquals("",request.getPathTranslated());
assertEquals("key1=k1value1&key2=k2value1", request.getQueryString());
assertEquals(seq.getContext().getContextPath() + "/universalServletA",request.getRequestURI());
assertEquals("/universalServletA", request.getServletPath());
//SPEC:223
assertEquals(portletRequest.getScheme(), request.getScheme());
assertEquals(portletRequest.getServerName(), request.getServerName());
assertEquals(portletRequest.getServerPort(), request.getServerPort());
// getAttributeNames, setAttribute, getAttribute, removeAttribute
request.setAttribute("key1", "k1atrr1");
request.setAttribute("key2", "k2attr2");
List attrNames = new LinkedList();
Enumeration attrEnum = request.getAttributeNames();
while (attrEnum.hasMoreElements())
{
attrNames.add(attrEnum.nextElement());
}
assertNotNull(request.getAttribute("key1"));
assertNotNull(request.getAttribute("key2"));
assertTrue(attrNames.contains("key1"));
assertTrue(attrNames.contains("key2"));
request.removeAttribute("key1");
assertNull(request.getAttribute("key1"));
assertNotNull(request.getAttribute("key2"));
//getLocale, getLocales
assertEquals(portletRequest.getLocale(), request.getLocale());
List portletLocales = new LinkedList();
List servletLocales = new LinkedList();
Enumeration pl = portletRequest.getLocales();
while (pl.hasMoreElements())
{
portletLocales.add(pl.nextElement());
}
Enumeration sl = request.getLocales();
while (sl.hasMoreElements())
{
servletLocales.add(sl.nextElement());
}
assertTrue(portletLocales.equals(servletLocales));
assertEquals(portletRequest.isSecure(), request.isSecure());
assertEquals(portletRequest.getAuthType(), request.getAuthType());
assertEquals(portletRequest.getContextPath(), request.getContextPath());
assertEquals(portletRequest.getRemoteUser(), request.getRemoteUser());
assertEquals(portletRequest.getUserPrincipal(), request.getUserPrincipal());
assertEquals(portletRequest.getRequestedSessionId(), request.getRequestedSessionId());
assertEquals(portletRequest.isRequestedSessionIdValid(), request.isRequestedSessionIdValid());
assertEquals(portletRequest.getCookies(), request.getCookies());
//SPEC:224
try
{
// request was already read
request.setCharacterEncoding("utf8");
assertTrue(false);
}
catch (IllegalStateException e)
{
//expected
}
assertEquals(portletRequest.getCharacterEncoding(), request.getCharacterEncoding());
//
assertEquals(portletRequest.getContentType(), request.getContentType());
assertEquals(portletRequest.getMethod(), request.getMethod());
assertEquals(portletRequest.getContentLength(), request.getContentLength());
assertEquals(portletRequest.getReader(), request.getReader());
//SPEC:225
//in this assertions we use parameters passed in query string of dispatcher
List paramNames = new LinkedList();
Enumeration paramEnum = request.getParameterNames();
while (paramEnum.hasMoreElements())
{
paramNames.add(paramEnum.nextElement());
}
assertTrue(paramNames.contains("key1"));
assertTrue(paramNames.contains("key2"));
assertEquals("k1value1", request.getParameter("key1"));
assertEquals(new String[]{"k1value1"}, request.getParameterValues("key1"));
Map paramNamesMap = request.getParameterMap();
assertTrue(paramNamesMap.containsKey("key1"));
assertTrue(paramNamesMap.containsKey("key2"));
//SPEC:226
assertEquals(portletRequest.getProperty("myheader"), request.getHeader("myheader"));
List rheaders = Collections.list(request.getHeaders("myheader"));
List pheaders = Collections.list(portletRequest.getProperties("myheader"));
for (Iterator iterator = pheaders.iterator(); iterator.hasNext();)
{
Object o = iterator.next();
assertTrue(rheaders.contains(o));
}
List headerNames = Collections.list(request.getHeaderNames());
Enumeration propertyNamesE = portletRequest.getPropertyNames();
while (propertyNamesE.hasMoreElements())
{
Object o = propertyNamesE.nextElement();
assertTrue(headerNames.contains(o));
}