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 Hughes 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.text.tests.java.text; 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.Normalizer; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.Normalizer.Form; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase; 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class NormalizerTest extends TestCase { 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.Normalizer.Form#values() 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_form_values() throws Exception { 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Form[] forms = Form.values(); 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(4, forms.length); 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(Form.NFD, forms[0]); 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(Form.NFC, forms[1]); 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(Form.NFKD, forms[2]); 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(Form.NFKC, forms[3]); 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.Normalizer.Form#valueOf(String) 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_form_valueOfLjava_lang_String() { 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Form.valueOf(null); 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NullPointerException"); 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(Form.NFC, Form.valueOf("NFC")); 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(Form.NFD, Form.valueOf("NFD")); 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(Form.NFKC, Form.valueOf("NFKC")); 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(Form.NFKD, Form.valueOf("NFKD")); 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Form.valueOf("not exist"); 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw IllegalArgumentException"); 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Form.valueOf("nfc"); 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw IllegalArgumentException"); 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Form.valueOf("NFC "); 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw IllegalArgumentException"); 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.Normalizer#isNormalized(CharSequence, Form) 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_isNormalized() throws Exception { 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String src = "\u00c1"; 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(Normalizer.isNormalized(src, Form.NFC)); 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(Normalizer.isNormalized(src, Form.NFD)); 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(Normalizer.isNormalized(src, Form.NFKC)); 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(Normalizer.isNormalized(src, Form.NFKD)); 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes src = "\u0041\u0301"; 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(Normalizer.isNormalized(src, Form.NFC)); 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(Normalizer.isNormalized(src, Form.NFD)); 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(Normalizer.isNormalized(src, Form.NFKC)); 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(Normalizer.isNormalized(src, Form.NFKD)); 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes src = "\ufb03"; 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(Normalizer.isNormalized(src, Form.NFC)); 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(Normalizer.isNormalized(src, Form.NFD)); 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(Normalizer.isNormalized(src, Form.NFKC)); 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(Normalizer.isNormalized(src, Form.NFKD)); 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes src = "\u0066\u0066\u0069"; 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(Normalizer.isNormalized(src, Form.NFC)); 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(Normalizer.isNormalized(src, Form.NFD)); 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(Normalizer.isNormalized(src, Form.NFKC)); 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(Normalizer.isNormalized(src, Form.NFKD)); 103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes src = ""; 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(Normalizer.isNormalized(src, Form.NFC)); 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(Normalizer.isNormalized(src, Form.NFD)); 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(Normalizer.isNormalized(src, Form.NFKC)); 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(Normalizer.isNormalized(src, Form.NFKD)); 109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.Normalizer#isNormalized(CharSequence, Form) 113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_isNormalized_exception() throws Exception { 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Normalizer.isNormalized(null, Form.NFC); 117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NullPointerException"); 118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Normalizer.isNormalized("chars", null); 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NullPointerException"); 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.Normalizer#normalize(CharSequence, Form) 132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_normalize() throws Exception { 134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String src = "\u00c1"; 135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("\u00c1", Normalizer.normalize(src, Form.NFC)); 136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("\u0041\u0301", Normalizer.normalize(src, Form.NFD)); 137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("\u00c1", Normalizer.normalize(src, Form.NFKC)); 138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("\u0041\u0301", Normalizer.normalize(src, Form.NFKD)); 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes src = "\u0041\u0301"; 141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("\u00c1", Normalizer.normalize(src, Form.NFC)); 142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("\u0041\u0301", Normalizer.normalize(src, Form.NFD)); 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("\u00c1", Normalizer.normalize(src, Form.NFKC)); 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("\u0041\u0301", Normalizer.normalize(src, Form.NFKD)); 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes src = "\ufb03"; 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("\ufb03", Normalizer.normalize(src, Form.NFC)); 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("\ufb03", Normalizer.normalize(src, Form.NFD)); 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("\u0066\u0066\u0069", Normalizer.normalize(src, Form.NFKC)); 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("\u0066\u0066\u0069", Normalizer.normalize(src, Form.NFKD)); 151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes src = "\u0066\u0066\u0069"; 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("\u0066\u0066\u0069", Normalizer.normalize(src, Form.NFC)); 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("\u0066\u0066\u0069", Normalizer.normalize(src, Form.NFD)); 155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("\u0066\u0066\u0069", Normalizer.normalize(src, Form.NFKC)); 156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("\u0066\u0066\u0069", Normalizer.normalize(src, Form.NFKD)); 157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes src = ""; 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("", Normalizer.normalize(src, Form.NFC)); 160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("", Normalizer.normalize(src, Form.NFD)); 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("", Normalizer.normalize(src, Form.NFKC)); 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("", Normalizer.normalize(src, Form.NFKD)); 163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.Normalizer#normalize(CharSequence, Form) 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_normalize_exception() throws Exception { 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Normalizer.normalize(null, Form.NFC); 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NullPointerException"); 172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Normalizer.normalize("chars", null); 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NullPointerException"); 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 184