1 11 package org.jboss.portal.test.portlet.preferences.spec; 12 13 import org.jboss.portal.junit.result.InvokeURLResult; 14 import org.jboss.portal.junit.result.AssertResult; 15 import org.jboss.portal.junit.Result; 16 import org.jboss.portal.test.portlet.AbstractPortlet; 17 18 import javax.portlet.ActionRequest; 19 import javax.portlet.ActionResponse; 20 import javax.portlet.PortletException; 21 import javax.portlet.PortletSecurityException; 22 import javax.portlet.RenderRequest; 23 import javax.portlet.RenderResponse; 24 import javax.portlet.PortletURL; 25 import javax.portlet.PortletPreferences; 26 import java.io.IOException ; 27 import java.util.Map ; 28 29 33 public class PreferencesMapModificationDoesNotModifyPreferencesValuesPortlet extends AbstractPortlet 34 { 35 36 public void processAction(final ActionRequest request, ActionResponse response) throws PortletException, PortletSecurityException, IOException 37 { 38 int requestCount = getRequestCount(request); 39 if (requestCount == 1) 40 { 41 AssertResult result = new AssertResult(); 42 result.execute(new AssertResult.Test() 43 { 44 public void run() throws Exception 45 { 46 PortletPreferences prefs = request.getPreferences(); 48 Map map = prefs.getMap(); 49 50 String [] singlePref = (String [])map.get("single_pref"); 52 String [] multiPref = (String [])map.get("multi_pref"); 53 assertEquals(new String []{"single_pref_value"}, singlePref); 54 assertEquals(new String []{"multi_pref_value_1","multi_pref_value_2"}, multiPref); 55 56 singlePref[0] = "new_single_pref_value"; 58 multiPref[0] = "new_multi_pref_value_1"; 59 multiPref[1] = "new_multi_pref_value_2"; 60 61 assertEquals("single_pref_value", prefs.getValue("single_pref", "other")); 63 assertEquals(new String []{"multi_pref_value_1","multi_pref_value_2"}, prefs.getValues("multi_pref", new String []{"other"})); 64 } 65 }); 66 setRequestLocal(request, result); 67 } 68 } 69 70 public void render(final RenderRequest request, RenderResponse response) throws PortletException, PortletSecurityException, IOException 71 { 72 Result result = null; 73 int requestCount = getRequestCount(request); 74 if (requestCount == 0) 75 { 76 PortletURL url = response.createActionURL(); 77 result = new InvokeURLResult(url.toString()); 78 } 79 else if (requestCount == 1) 80 { 81 result = (Result)getRequestLocal(request); 82 } 83 84 sendResult(response, result); 86 } 87 } 88 | Popular Tags |