/** * Licensed under the Artistic License; you may not use this file * except in compliance with the License. * You may obtain a copy of the License at * * http://displaytag.sourceforge.net/license.html * * THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ package org.displaytag.portlet; import java.util.Map; import junit.framework.TestCase; import org.springframework.mock.web.MockPageContext; import org.springframework.mock.web.portlet.MockPortletRequest; import org.springframework.mock.web.portlet.MockRenderResponse; /** * @author Eric Dalquist <a href="mailto:edalquist@unicon.net">edalquist@unicon.net</a> * @version $Id$ */ public class PortletRequestHelperTest extends TestCase { /** * @see junit.framework.TestCase#getName() */ public String getName() { return "PortletRequestHelper Test"; } public void testNullPageContext() { try { new PortletRequestHelper(null); fail("IllegalArgumentException should have been thrown"); } catch (IllegalArgumentException iae) { // expected } } public void testEmptyPageContext() { final MockPageContext pageContext = new MockPageContext(); try { new PortletRequestHelper(pageContext); fail("IllegalStateException should have been thrown"); } catch (IllegalStateException ise) { // expected } pageContext.setAttribute(PortletRequestHelper.JAVAX_PORTLET_REQUEST, new MockPortletRequest()); pageContext.setAttribute(PortletRequestHelper.JAVAX_PORTLET_REQUEST, null); try { new PortletRequestHelper(pageContext); fail("IllegalStateException should have been thrown"); } catch (IllegalStateException ise) { // expected } pageContext.setAttribute(PortletRequestHelper.JAVAX_PORTLET_REQUEST, null); pageContext.setAttribute(PortletRequestHelper.JAVAX_PORTLET_RESPONSE, new MockRenderResponse()); try { new PortletRequestHelper(pageContext); fail("IllegalStateException should have been thrown"); } catch (IllegalStateException ise) { // expected } } public void testBasicPageContext() { final MockPageContext pageContext = new MockPageContext(); pageContext.setAttribute(PortletRequestHelper.JAVAX_PORTLET_REQUEST, new MockPortletRequest()); pageContext.setAttribute(PortletRequestHelper.JAVAX_PORTLET_RESPONSE, new MockRenderResponse()); new PortletRequestHelper(pageContext); } public void testRequestParameters() { final MockPageContext pageContext = new MockPageContext(); final MockPortletRequest request = new MockPortletRequest(); request.setParameter("STRING_PARAM", "STRING_VALUE"); request.setParameter("INTEGER_PARAM", "31337"); pageContext.setAttribute(PortletRequestHelper.JAVAX_PORTLET_REQUEST, request); pageContext.setAttribute(PortletRequestHelper.JAVAX_PORTLET_RESPONSE, new MockRenderResponse()); final PortletRequestHelper helper = new PortletRequestHelper(pageContext); final String strVal = helper.getParameter("STRING_PARAM"); assertEquals("STRING_VALUE", strVal); final Integer intVal = helper.getIntParameter("INTEGER_PARAM"); assertEquals(new Integer(31337), intVal); final Integer nullIntVal = helper.getIntParameter("STRING_PARAM"); assertNull(nullIntVal); final Map params = helper.getParameterMap(); assertEquals(2, params.size()); final String[] expextedStrArryVal = new String[]{"STRING_VALUE"}; final String[] strArryVal = (String[]) params.get("STRING_PARAM"); assertEquals(expextedStrArryVal.length, strArryVal.length); assertEquals(expextedStrArryVal[0], strArryVal[0]); final String[] expextedIntArryVal = new String[]{"31337"}; final String[] intArryVal = (String[]) params.get("INTEGER_PARAM"); assertEquals(expextedIntArryVal.length, intArryVal.length); assertEquals(expextedIntArryVal[0], intArryVal[0]); } public void testCreateEmptyHref() { final MockPageContext pageContext = new MockPageContext(); pageContext.setAttribute(PortletRequestHelper.JAVAX_PORTLET_REQUEST, new MockPortletRequest()); pageContext.setAttribute(PortletRequestHelper.JAVAX_PORTLET_RESPONSE, new MockRenderResponse()); final PortletRequestHelper helper = new PortletRequestHelper(pageContext); final PortletHref ref = (PortletHref) helper.getHref(); final Map params = ref.getParameterMap(); assertEquals(0, params.size()); assertNull(ref.getAnchor()); assertNull(ref.getRequestedMode()); assertNull(ref.getRequestedState()); assertFalse(ref.isRequestedSecure()); } public void testCreateSecureHref() { final MockPageContext pageContext = new MockPageContext(); final MockPortletRequest request = new MockPortletRequest(); request.setSecure(true); pageContext.setAttribute(PortletRequestHelper.JAVAX_PORTLET_REQUEST, request); pageContext.setAttribute(PortletRequestHelper.JAVAX_PORTLET_RESPONSE, new MockRenderResponse()); final PortletRequestHelper helper = new PortletRequestHelper(pageContext); final PortletHref ref = (PortletHref) helper.getHref(); final Map params = ref.getParameterMap(); assertEquals(0, params.size()); assertNull(ref.getAnchor()); assertNull(ref.getRequestedMode()); assertNull(ref.getRequestedState()); assertTrue(ref.isRequestedSecure()); } public void testParameterizedHref() { final MockPageContext pageContext = new MockPageContext(); final MockPortletRequest request = new MockPortletRequest(); request.setParameter("STRING_PARAM", "STRING_VALUE"); request.setParameter("INTEGER_PARAM", "31337"); pageContext.setAttribute(PortletRequestHelper.JAVAX_PORTLET_REQUEST, request); pageContext.setAttribute(PortletRequestHelper.JAVAX_PORTLET_RESPONSE, new MockRenderResponse()); final PortletRequestHelper helper = new PortletRequestHelper(pageContext); final PortletHref ref = (PortletHref) helper.getHref(); final Map params = ref.getParameterMap(); assertEquals(2, params.size()); final String[] expextedStrArryVal = new String[]{"STRING_VALUE"}; final String[] strArryVal = (String[]) params.get("STRING_PARAM"); assertEquals(expextedStrArryVal.length, strArryVal.length); assertEquals(expextedStrArryVal[0], strArryVal[0]); final String[] expextedIntArryVal = new String[]{"31337"}; final String[] intArryVal = (String[]) params.get("INTEGER_PARAM"); assertEquals(expextedIntArryVal.length, intArryVal.length); assertEquals(expextedIntArryVal[0], intArryVal[0]); assertNull(ref.getAnchor()); assertNull(ref.getRequestedMode()); assertNull(ref.getRequestedState()); assertFalse(ref.isRequestedSecure()); } }