diff options
Diffstat (limited to 'luni')
-rw-r--r-- | luni/src/main/java/java/util/Locale.java | 4 | ||||
-rw-r--r-- | luni/src/test/java/java/text/CollatorTest.java | 61 |
2 files changed, 63 insertions, 2 deletions
diff --git a/luni/src/main/java/java/util/Locale.java b/luni/src/main/java/java/util/Locale.java index 7d03eac..c6535c1 100644 --- a/luni/src/main/java/java/util/Locale.java +++ b/luni/src/main/java/java/util/Locale.java @@ -392,8 +392,8 @@ public final class Locale implements Cloneable, Serializable { * to {@code locale}. The exact output form depends on whether this locale * corresponds to a specific language, country and variant, such as: * {@code English}, {@code English (United States)}, {@code English (United - * States,Computer)}, {@code anglais (États-Unis)}, {@code anglais - * (États-Unis,informatique)}. + * States,Computer)}, {@code anglais (États-Unis)}, {@code anglais + * (États-Unis,informatique)}. */ public String getDisplayName(Locale locale) { int count = 0; diff --git a/luni/src/test/java/java/text/CollatorTest.java b/luni/src/test/java/java/text/CollatorTest.java index 48c0eb1..5cded0a 100644 --- a/luni/src/test/java/java/text/CollatorTest.java +++ b/luni/src/test/java/java/text/CollatorTest.java @@ -82,4 +82,65 @@ public class CollatorTest extends junit.framework.TestCase { assertTrue("Error: \u00e0\u0325 should equal to a\u0325\u0300 with decomposition", myCollator.compare("\u00e0\u0325", "a\u0325\u0300") == 0); } + + public void testEqualsObject() throws ParseException { + String rule = "< a < b < c < d < e"; + RuleBasedCollator coll = new RuleBasedCollator(rule); + + assertEquals(Collator.TERTIARY, coll.getStrength()); + // This is a harmony test, but it assumes that RuleBasedCollators default to + // NO_DECOMPOSITION, which isn't true on Android. + // assertEquals(Collator.NO_DECOMPOSITION, coll.getDecomposition()); + RuleBasedCollator other = new RuleBasedCollator(rule); + assertTrue(coll.equals(other)); + + coll.setStrength(Collator.PRIMARY); + assertFalse(coll.equals(other)); + + coll.setStrength(Collator.TERTIARY); + coll.setDecomposition(Collator.CANONICAL_DECOMPOSITION); + other.setDecomposition(Collator.NO_DECOMPOSITION); // See comment above. + assertFalse(coll.equals(other)); + } + + public void test_Harmony_1352() throws Exception { + // Regression test for HARMONY-1352, that doesn't get run in the harmony test suite because + // of an earlier failure. + try { + new RuleBasedCollator("< a< b< c< d").getCollationElementIterator((CharacterIterator) null); + fail("NullPointerException expected"); + } catch (NullPointerException expected) { + } + } + + private void assertCollationElementIterator(CollationElementIterator it, Integer... offsets) { + for (int offset : offsets) { + assertEquals(offset, it.getOffset()); + it.next(); + } + assertEquals(CollationElementIterator.NULLORDER, it.next()); + } + + private void assertGetCollationElementIteratorString(Locale l, String s, Integer... offsets) { + RuleBasedCollator coll = (RuleBasedCollator) Collator.getInstance(l); + assertCollationElementIterator(coll.getCollationElementIterator(s), offsets); + } + + private void assertGetCollationElementIteratorCharacterIterator(Locale l, String s, Integer... offsets) { + RuleBasedCollator coll = (RuleBasedCollator) Collator.getInstance(l); + CharacterIterator it = new StringCharacterIterator(s); + assertCollationElementIterator(coll.getCollationElementIterator(it), offsets); + } + + public void testGetCollationElementIteratorString() throws Exception { + assertGetCollationElementIteratorString(new Locale("es", "", "TRADITIONAL"), "cha", 0, 2, 3); + assertGetCollationElementIteratorString(new Locale("es", "", ""), "cha", 0, 1, 2, 3); + assertGetCollationElementIteratorString(new Locale("de", "DE", ""), "\u00e6b", 0, 1, 1, 2); + } + + public void testGetCollationElementIteratorCharacterIterator() throws Exception { + assertGetCollationElementIteratorCharacterIterator(new Locale("es", "", "TRADITIONAL"), "cha", 0, 2, 3); + assertGetCollationElementIteratorCharacterIterator(new Locale("es", "", ""), "cha", 0, 1, 2, 3); + assertGetCollationElementIteratorCharacterIterator(new Locale("de", "DE", ""), "\u00e6b", 0, 1, 1, 2); + } } |