blob: 11b3c51cd788dbebc65a89fcd5fdb59577b09be8 [file] [log] [blame]
Index: lucene/core/src/test/org/apache/lucene/TestDemo.java
===================================================================
--- lucene/core/src/test/org/apache/lucene/TestDemo.java (revision 1330597)
+++ lucene/core/src/test/org/apache/lucene/TestDemo.java (working copy)
@@ -18,6 +18,7 @@
*/
import java.io.IOException;
+import java.util.Locale;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.MockAnalyzer;
@@ -76,4 +77,18 @@
ireader.close();
directory.close();
}
+
+ public void testLocaleRoundTrip() {
+ for (Locale locale : Locale.getAvailableLocales()) {
+ String s = locale.toString();
+ try {
+ Locale back = LuceneTestCase.localeForName(s);
+ assertEquals(locale.toString(), back.toString());
+ } catch (Exception e) {
+ System.err.println("Failed roundtrip: " + s + " (" + e.toString() + ")");
+ } catch (AssertionError e) {
+ System.err.println("Not equals: " + s + " (" + e.toString() + ")");
+ }
+ }
+ }
}
Index: lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java
===================================================================
--- lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java (revision 1330597)
+++ lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java (working copy)
@@ -1352,6 +1352,7 @@
public static Locale localeForName(String localeName) {
String elements[] = localeName.split("\\_");
switch(elements.length) {
+ case 4: /* fallthrough for special cases */
case 3: return new Locale(elements[0], elements[1], elements[2]);
case 2: return new Locale(elements[0], elements[1]);
case 1: return new Locale(elements[0]);