diff options
author | Narayan Kamath <narayan@google.com> | 2014-07-30 17:04:02 +0100 |
---|---|---|
committer | Narayan Kamath <narayan@google.com> | 2014-07-31 13:01:53 +0100 |
commit | 386d30705bc91f8dd82843544f033595478b083b (patch) | |
tree | bad158bdefe5b895c52ea01969a4ca977454db6e /luni | |
parent | 2a0ed977a20e4c70ac14085be01454847780ea19 (diff) | |
download | libcore-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.java | 2 | ||||
-rw-r--r-- | luni/src/test/java/libcore/java/util/LocaleInternalsTest.java | 7 |
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()); } } |