1 9 package org.jboss.portal.test.core; 10 11 import java.io.ByteArrayInputStream ; 12 import java.io.IOException ; 13 import java.io.InputStream ; 14 import java.util.HashMap ; 15 import java.util.Locale ; 16 import java.util.Map ; 17 18 import javax.portlet.PortletConfig; 19 import javax.servlet.ServletException ; 20 import javax.servlet.http.HttpServletRequest ; 21 import javax.servlet.http.HttpServletResponse ; 22 23 import org.apache.cactus.JspTestCase; 24 import org.jboss.portal.common.context.Context; 25 import org.jboss.portal.common.context.DelegateContext; 26 import org.jboss.portal.core.servlet.jsp.PortalJsp; 27 import org.jboss.portal.core.servlet.jsp.taglib.PortalLib; 28 import org.jboss.portal.portlet.impl.PortletConfigImpl; 29 import org.jboss.portal.portlet.metadata.LanguagesMetaData; 30 import org.jboss.portal.portlet.plugins.language.ResourceBundles; 31 32 36 public class I18nOutELTestCase 37 extends JspTestCase 38 { 39 private static final String RESOURCE_BUNDLE_NAME = "MyResourceBundle"; 40 41 42 public void test01() throws ServletException , IOException { 43 PortalJsp jbossJsp = new PortalJsp() 44 { 45 public void _jspService(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException , IOException 46 { 47 assertEquals("Test_fr", PortalLib.i18nOut("key")); 48 } 49 }; 50 ResourceClassLoader loader = new ResourceClassLoader(Thread.currentThread().getContextClassLoader()); 52 loader.addResource(RESOURCE_BUNDLE_NAME + "_fr.properties", "javax.portlet.title=Title_fr\ntest=Test_fr\n"); 53 54 LanguagesMetaData.InfoMetaData infoMD = new LanguagesMetaData.InfoMetaData(); 56 infoMD.setTitle("Title"); 57 infoMD.setShortTitle("ShortTitle"); 58 LanguagesMetaData languagesMD = new LanguagesMetaData(); 59 languagesMD.setInfo(infoMD); 60 languagesMD.setResourceBundle(RESOURCE_BUNDLE_NAME); 61 62 ResourceBundles rbs = new ResourceBundles(languagesMD, loader); 64 65 PortletConfig portletConfig = new PortletConfigImpl("testPortlet", null, null, rbs); 66 request.setAttribute("javax.portlet.config", portletConfig); 67 68 HttpServletRequestWrapperImpl requestWrapper = new HttpServletRequestWrapperImpl(request); 69 requestWrapper.setLocale(Locale.FRENCH); 70 71 Context ctx = new DelegateContext(); 72 ctx.put("key", "test"); 73 request.setAttribute(PortalJsp.CTX_REQUEST, ctx); 74 75 jbossJsp.service(requestWrapper, response); 76 jbossJsp.destroy(); 77 } 78 79 private class ResourceClassLoader extends ClassLoader 80 { 81 82 private Map resources = new HashMap (); 83 84 public ResourceClassLoader(ClassLoader parent) 85 { 86 super(parent); 87 } 88 89 public void addResource(String name, String content) 90 { 91 if (name == null) 92 { 93 throw new IllegalArgumentException (); 94 } 95 if (content == null) 96 { 97 throw new IllegalArgumentException (); 98 } 99 resources.put(name, content.getBytes()); 100 } 101 102 public InputStream getResourceAsStream(String name) 103 { 104 if (resources.containsKey(name)) 105 { 106 return new ByteArrayInputStream ((byte[])resources.get(name)); 107 } 108 else 109 { 110 return super.getResourceAsStream(name); 111 } 112 } 113 } 114 115 } 116 | Popular Tags |