Author: julien(a)jboss.com
Date: 2008-01-13 11:07:37 -0500 (Sun, 13 Jan 2008)
New Revision: 9490
Added:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portletconfig/LocalesTestCase.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portletconfig/NoLocalesTestCase.java
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerCapabilitiesInfo.java
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerInfoBuilder.java
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/metadata/adapter/LocaleAdapter.java
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/metadata/factory/PortletApplicationModelFactory.java
modules/portlet/trunk/test/src/test/build.xml
modules/portlet/trunk/test/src/test/java/org/jboss/portal/portlet/test/metadata/PortletTestEverythingTestCase.java
modules/portlet/trunk/test/src/test/resources/jsr286/tck/portletconfig-war/WEB-INF/portlet.xml
modules/portlet/trunk/test/src/test/resources/metadata/portlet/portlet1.xml
modules/portlet/trunk/test/src/test/resources/metadata/portlet/portlet2-jsr286.xml
modules/portlet/trunk/test/src/test/resources/metadata/portlet/portlet2.xml
modules/portlet/trunk/test/src/test/resources/test/remote-jboss-unit.xml
Log:
- fixed bugs in the Locale unmarshalling with the model based unmarshaller
- added test cases for non trival locales
- implemented and tested 286 PortletConfig.getSupportedLocales()
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerCapabilitiesInfo.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerCapabilitiesInfo.java 2008-01-13
12:04:18 UTC (rev 9489)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerCapabilitiesInfo.java 2008-01-13
16:07:37 UTC (rev 9490)
@@ -94,6 +94,11 @@
this.supportedLocales = new HashSet<Locale>();
}
+ public void addLocale(Locale locale)
+ {
+ supportedLocales.add(locale);
+ }
+
public void add(String contentType, Mode mode)
{
// Determines which map and key to store the mode under
@@ -371,6 +376,6 @@
public Set<Locale> getLocales(String mimeType)
{
- return getAllLocales();
+ return supportedLocales;
}
}
\ No newline at end of file
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerInfoBuilder.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerInfoBuilder.java 2008-01-13
12:04:18 UTC (rev 9489)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerInfoBuilder.java 2008-01-13
16:07:37 UTC (rev 9490)
@@ -448,6 +448,12 @@
ContainerCapabilitiesInfo capabilities = new ContainerCapabilitiesInfo();
//
+ for (SupportedLocaleMetaData supportedLocaleMD : portletMD.getSupportedLocale())
+ {
+ capabilities.addLocale(supportedLocaleMD.getLocale());
+ }
+
+ //
for (SupportsMetaData supportsMD : portletMD.getSupports())
{
// Get the mime type
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/metadata/adapter/LocaleAdapter.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/metadata/adapter/LocaleAdapter.java 2008-01-13
12:04:18 UTC (rev 9489)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/metadata/adapter/LocaleAdapter.java 2008-01-13
16:07:37 UTC (rev 9490)
@@ -22,6 +22,8 @@
******************************************************************************/
package org.jboss.portal.portlet.impl.metadata.adapter;
+import org.jboss.portal.common.i18n.LocaleFormat;
+
import java.util.Locale;
import javax.xml.bind.annotation.adapters.XmlAdapter;
@@ -33,6 +35,15 @@
public class LocaleAdapter extends XmlAdapter<String, Locale>
{
+ public LocaleAdapter()
+ {
+ System.out.println("Build");
+ System.out.println("Build");
+ System.out.println("Build");
+ System.out.println("Build");
+ System.out.println("Build");
+ }
+
@Override
public String marshal(Locale arg0) throws Exception
{
@@ -42,7 +53,8 @@
@Override
public Locale unmarshal(String arg0) throws Exception
{
- return new Locale(arg0);
+ System.out.println("arg0 = " + arg0);
+ return LocaleFormat.DEFAULT.getLocale(arg0);
}
}
Added:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portletconfig/LocalesTestCase.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portletconfig/LocalesTestCase.java
(rev 0)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portletconfig/LocalesTestCase.java 2008-01-13
16:07:37 UTC (rev 9490)
@@ -0,0 +1,73 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.test.portlet.jsr286.tck.portletconfig;
+
+import org.jboss.portal.unit.annotations.TestCase;
+import org.jboss.portal.unit.Assertion;
+import org.jboss.portal.unit.PortletTestCase;
+import org.jboss.portal.unit.PortletTestContext;
+import org.jboss.portal.unit.base.AbstractUniversalTestPortlet;
+import org.jboss.portal.unit.actions.PortletRenderTestAction;
+import org.jboss.portal.test.portlet.framework.UTP9;
+import org.jboss.portal.common.util.Tools;
+import static org.jboss.unit.api.Assert.*;
+import org.jboss.unit.driver.DriverResponse;
+import org.jboss.unit.driver.response.EndTestResponse;
+
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+import javax.portlet.Portlet;
+import javax.portlet.PortletConfig;
+import java.util.Enumeration;
+import java.util.Locale;
+import java.util.List;
+import java.util.HashSet;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 630 $
+ */
+(a)TestCase({Assertion.JSR168_1000})
+public class LocalesTestCase
+{
+ public LocalesTestCase(PortletTestCase seq)
+ {
+ seq.bindAction(0, UTP9.RENDER_JOIN_POINT, new PortletRenderTestAction()
+ {
+ protected DriverResponse run(Portlet portlet, RenderRequest request,
RenderResponse response, PortletTestContext context)
+ {
+ PortletConfig cfg =
((AbstractUniversalTestPortlet)portlet).getPortletConfig();
+
+ //
+ Enumeration<Locale> locales = cfg.getSupportedLocales();
+ assertNotNull(locales);
+ List<Locale> list = Tools.toList(locales);
+ assertEquals(3, list.size());
+ assertEquals(Tools.toSet(Locale.ENGLISH, Locale.FRANCE, Locale.FRENCH), new
HashSet<Locale>(list));
+
+ //
+ return new EndTestResponse();
+ }
+ });
+ }
+}
\ No newline at end of file
Added:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portletconfig/NoLocalesTestCase.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portletconfig/NoLocalesTestCase.java
(rev 0)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portletconfig/NoLocalesTestCase.java 2008-01-13
16:07:37 UTC (rev 9490)
@@ -0,0 +1,68 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.test.portlet.jsr286.tck.portletconfig;
+
+import org.jboss.portal.unit.annotations.TestCase;
+import org.jboss.portal.unit.Assertion;
+import org.jboss.portal.unit.PortletTestCase;
+import org.jboss.portal.unit.PortletTestContext;
+import org.jboss.portal.unit.base.AbstractUniversalTestPortlet;
+import org.jboss.portal.unit.actions.PortletRenderTestAction;
+import org.jboss.portal.test.portlet.framework.UTP8;
+import static org.jboss.unit.api.Assert.*;
+import org.jboss.unit.driver.DriverResponse;
+import org.jboss.unit.driver.response.EndTestResponse;
+
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+import javax.portlet.Portlet;
+import javax.portlet.PortletConfig;
+import java.util.Enumeration;
+import java.util.Locale;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 630 $
+ */
+(a)TestCase({Assertion.JSR168_1000})
+public class NoLocalesTestCase
+{
+ public NoLocalesTestCase(PortletTestCase seq)
+ {
+ seq.bindAction(0, UTP8.RENDER_JOIN_POINT, new PortletRenderTestAction()
+ {
+ protected DriverResponse run(Portlet portlet, RenderRequest request,
RenderResponse response, PortletTestContext context)
+ {
+ PortletConfig cfg =
((AbstractUniversalTestPortlet)portlet).getPortletConfig();
+
+ //
+ Enumeration<Locale> locales = cfg.getSupportedLocales();
+ assertNotNull(locales);
+ assertFalse(locales.hasMoreElements());
+
+ //
+ return new EndTestResponse();
+ }
+ });
+ }
+}
\ No newline at end of file
Modified:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/metadata/factory/PortletApplicationModelFactory.java
===================================================================
---
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/metadata/factory/PortletApplicationModelFactory.java 2008-01-13
12:04:18 UTC (rev 9489)
+++
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/metadata/factory/PortletApplicationModelFactory.java 2008-01-13
16:07:37 UTC (rev 9490)
@@ -30,6 +30,8 @@
import org.jboss.portal.Mode;
import org.jboss.portal.WindowState;
import org.jboss.portal.common.i18n.LocalizedString;
+import org.jboss.portal.common.i18n.LocaleFormat;
+import org.jboss.portal.common.util.ConversionException;
import org.jboss.portal.portlet.TransportGuarantee;
import org.jboss.portal.portlet.impl.metadata.CustomPortletModeMetaData;
import org.jboss.portal.portlet.impl.metadata.CustomWindowStateMetaData;
@@ -605,7 +607,14 @@
SupportedLocaleMetaData md = (SupportedLocaleMetaData) object;
if ("supported-locale".equals(localName))
{
- md.setLocale(new Locale(value));
+ try
+ {
+ md.setLocale(LocaleFormat.DEFAULT.getLocale(value));
+ }
+ catch (ConversionException e)
+ {
+ throw new RuntimeException("Todo make this reportable ????");
+ }
}
}
Modified: modules/portlet/trunk/test/src/test/build.xml
===================================================================
--- modules/portlet/trunk/test/src/test/build.xml 2008-01-13 12:04:18 UTC (rev 9489)
+++ modules/portlet/trunk/test/src/test/build.xml 2008-01-13 16:07:37 UTC (rev 9490)
@@ -603,7 +603,7 @@
<jboss-unit>
- <tests config="${target}/test-classes/test/local-jboss-unit.xml"
>
+ <tests
config="${target}/test-classes/test/local-jboss-unit.xml">
</tests>
Modified:
modules/portlet/trunk/test/src/test/java/org/jboss/portal/portlet/test/metadata/PortletTestEverythingTestCase.java
===================================================================
---
modules/portlet/trunk/test/src/test/java/org/jboss/portal/portlet/test/metadata/PortletTestEverythingTestCase.java 2008-01-13
12:04:18 UTC (rev 9489)
+++
modules/portlet/trunk/test/src/test/java/org/jboss/portal/portlet/test/metadata/PortletTestEverythingTestCase.java 2008-01-13
16:07:37 UTC (rev 9490)
@@ -108,8 +108,10 @@
assertEquals("MyResourceBundle", p1.getResourceBundle());
List<SupportedLocaleMetaData> localeList = p1.getSupportedLocale();
+ assertEquals(3, localeList.size());
assertEquals(new Locale("en"), localeList.get(0).getLocale());
assertEquals(new Locale("fr"), localeList.get(1).getLocale());
+ assertEquals(new Locale("fr", "FR"),
localeList.get(2).getLocale());
PortletInfoMetaData pimd = p1.getPortletInfo();
assertNotNull(pimd);
@@ -180,8 +182,10 @@
assertNotNull(p6);
assertEquals(md, p6.getPortletApplication());
assertEquals("Portlet6", p6.getResourceBundle());
+ assertEquals(3, p6.getSupportedLocale().size());
assertEquals(new Locale("en"),
p6.getSupportedLocale().get(0).getLocale());
assertEquals(new Locale("fr"),
p6.getSupportedLocale().get(1).getLocale());
+ assertEquals(new Locale("fr", "FR"),
p6.getSupportedLocale().get(2).getLocale());
PortletMetaData p7 = md.getPortlet("Portlet7");
assertNotNull(p7);
@@ -272,8 +276,12 @@
assertEquals(Mode.create("HELP"),
smd2.getPortletModes().get(1).getPortletMode());
List<SupportedLocaleMetaData> localeList = p1.getSupportedLocale();
+ assertEquals(3, localeList.size());
assertEquals(new Locale("en"), localeList.get(0).getLocale());
assertEquals(new Locale("fr"), localeList.get(1).getLocale());
+ assertEquals(new Locale("fr", "FR").getLanguage(),
localeList.get(2).getLocale().getLanguage());
+ assertEquals(new Locale("fr", "FR").getCountry(),
localeList.get(2).getLocale().getCountry());
+ assertEquals(new Locale("fr", "FR"),
localeList.get(2).getLocale());
assertEquals("MyResourceBundle", p1.getResourceBundle());
@@ -337,8 +345,10 @@
PortletMetaData p6 = md.getPortlet("Portlet6");
assertNotNull(p6);
assertEquals("Portlet6", p6.getResourceBundle());
+ assertEquals(3, p6.getSupportedLocale().size());
assertEquals(new Locale("en"),
p6.getSupportedLocale().get(0).getLocale());
assertEquals(new Locale("fr"),
p6.getSupportedLocale().get(1).getLocale());
+ assertEquals(new Locale("fr", "FR"),
p6.getSupportedLocale().get(2).getLocale());
PortletMetaData p7 = md.getPortlet("Portlet7");
assertNotNull(p7);
@@ -432,8 +442,10 @@
assertEquals(WindowState.create("CUSTOM"),
smd2.getWindowStates().get(1).getWindowState());
List<SupportedLocaleMetaData> localeList = p1.getSupportedLocale();
+ assertEquals(3, localeList.size());
assertEquals(new Locale("en"), localeList.get(0).getLocale());
assertEquals(new Locale("fr"), localeList.get(1).getLocale());
+ assertEquals(new Locale("fr", "FR"),
localeList.get(2).getLocale());
assertEquals("MyResourceBundle", p1.getResourceBundle());
Modified:
modules/portlet/trunk/test/src/test/resources/jsr286/tck/portletconfig-war/WEB-INF/portlet.xml
===================================================================
---
modules/portlet/trunk/test/src/test/resources/jsr286/tck/portletconfig-war/WEB-INF/portlet.xml 2008-01-13
12:04:18 UTC (rev 9489)
+++
modules/portlet/trunk/test/src/test/resources/jsr286/tck/portletconfig-war/WEB-INF/portlet.xml 2008-01-13
16:07:37 UTC (rev 9490)
@@ -157,6 +157,25 @@
<supported-public-render-parameter>render_param2</supported-public-render-parameter>
</portlet>
+ <portlet>
+ <portlet-name>UniversalTestPortletH</portlet-name>
+
<portlet-class>org.jboss.portal.test.portlet.framework.UTP8</portlet-class>
+ <supports>
+ <mime-type>text/html</mime-type>
+ </supports>
+ </portlet>
+
+ <portlet>
+ <portlet-name>UniversalTestPortletI</portlet-name>
+
<portlet-class>org.jboss.portal.test.portlet.framework.UTP9</portlet-class>
+ <supports>
+ <mime-type>text/html</mime-type>
+ </supports>
+ <supported-locale>en</supported-locale>
+ <supported-locale>fr</supported-locale>
+ <supported-locale>fr_FR</supported-locale>
+ </portlet>
+
<default-namespace>urn:default-namespace</default-namespace>
<event-definition>
Modified: modules/portlet/trunk/test/src/test/resources/metadata/portlet/portlet1.xml
===================================================================
--- modules/portlet/trunk/test/src/test/resources/metadata/portlet/portlet1.xml 2008-01-13
12:04:18 UTC (rev 9489)
+++ modules/portlet/trunk/test/src/test/resources/metadata/portlet/portlet1.xml 2008-01-13
16:07:37 UTC (rev 9490)
@@ -37,6 +37,7 @@
</supports>
<supported-locale>en</supported-locale>
<supported-locale>fr</supported-locale>
+ <supported-locale>fr_FR</supported-locale>
<resource-bundle>MyResourceBundle</resource-bundle>
<portlet-info>
<title>very long portlet title</title>
@@ -164,6 +165,7 @@
</supports>
<supported-locale>en</supported-locale>
<supported-locale>fr</supported-locale>
+ <supported-locale>fr_FR</supported-locale>
<resource-bundle>Portlet6</resource-bundle>
<portlet-info>
<title>Very long portlet title</title>
Modified:
modules/portlet/trunk/test/src/test/resources/metadata/portlet/portlet2-jsr286.xml
===================================================================
---
modules/portlet/trunk/test/src/test/resources/metadata/portlet/portlet2-jsr286.xml 2008-01-13
12:04:18 UTC (rev 9489)
+++
modules/portlet/trunk/test/src/test/resources/metadata/portlet/portlet2-jsr286.xml 2008-01-13
16:07:37 UTC (rev 9490)
@@ -42,6 +42,7 @@
</supports>
<supported-locale>en</supported-locale>
<supported-locale>fr</supported-locale>
+ <supported-locale>fr_FR</supported-locale>
<resource-bundle>MyResourceBundle</resource-bundle>
<portlet-info>
<title>very long portlet title</title>
Modified: modules/portlet/trunk/test/src/test/resources/metadata/portlet/portlet2.xml
===================================================================
--- modules/portlet/trunk/test/src/test/resources/metadata/portlet/portlet2.xml 2008-01-13
12:04:18 UTC (rev 9489)
+++ modules/portlet/trunk/test/src/test/resources/metadata/portlet/portlet2.xml 2008-01-13
16:07:37 UTC (rev 9490)
@@ -38,6 +38,7 @@
</supports>
<supported-locale>en</supported-locale>
<supported-locale>fr</supported-locale>
+ <supported-locale>fr_FR</supported-locale>
<resource-bundle>MyResourceBundle</resource-bundle>
<portlet-info>
<title>very long portlet title</title>
@@ -165,6 +166,7 @@
</supports>
<supported-locale>en</supported-locale>
<supported-locale>fr</supported-locale>
+ <supported-locale>fr_FR</supported-locale>
<resource-bundle>Portlet6</resource-bundle>
<portlet-info>
<title>Very long portlet title</title>
Modified: modules/portlet/trunk/test/src/test/resources/test/remote-jboss-unit.xml
===================================================================
--- modules/portlet/trunk/test/src/test/resources/test/remote-jboss-unit.xml 2008-01-13
12:04:18 UTC (rev 9489)
+++ modules/portlet/trunk/test/src/test/resources/test/remote-jboss-unit.xml 2008-01-13
16:07:37 UTC (rev 9490)
@@ -5,6 +5,7 @@
xsi:schemaLocation="urn:jboss:jboss-unit:1.0 jboss-unit_1_0.xsd">
<!--Spec TCK Assertions tests-->
+<!--
<generic>
<class
name="org.jboss.unit.remote.driver.RemoteTestDriverClient"/>
<property name="archiveId"
value="test-jsr168-tck-dispatcher.war"/>
@@ -49,8 +50,10 @@
<class
name="org.jboss.unit.remote.driver.RemoteTestDriverClient"/>
<property name="archiveId"
value="test-jsr168-tck-windowstates.war"/>
</generic>
+-->
<!--API Tests-->
+<!--
<generic>
<class
name="org.jboss.unit.remote.driver.RemoteTestDriverClient"/>
<property name="archiveId"
value="test-jsr168-api-actionrequest.war"/>
@@ -103,8 +106,10 @@
<class
name="org.jboss.unit.remote.driver.RemoteTestDriverClient"/>
<property name="archiveId"
value="test-jsr168-api-windowstate.war"/>
</generic>
+-->
<!--Ext Tests-->
+<!--
<generic>
<class
name="org.jboss.unit.remote.driver.RemoteTestDriverClient"/>
<property name="archiveId"
value="test-jsr168-ext-dispatcher.war"/>
@@ -145,6 +150,7 @@
<class
name="org.jboss.unit.remote.driver.RemoteTestDriverClient"/>
<property name="archiveId"
value="test-jsr168-ext-nocache.war"/>
</generic>
+-->
<!--Spec TCK Assertions tests-->
<generic>