KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > portal > test > core > I18nOutELTestCase


1 /*****************************************
2  * *
3  * JBoss Portal: The OpenSource Portal *
4  * *
5  * Distributable under LGPL license. *
6  * See terms of license at gnu.org. *
7  * *
8  *****************************************/

9 package org.jboss.portal.test.core;
10
11 import java.io.ByteArrayInputStream JavaDoc;
12 import java.io.IOException JavaDoc;
13 import java.io.InputStream JavaDoc;
14 import java.util.HashMap JavaDoc;
15 import java.util.Locale JavaDoc;
16 import java.util.Map JavaDoc;
17
18 import javax.portlet.PortletConfig;
19 import javax.servlet.ServletException JavaDoc;
20 import javax.servlet.http.HttpServletRequest JavaDoc;
21 import javax.servlet.http.HttpServletResponse JavaDoc;
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 /**
33  * @author <a HREF="theute@jboss.org">Thomas Heute</a>
34  * $Revision: 1.2 $
35  */

36 public class I18nOutELTestCase
37       extends JspTestCase
38 {
39    private static final String JavaDoc RESOURCE_BUNDLE_NAME = "MyResourceBundle";
40
41    
42    public void test01() throws ServletException JavaDoc, IOException JavaDoc {
43       PortalJsp jbossJsp = new PortalJsp()
44       {
45          public void _jspService(HttpServletRequest JavaDoc arg0, HttpServletResponse JavaDoc arg1) throws ServletException JavaDoc, IOException JavaDoc
46          {
47             assertEquals("Test_fr", PortalLib.i18nOut("key"));
48          }
49       };
50       // Builder loader
51
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       // Build the language metadata
55
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       // Build the bundle
63
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 JavaDoc
80    {
81
82       private Map JavaDoc resources = new HashMap JavaDoc();
83
84       public ResourceClassLoader(ClassLoader JavaDoc parent)
85       {
86          super(parent);
87       }
88
89       public void addResource(String JavaDoc name, String JavaDoc content)
90       {
91          if (name == null)
92          {
93             throw new IllegalArgumentException JavaDoc();
94          }
95          if (content == null)
96          {
97             throw new IllegalArgumentException JavaDoc();
98          }
99          resources.put(name, content.getBytes());
100       }
101
102       public InputStream JavaDoc getResourceAsStream(String JavaDoc name)
103       {
104          if (resources.containsKey(name))
105          {
106             return new ByteArrayInputStream JavaDoc((byte[])resources.get(name));
107          }
108          else
109          {
110             return super.getResourceAsStream(name);
111          }
112       }
113    }
114
115 }
116
Popular Tags