1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/* 2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership. 5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with 7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License. You may obtain a copy of the License at 8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License. 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.text.tests.java.text; 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.Collator; 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.ParseException; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.RuleBasedCollator; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Locale; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class CollatorTest extends junit.framework.TestCase { 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.Collator#clone() 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_clone() { 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collator c = Collator.getInstance(Locale.GERMAN); 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collator c2 = (Collator) c.clone(); 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Clones answered false to equals", c.equals(c2)); 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Clones were equivalent", c != c2); 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.Collator#compare(java.lang.Object, java.lang.Object) 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_compareLjava_lang_ObjectLjava_lang_Object() { 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collator c = Collator.getInstance(Locale.FRENCH); 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object o, o2; 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.setStrength(Collator.IDENTICAL); 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o = "E"; 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o2 = "F"; 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("a) Failed on primary difference", c.compare(o, o2) < 0); 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o = "e"; 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o2 = "\u00e9"; 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("a) Failed on secondary difference", c.compare(o, o2) < 0); 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o = "e"; 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o2 = "E"; 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("a) Failed on tertiary difference", c.compare(o, o2) < 0); 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o = "\u0001"; 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o2 = "\u0002"; 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("a) Failed on identical", c.compare(o, o2) < 0); 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o = "e"; 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o2 = "e"; 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("a) Failed on equivalence", 0, c.compare(o, o2)); 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("a) Failed on primary expansion", 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.compare("\u01db", "v") < 0); 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.setStrength(Collator.TERTIARY); 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o = "E"; 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o2 = "F"; 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("b) Failed on primary difference", c.compare(o, o2) < 0); 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o = "e"; 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o2 = "\u00e9"; 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("b) Failed on secondary difference", c.compare(o, o2) < 0); 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o = "e"; 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o2 = "E"; 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("b) Failed on tertiary difference", c.compare(o, o2) < 0); 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o = "\u0001"; 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o2 = "\u0002"; 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("b) Failed on identical", 0, c.compare(o, o2)); 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o = "e"; 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o2 = "e"; 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("b) Failed on equivalence", 0, c.compare(o, o2)); 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.setStrength(Collator.SECONDARY); 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o = "E"; 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o2 = "F"; 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("c) Failed on primary difference", c.compare(o, o2) < 0); 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o = "e"; 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o2 = "\u00e9"; 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("c) Failed on secondary difference", c.compare(o, o2) < 0); 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o = "e"; 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o2 = "E"; 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("c) Failed on tertiary difference", 0, c.compare(o, o2)); 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o = "\u0001"; 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o2 = "\u0002"; 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("c) Failed on identical", 0, c.compare(o, o2)); 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o = "e"; 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o2 = "e"; 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("c) Failed on equivalence", 0, c.compare(o, o2)); 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.setStrength(Collator.PRIMARY); 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o = "E"; 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o2 = "F"; 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("d) Failed on primary difference", c.compare(o, o2) < 0); 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o = "e"; 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o2 = "\u00e9"; 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("d) Failed on secondary difference", 0, c.compare(o, o2)); 103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o = "e"; 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o2 = "E"; 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("d) Failed on tertiary difference", 0, c.compare(o, o2)); 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o = "\u0001"; 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o2 = "\u0002"; 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("d) Failed on identical", 0, c.compare(o, o2)); 109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o = "e"; 110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes o2 = "e"; 111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("d) Failed on equivalence", 0, c.compare(o, o2)); 112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.compare("e", new StringBuffer("Blah")); 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ClassCastException e) { 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // correct 117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Failed to throw ClassCastException"); 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.Collator#equals(java.lang.Object) 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_equalsLjava_lang_Object() { 126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collator c = Collator.getInstance(Locale.ENGLISH); 127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collator c2 = (Collator) c.clone(); 128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Cloned collators not equal", c.equals(c2)); 129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c2.setStrength(Collator.SECONDARY); 130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Collators with different strengths equal", !c.equals(c2)); 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.Collator#equals(java.lang.String, java.lang.String) 135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_equalsLjava_lang_StringLjava_lang_String() { 137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collator c = Collator.getInstance(Locale.FRENCH); 138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.setStrength(Collator.IDENTICAL); 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("a) Failed on primary difference", !c.equals("E", "F")); 141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("a) Failed on secondary difference", !c 142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals("e", "\u00e9")); 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("a) Failed on tertiary difference", !c.equals("e", "E")); 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("a) Failed on identical", !c.equals("\u0001", "\u0002")); 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("a) Failed on equivalence", c.equals("e", "e")); 146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.setStrength(Collator.TERTIARY); 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("b) Failed on primary difference", !c.equals("E", "F")); 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("b) Failed on secondary difference", !c 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals("e", "\u00e9")); 151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("b) Failed on tertiary difference", !c.equals("e", "E")); 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("b) Failed on identical", c.equals("\u0001", "\u0002")); 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("b) Failed on equivalence", c.equals("e", "e")); 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.setStrength(Collator.SECONDARY); 156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("c) Failed on primary difference", !c.equals("E", "F")); 157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("c) Failed on secondary difference", !c 158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals("e", "\u00e9")); 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("c) Failed on tertiary difference", c.equals("e", "E")); 160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("c) Failed on identical", c.equals("\u0001", "\u0002")); 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("c) Failed on equivalence", c.equals("e", "e")); 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.setStrength(Collator.PRIMARY); 164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("d) Failed on primary difference", !c.equals("E", "F")); 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("d) Failed on secondary difference", c.equals("e", "\u00e9")); 166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("d) Failed on tertiary difference", c.equals("e", "E")); 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("d) Failed on identical", c.equals("\u0001", "\u0002")); 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("d) Failed on equivalence", c.equals("e", "e")); 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.Collator#getAvailableLocales() 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //FIXME This test fails on Harmony ClassLibrary 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void failing_test_getAvailableLocales() { 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale[] locales = Collator.getAvailableLocales(); 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("No locales", locales.length > 0); 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes boolean english = false, german = false; 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = locales.length; --i >= 0;) { 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (locales[i].equals(Locale.ENGLISH)) 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes english = true; 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (locales[i].equals(Locale.GERMAN)) 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes german = true; 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Output the working locale to help diagnose a hang 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collator c1 = Collator.getInstance(locales[i]); 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Doesn't work", c1.compare("a", "b") < 0); 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong decomposition", 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c1.getDecomposition() == Collator.NO_DECOMPOSITION); 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong strength", c1.getStrength() == Collator.TERTIARY); 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (c1 instanceof RuleBasedCollator) { 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new RuleBasedCollator(((RuleBasedCollator) c1).getRules()); 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ParseException e) { 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("ParseException"); 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // assertTrue("Can't recreate: " + locales[i], temp.equals(c1)); 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Missing locales", english && german); 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.Collator#getDecomposition() 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //FIXME This test fails on Harmony ClassLibrary 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void failing_test_getDecomposition() { 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes RuleBasedCollator collator; 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes collator = new RuleBasedCollator("; \u0300 < a, A < b < c < d"); 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ParseException e) { 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("ParseException"); 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong default", 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes collator.getDecomposition() == Collator.CANONICAL_DECOMPOSITION); 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.Collator#getInstance() 220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getInstance() { 222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collator c1 = Collator.getInstance(); 223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collator c2 = Collator.getInstance(Locale.getDefault()); 224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong locale", c1.equals(c2)); 225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.Collator#getInstance(java.util.Locale) 229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getInstanceLjava_util_Locale() { 231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Used to test", true); 232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.Collator#getStrength() 236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getStrength() { 238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes RuleBasedCollator collator; 239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes collator = new RuleBasedCollator("; \u0300 < a, A < b < c < d"); 241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ParseException e) { 242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("ParseException"); 243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong default", collator.getStrength() == Collator.TERTIARY); 246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.Collator#setDecomposition(int) 250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //FIXME This test fails on Harmony ClassLibrary 252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void failing_test_setDecompositionI() { 253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collator c = Collator.getInstance(Locale.FRENCH); 254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.setStrength(Collator.IDENTICAL); 255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.setDecomposition(Collator.NO_DECOMPOSITION); 256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Collator should not be using decomposition", !c.equals( 257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "\u212B", "\u00C5")); // "ANGSTROM SIGN" and "LATIN CAPITAL 258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // LETTER A WITH RING ABOVE" 259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.setDecomposition(Collator.CANONICAL_DECOMPOSITION); 260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Collator should be using decomposition", c.equals("\u212B", 261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "\u00C5")); // "ANGSTROM SIGN" and "LATIN CAPITAL LETTER A WITH 262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // RING ABOVE" 263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Should not be equal under canonical decomposition", !c 264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals("\u2163", "IV")); // roman number "IV" 265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c.setDecomposition(Collator.FULL_DECOMPOSITION); 266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Should be equal under full decomposition", c.equals( 267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "\u2163", "IV")); // roman number "IV" 268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.Collator#setStrength(int) 272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_setStrengthI() { 274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Used to test", true); 275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 277