1 16 package org.apache.pluto.portalImpl.portlet.test; 17 18 import java.util.ArrayList ; 19 import java.util.Enumeration ; 20 import java.util.HashMap ; 21 import java.util.Iterator ; 22 import java.util.Locale ; 23 import java.util.Map ; 24 import java.util.ResourceBundle ; 25 26 import javax.portlet.ActionRequest; 27 import javax.portlet.ActionResponse; 28 import javax.portlet.PortletConfig; 29 import javax.portlet.PortletContext; 30 import javax.portlet.PortletRequest; 31 32 38 public class ResourceBundleTest extends AbstractReflectivePortletTest { 39 40 public String getTestSuiteName() { 41 return "Resource Bundle Test"; 42 } 43 44 public Map doPrerequisiteAction(PortletContext context, ActionRequest req, 45 ActionResponse res) { 46 return new HashMap (); 47 48 } 49 protected TestResult checkResourceBundleExists(PortletConfig config, 53 PortletRequest req) { 54 TestResult res = new TestResult(); 55 res.setName("Get ResourceBundle Test"); 56 res.setDesc("Retrieves the resource bundle and ensures it's not null."); 57 58 ResourceBundle rb = config.getResourceBundle(req.getLocale()); 59 if(rb != null) { 60 res.setReturnCode(TestResult.PASSED); 61 } 62 else { 63 res.setReturnCode(TestResult.FAILED); 64 res.setResults(TestResult.FAILED); 65 } 66 return res; 67 } 68 protected TestResult checkGetNames(PortletConfig config, PortletRequest req) { 69 TestResult res = new TestResult(); 70 res.setName("Get Property Keys Test"); 71 res.setDesc("Retrieve the property names and ensure that the required keys are present."); 72 73 ArrayList keys = new ArrayList (); 74 keys.add("javax.portlet.title"); 75 keys.add("javax.portlet.short-title"); 76 keys.add("javax.portlet.keywords"); 77 78 ResourceBundle rb = config.getResourceBundle(req.getLocale()); 79 Enumeration enumerator= rb.getKeys(); 80 while(enumerator.hasMoreElements()) { 81 String key = enumerator.nextElement().toString(); 82 keys.remove(key); 83 } 84 85 if(keys.size() < 1) { 86 res.setReturnCode(TestResult.PASSED); 87 } 88 else { 89 res.setReturnCode(TestResult.FAILED); 90 StringBuffer sb = new StringBuffer (); 91 Iterator it = keys.iterator(); 92 while(it.hasNext()) { 93 sb.append(it.next()+", "); 94 } 95 96 res.setResults("Keys: "+sb.toString()+" are not defined."); 97 } 98 99 return res; 100 } 101 102 protected TestResult checkGetGermanBundle(PortletConfig config, 103 PortletRequest req) { 104 return doGenericLocaleRequiredFields(config, req, Locale.GERMAN); 105 } 106 107 protected TestResult checkGetEnglishBundle(PortletConfig config, 108 PortletRequest req) { 109 return doGenericLocaleRequiredFields(config, req, Locale.ENGLISH); 110 } 111 112 118 119 private TestResult doGenericLocaleRequiredFields(PortletConfig config, 120 PortletRequest req, 121 Locale locale) { 122 123 TestResult res = new TestResult(); 124 res.setName("Get Portlet Info for "+locale.getLanguage()); 125 res.setDesc("Retrieve the title and ensure it's set properly"); 126 127 String prefix = "_"+locale.getLanguage(); 128 129 if(!isBundleDeclared()) { 130 prefix = ""; 131 } 132 Map params = getInitParameters(); 133 ResourceBundle rb = config.getResourceBundle(locale); 134 135 String eTitle = (String )params.get("title"+prefix); 136 String eSTitle = (String )params.get("shorttitle"+prefix); 137 String eKeywds = (String )params.get("keywords"+prefix); 138 139 String title = rb.getString("javax.portlet.title"); 140 String sTitle = rb.getString("javax.portlet.short-title"); 141 String keywds = rb.getString("javax.portlet.keywords"); 142 143 StringBuffer sb = new StringBuffer (); 144 if(title==null || !title.trim().equals(eTitle.trim())) { 145 sb.append("Title :'"+title+"' != '"+eTitle+"';"); 146 } 147 if(sTitle==null || !sTitle.trim().equals(eSTitle.trim())) { 148 sb.append("Short Title :'"+sTitle+"' != '"+eSTitle+"';"); 149 } 150 if(keywds==null || !keywds.trim().equals(eKeywds.trim())) { 151 sb.append("Keywords :'"+keywds+"' != '"+eKeywds+"' "); 152 } 153 154 if(sb.length() < 1) { 155 res.setReturnCode(TestResult.PASSED); 156 } 157 else { 158 res.setReturnCode(TestResult.FAILED); 159 sb.insert(0, "The following information is not correct: "); 160 res.setResults(sb.toString()); 161 } 162 return res; 163 } 164 165 private boolean isBundleDeclared() { 166 String param = (String )getInitParameters().get("resource-bundle"); 167 if(Boolean.TRUE.toString().equals(param)) { 168 return true; 169 } 170 return false; 171 } 172 173 174 175 176 177 } 178 | Popular Tags |