Author: julien(a)jboss.com
Date: 2008-04-12 09:04:55 -0400 (Sat, 12 Apr 2008)
New Revision: 10549
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/portlet/PortletRequestDecoder.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/test/core/portlet/PortletRequestDecoderTestCase.java
Log:
add test cases for resource url decoding
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/portlet/PortletRequestDecoder.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/portlet/PortletRequestDecoder.java 2008-04-12
12:49:44 UTC (rev 10548)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/portlet/PortletRequestDecoder.java 2008-04-12
13:04:55 UTC (rev 10549)
@@ -244,13 +244,27 @@
{
index = 1;
}
- else if ((meta & MODE_MASK) != 0 &&
MODE_PARAMETER.equals(name))
+ else if (type == RESOURCE_TYPE)
{
- index = 1;
+ if ((meta & RESOURCE_ID_MASK) != 0 &&
RESOURCE_ID_PARAMETER.equals(name))
+ {
+ index = 1;
+ }
+ else if ((meta & CACHEABILITY_MASK) != 0 &&
CACHEABILITY_PARAMETER.equals(name))
+ {
+ index = 1;
+ }
}
- else if ((meta & WINDOW_STATE_MASK) != 0 &&
WINDOW_STATE_PARAMETER.equals(name))
+ else
{
- index = 1;
+ if ((meta & MODE_MASK) != 0 &&
MODE_PARAMETER.equals(name))
+ {
+ index = 1;
+ }
+ else if ((meta & WINDOW_STATE_MASK) != 0 &&
WINDOW_STATE_PARAMETER.equals(name))
+ {
+ index = 1;
+ }
}
// We have interaction param(s) in the query string
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/test/core/portlet/PortletRequestDecoderTestCase.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/test/core/portlet/PortletRequestDecoderTestCase.java 2008-04-12
12:49:44 UTC (rev 10548)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/test/core/portlet/PortletRequestDecoderTestCase.java 2008-04-12
13:04:55 UTC (rev 10549)
@@ -29,6 +29,7 @@
import org.jboss.portal.portlet.OpaqueStateString;
import org.jboss.portal.portlet.ParametersStateString;
import org.jboss.portal.portlet.StateString;
+import org.jboss.portal.portlet.cache.CacheLevel;
import java.util.HashMap;
import java.util.Map;
@@ -46,9 +47,9 @@
{
}
- private String[] asStringArray(String s)
+ private String[] asStringArray(Object s)
{
- return new String[]{s};
+ return new String[]{s.toString()};
}
public void testCorruped()
@@ -342,7 +343,6 @@
queryParams.clear();
}
-
public void testActionNonOpaque()
{
Map queryParams = new HashMap();
@@ -394,7 +394,6 @@
form.clear();
}
-
public void testActionOpaque()
{
Map queryParams = new HashMap();
@@ -437,6 +436,104 @@
bodyParams.clear();
}
+ public void testResource()
+ {
+ Map queryParams = new HashMap();
+ PortletRequestDecoder o = new PortletRequestDecoder();
+
+ // Empty
+ queryParams.put(PortletRequestDecoder.META_PARAMETER,
asStringArray(Integer.toHexString(PortletRequestDecoder.RESOURCE_TYPE)));
+ o.decode(queryParams, null);
+ assertResource(o, null, ParametersStateString.create(), new ParameterMap(), null);
+ queryParams.clear();
+
+ // Query mode
+ queryParams.put(PortletRequestDecoder.META_PARAMETER,
asStringArray(Integer.toHexString(PortletRequestDecoder.RESOURCE_TYPE |
PortletRequestDecoder.RESOURCE_ID_MASK)));
+ queryParams.put(PortletRequestDecoder.RESOURCE_ID_PARAMETER,
asStringArray("resource_id"));
+ o.decode(queryParams, null);
+ assertResource(o, "resource_id", ParametersStateString.create(), new
ParameterMap(), null);
+ queryParams.clear();
+
+ // Query window state
+ queryParams.put(PortletRequestDecoder.META_PARAMETER,
asStringArray(Integer.toHexString(PortletRequestDecoder.RESOURCE_TYPE |
PortletRequestDecoder.CACHEABILITY_MASK)));
+ queryParams.put(PortletRequestDecoder.CACHEABILITY_PARAMETER,
asStringArray(CacheLevel.PAGE));
+ o.decode(queryParams, null);
+ assertResource(o, null, ParametersStateString.create(), new ParameterMap(),
CacheLevel.PAGE);
+ queryParams.clear();
+ }
+
+ public void testResourceNonOpaque()
+ {
+ Map queryParams = new HashMap();
+ Map bodyParams = new HashMap();
+ PortletRequestDecoder o = new PortletRequestDecoder();
+ ParametersStateString resState = ParametersStateString.create();
+ ParameterMap form = new ParameterMap();
+
+ // Query parameter
+ queryParams.put(PortletRequestDecoder.META_PARAMETER,
asStringArray(Integer.toHexString(PortletRequestDecoder.RESOURCE_PHASE)));
+ queryParams.put("foo", asStringArray("bar"));
+ o.decode(queryParams, null);
+ resState.setValue("foo", "bar");
+ assertResource(o, null, resState, form, null);
+ resState.clear();
+ queryParams.clear();
+ form.clear();
+
+ // Query multivalued parameter
+ queryParams.put(PortletRequestDecoder.META_PARAMETER,
asStringArray(Integer.toHexString(PortletRequestDecoder.RESOURCE_PHASE)));
+ queryParams.put("foo", new String[]{"bar1",
"bar2"});
+ o.decode(queryParams, null);
+ resState.setValues("foo", new String[]{"bar1",
"bar2"});
+ assertResource(o, null, resState, form, null);
+ resState.clear();
+ queryParams.clear();
+ form.clear();
+
+ // Body parameter
+ queryParams.put(PortletRequestDecoder.META_PARAMETER,
asStringArray(Integer.toHexString(PortletRequestDecoder.RESOURCE_PHASE)));
+ bodyParams.put("foo", asStringArray("bar"));
+ o.decode(queryParams, bodyParams);
+ form.setValue("foo", "bar");
+ assertResource(o, null, resState, form, null);
+ form.clear();
+ queryParams.clear();
+ bodyParams.clear();
+ form.clear();
+
+ // Body multivalued parameter
+ queryParams.put(PortletRequestDecoder.META_PARAMETER,
asStringArray(Integer.toHexString(PortletRequestDecoder.RESOURCE_PHASE)));
+ bodyParams.put("foo", new String[]{"bar1", "bar2"});
+ o.decode(queryParams, bodyParams);
+ form.setValues("foo", new String[]{"bar1", "bar2"});
+ assertResource(o, null, resState, form, null);
+ form.clear();
+ queryParams.clear();
+ bodyParams.clear();
+ form.clear();
+ }
+
+ private void assertResource(
+ PortletRequestDecoder decoder,
+ String expectedResourceId,
+ StateString expectedResourceState,
+ ParameterMap expectedForm,
+ CacheLevel expectedCacheability
+ )
+ {
+ assertEquals(PortletRequestDecoder.RESOURCE_TYPE, decoder.getType());
+ assertEquals(expectedResourceId, decoder.getResourceId());
+ assertEquals(expectedResourceState, decoder.getResourceState());
+ assertEquals(expectedForm, decoder.getForm());
+ assertEquals(expectedCacheability, decoder.getCacheability());
+
+ //
+ assertNull(decoder.getNavigationalState());
+ assertNull( decoder.getInteractionState());
+ assertNull(decoder.getMode());
+ assertNull(decoder.getWindowState());
+ }
+
private void assertAction(
PortletRequestDecoder decoder,
StateString expectedNavigationalState,
@@ -456,9 +553,9 @@
//
assertNull(decoder.getResourceId());
assertNull(decoder.getResourceState());
+ assertNull(decoder.getCacheability());
}
-
private void assertRender(
PortletRequestDecoder decoder,
StateString expectedNavigationalState,
@@ -476,6 +573,7 @@
assertNull(decoder.getInteractionState());
assertNull(decoder.getResourceId());
assertNull(decoder.getResourceState());
+ assertNull(decoder.getCacheability());
}
private void assertNav(
@@ -494,6 +592,7 @@
assertNull(decoder.getInteractionState());
assertNull(decoder.getResourceId());
assertNull(decoder.getResourceState());
+ assertNull(decoder.getCacheability());
}
private void assertFail(