Lang unit tests fail on Linux w/ Sun JDK
----------------------------------------
Key: ABDERA-23
URL: http://issues.apache.org/jira/browse/ABDERA-23
Project: Abdera
Issue Type: Bug
Environment: Ubuntu Edgy, Sun JDK 1.5.0_08, and 1.6.0RC
Reporter: Adam Constabaris
Priority: Minor
org.apache.abdera.test.iri.TestLang includes (implicitly) tests for the locale
parsing routine initLocale() in org.apache.abdera.util.lang.Lang, but those
tests check that the calculated Locale yields up certain hardcoded values that
don't match the results obtained in the above environment. This issue appears
to affect both trunk and the .20 branch.
Using new Locale("en", "US", ca") on Sun 1.5 and 1.6 JREs for Linux yields "US"
for displayCountry, while the existing test checks for equality with the
literal value "United States".
Proposed fix: it seems that the desired behavior is really that the
intiLocale() method yield up the right Locale. A patch that appears to address
the issue follows:
Index: TestLang.java
===================================================================
--- TestLang.java (revision 476614)
+++ TestLang.java (working copy)
@@ -17,6 +17,7 @@
*/
package org.apache.abdera.test.iri;
+import java.util.Locale;
import org.apache.abdera.util.lang.InvalidLangTagSyntax;
import org.apache.abdera.util.lang.Lang;
@@ -27,15 +28,17 @@
public static void testLang() throws Exception {
Lang lang = new Lang("en-US-ca");
-
+ Locale testLocale = new Locale("en", "US", "ca");
+
assertEquals(lang.getPrimary(),"en");
assertEquals(lang.getSubtag(0),"US");
assertEquals(lang.getSubtag(1),"ca");
- assertEquals(lang.getLocale().toString(), "en_US_ca");
- assertEquals(lang.getLocale().getDisplayCountry(), "United States");
- assertEquals(lang.getLocale().getDisplayLanguage(), "English");
-
+ assertEquals( testLocale, lang.getLocale() );
+ assertEquals(testLocale.toString(), lang.getLocale().toString());
+ assertEquals(testLocale.getDisplayCountry(),
lang.getLocale().getDisplayCountry());
+ assertEquals(testLocale.getDisplayLanguage(),
lang.getLocale().getDisplayLanguage());
+ assertEquals( testLocale.getDisplayVariant(),
lang.getLocale().getDisplayVariant());
assertTrue(lang.matches("*"));
assertTrue(lang.matches("en"));
assertTrue(lang.matches("EN"));
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira