Author: drobiazko
Date: Sun Oct 3 20:56:45 2010
New Revision: 1004048
URL: http://svn.apache.org/viewvc?rev=1004048&view=rev
Log:
TAP5-1293: Whitespaces in SymbolConstants.SUPPORTED_LOCALES cause that locales
are not persised
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/LocalizationSetterImpl.java
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LocalizationSetterImplTest.java
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/LocalizationSetterImpl.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/LocalizationSetterImpl.java?rev=1004048&r1=1004047&r2=1004048&view=diff
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/LocalizationSetterImpl.java
(original)
+++
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/LocalizationSetterImpl.java
Sun Oct 3 20:56:45 2010
@@ -25,6 +25,7 @@ import org.apache.tapestry5.SelectModel;
import org.apache.tapestry5.SymbolConstants;
import org.apache.tapestry5.internal.OptionModelImpl;
import org.apache.tapestry5.internal.SelectModelImpl;
+import org.apache.tapestry5.internal.TapestryInternalUtils;
import org.apache.tapestry5.ioc.annotations.Symbol;
import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
import org.apache.tapestry5.ioc.services.ThreadLocale;
@@ -59,23 +60,26 @@ public class LocalizationSetterImpl impl
ThreadLocale threadLocale,
@Symbol(SymbolConstants.SUPPORTED_LOCALES)
- String supportedLocaleNames)
+ String localeNames)
{
this.request = request;
this.persistentLocale = persistentLocale;
this.threadLocale = threadLocale;
- String[] names = supportedLocaleNames.split(",");
-
- this.supportedLocaleNames = CollectionFactory.newSet(names);
+ this.supportedLocaleNames = CollectionFactory.newSet();
+
+ for (String name : TapestryInternalUtils.splitAtCommas(localeNames))
+ {
+ supportedLocaleNames.add(name.toLowerCase());
+ }
- supportedLocales = parseNames(names);
+ supportedLocales = parseNames(supportedLocaleNames);
defaultLocale = supportedLocales.get(0);
}
- private List<Locale> parseNames(String[] localeNames)
+ private List<Locale> parseNames(Set<String> localeNames)
{
List<Locale> list = CollectionFactory.newList();
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LocalizationSetterImplTest.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LocalizationSetterImplTest.java?rev=1004048&r1=1004047&r2=1004048&view=diff
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LocalizationSetterImplTest.java
(original)
+++
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LocalizationSetterImplTest.java
Sun Oct 3 20:56:45 2010
@@ -14,6 +14,8 @@
package org.apache.tapestry5.internal.services;
+import static org.apache.tapestry5.ioc.internal.util.CollectionFactory.newSet;
+
import java.util.List;
import java.util.Locale;
@@ -21,6 +23,7 @@ import org.apache.tapestry5.OptionModel;
import org.apache.tapestry5.SelectModel;
import org.apache.tapestry5.internal.test.InternalBaseTestCase;
import org.apache.tapestry5.ioc.services.ThreadLocale;
+import org.apache.tapestry5.ioc.test.TestBase;
import org.apache.tapestry5.services.LocalizationSetter;
import org.apache.tapestry5.services.PersistentLocale;
import org.apache.tapestry5.services.Request;
@@ -94,6 +97,26 @@ public class LocalizationSetterImplTest
assertListsEquals(setter.getSupportedLocales(), Locale.ENGLISH,
Locale.FRENCH);
}
+
+ @Test
+ public void get_selected_locale_names()
+ {
+ LocalizationSetter setter = new LocalizationSetterImpl(null, null,
null, "en,fr");
+
+ Object localeNames = TestBase.get(setter, "supportedLocaleNames");
+
+ assertTrue(newSet("en", "fr").equals(localeNames));
+ }
+
+ @Test
+ public void get_selected_locale_names_with_whitespaces()
+ {
+ LocalizationSetter setter = new LocalizationSetterImpl(null, null,
null, "en, fr, de");
+
+ Object localeNames = TestBase.get(setter, "supportedLocaleNames");
+
+ assertTrue(newSet("en", "fr", "de").equals(localeNames));
+ }
@Test
public void get_locale_model()