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()


Reply via email to