| 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.core.servlet.jsp.PortalJsp; 25 import org.jboss.portal.core.servlet.jsp.taglib.PortalLib; 26 import org.jboss.portal.portlet.impl.PortletConfigImpl; 27 import org.jboss.portal.portlet.metadata.LanguagesMetaData; 28 import org.jboss.portal.portlet.plugins.language.ResourceBundles; 29 30 34 public class I18nELTestCase 35 extends JspTestCase 36 { 37 private static final String RESOURCE_BUNDLE_NAME = "MyResourceBundle"; 38 39 40 public void test01() throws ServletException , IOException { 41 PortalJsp jbossJsp = new PortalJsp() 42 { 43 public void _jspService(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException , IOException  44 { 45 assertEquals("Test_fr", PortalLib.getMessage("test")); 46 } 47 }; 48 ResourceClassLoader loader = new ResourceClassLoader(Thread.currentThread().getContextClassLoader()); 50 loader.addResource(RESOURCE_BUNDLE_NAME + "_fr.properties", "javax.portlet.title=Title_fr\ntest=Test_fr\n"); 51 52 LanguagesMetaData.InfoMetaData infoMD = new LanguagesMetaData.InfoMetaData(); 54 infoMD.setTitle("Title"); 55 infoMD.setShortTitle("ShortTitle"); 56 LanguagesMetaData languagesMD = new LanguagesMetaData(); 57 languagesMD.setInfo(infoMD); 58 languagesMD.setResourceBundle(RESOURCE_BUNDLE_NAME); 59 60 ResourceBundles rbs = new ResourceBundles(languagesMD, loader); 62 63 PortletConfig portletConfig = new PortletConfigImpl("testPortlet", null, null, rbs); 64 request.setAttribute("javax.portlet.config", portletConfig); 65 66 HttpServletRequestWrapperImpl requestWrapper = new HttpServletRequestWrapperImpl(request); 67 requestWrapper.setLocale(Locale.FRENCH); 68 69 jbossJsp.service(requestWrapper, response); 70 jbossJsp.destroy(); 71 } 72 73 private class ResourceClassLoader extends ClassLoader  74 { 75 76 private Map resources = new HashMap (); 77 78 public ResourceClassLoader(ClassLoader parent) 79 { 80 super(parent); 81 } 82 83 public void addResource(String name, String content) 84 { 85 if (name == null) 86 { 87 throw new IllegalArgumentException (); 88 } 89 if (content == null) 90 { 91 throw new IllegalArgumentException (); 92 } 93 resources.put(name, content.getBytes()); 94 } 95 96 public InputStream getResourceAsStream(String name) 97 { 98 if (resources.containsKey(name)) 99 { 100 return new ByteArrayInputStream ((byte[])resources.get(name)); 101 } 102 else 103 { 104 return super.getResourceAsStream(name); 105 } 106 } 107 } 108 109 } 110 | Popular Tags |