summaryrefslogtreecommitdiffstats
path: root/luni
diff options
context:
space:
mode:
authorNarayan Kamath <narayan@google.com>2014-07-30 17:04:02 +0100
committerNarayan Kamath <narayan@google.com>2014-07-31 13:01:53 +0100
commit386d30705bc91f8dd82843544f033595478b083b (patch)
treebad158bdefe5b895c52ea01969a4ca977454db6e /luni
parent2a0ed977a20e4c70ac14085be01454847780ea19 (diff)
downloadlibcore-386d30705bc91f8dd82843544f033595478b083b.zip
libcore-386d30705bc91f8dd82843544f033595478b083b.tar.gz
libcore-386d30705bc91f8dd82843544f033595478b083b.tar.bz2
Fix LocaleInternalsTest.
- After the new Java forLanguageTag implementation, bogus locales really do result in "und". - Fix a regression in unicode extension parsing, where we would always add a "null" to the keyword set. - Improve test assertions so that the reason for failure is obvious. bug: 15849709 Change-Id: I26fb348b872badb7844587cf290429e15dbb0f0e
Diffstat (limited to 'luni')
-rw-r--r--luni/src/main/java/java/util/Locale.java2
-rw-r--r--luni/src/test/java/libcore/java/util/LocaleInternalsTest.java7
2 files changed, 5 insertions, 4 deletions
diff --git a/luni/src/main/java/java/util/Locale.java b/luni/src/main/java/java/util/Locale.java
index e0582dc..da3e6a5 100644
--- a/luni/src/main/java/java/util/Locale.java
+++ b/luni/src/main/java/java/util/Locale.java
@@ -1988,7 +1988,7 @@ public final class Locale implements Cloneable, Serializable {
if (subtagsForKeyword.size() > 0) {
keywords.put(lastKeyword, joinBcp47Subtags(subtagsForKeyword));
- } else {
+ } else if (lastKeyword != null) {
keywords.put(lastKeyword, "");
}
}
diff --git a/luni/src/test/java/libcore/java/util/LocaleInternalsTest.java b/luni/src/test/java/libcore/java/util/LocaleInternalsTest.java
index 5a8a6cf..5344f08 100644
--- a/luni/src/test/java/libcore/java/util/LocaleInternalsTest.java
+++ b/luni/src/test/java/libcore/java/util/LocaleInternalsTest.java
@@ -16,6 +16,7 @@
package libcore.java.util;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Locale;
@@ -68,7 +69,7 @@ public class LocaleInternalsTest extends TestCase {
// Only attributes.
Locale.parseUnicodeExtension("foooo".split("-"), keywords, attributes);
assertTrue(attributes.contains("foooo"));
- assertTrue(keywords.isEmpty());
+ assertEquals(Collections.EMPTY_SET, keywords.keySet());
attributes.clear();
keywords.clear();
@@ -77,7 +78,7 @@ public class LocaleInternalsTest extends TestCase {
assertTrue(attributes.contains("foooo"));
assertTrue(attributes.contains("baa"));
assertTrue(attributes.contains("baaabaaa"));
- assertTrue(keywords.isEmpty());
+ assertEquals(Collections.EMPTY_SET, keywords.keySet());
// Only keywords
attributes.clear();
@@ -123,6 +124,6 @@ public class LocaleInternalsTest extends TestCase {
}
Locale.setDefault(new Locale("bogus", "LOCALE"));
- assertEquals("bogus__LOCALE", ICU.getDefaultLocale());
+ assertEquals("und", ICU.getDefaultLocale());
}
}