1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18 package org.apache.harmony.tests.java.text; 19 20 import java.text.Normalizer; 21 import java.text.Normalizer.Form; 22 23 import junit.framework.TestCase; 24 25 public class NormalizerTest extends TestCase { 26 /** 27 * @tests java.text.Normalizer.Form#values() 28 */ 29 public void test_form_values() throws Exception { 30 Form[] forms = Form.values(); 31 assertEquals(4, forms.length); 32 assertEquals(Form.NFD, forms[0]); 33 assertEquals(Form.NFC, forms[1]); 34 assertEquals(Form.NFKD, forms[2]); 35 assertEquals(Form.NFKC, forms[3]); 36 } 37 38 /** 39 * @tests java.text.Normalizer.Form#valueOf(String) 40 */ 41 public void test_form_valueOfLjava_lang_String() { 42 try { 43 Form.valueOf(null); 44 fail("Should throw NullPointerException"); 45 } catch (NullPointerException e) { 46 // expected 47 } 48 49 assertEquals(Form.NFC, Form.valueOf("NFC")); 50 assertEquals(Form.NFD, Form.valueOf("NFD")); 51 assertEquals(Form.NFKC, Form.valueOf("NFKC")); 52 assertEquals(Form.NFKD, Form.valueOf("NFKD")); 53 54 try { 55 Form.valueOf("not exist"); 56 fail("Should throw IllegalArgumentException"); 57 } catch (IllegalArgumentException e) { 58 // expected 59 } 60 61 try { 62 Form.valueOf("nfc"); 63 fail("Should throw IllegalArgumentException"); 64 } catch (IllegalArgumentException e) { 65 // expected 66 } 67 68 try { 69 Form.valueOf("NFC "); 70 fail("Should throw IllegalArgumentException"); 71 } catch (IllegalArgumentException e) { 72 // expected 73 } 74 } 75 76 /** 77 * @tests java.text.Normalizer#isNormalized(CharSequence, Form) 78 */ 79 public void test_isNormalized() throws Exception { 80 String src = "\u00c1"; 81 assertTrue(Normalizer.isNormalized(src, Form.NFC)); 82 assertFalse(Normalizer.isNormalized(src, Form.NFD)); 83 assertTrue(Normalizer.isNormalized(src, Form.NFKC)); 84 assertFalse(Normalizer.isNormalized(src, Form.NFKD)); 85 86 src = "\u0041\u0301"; 87 assertFalse(Normalizer.isNormalized(src, Form.NFC)); 88 assertTrue(Normalizer.isNormalized(src, Form.NFD)); 89 assertFalse(Normalizer.isNormalized(src, Form.NFKC)); 90 assertTrue(Normalizer.isNormalized(src, Form.NFKD)); 91 92 src = "\ufb03"; 93 assertTrue(Normalizer.isNormalized(src, Form.NFC)); 94 assertTrue(Normalizer.isNormalized(src, Form.NFD)); 95 assertFalse(Normalizer.isNormalized(src, Form.NFKC)); 96 assertFalse(Normalizer.isNormalized(src, Form.NFKD)); 97 98 src = "\u0066\u0066\u0069"; 99 assertTrue(Normalizer.isNormalized(src, Form.NFC)); 100 assertTrue(Normalizer.isNormalized(src, Form.NFD)); 101 assertTrue(Normalizer.isNormalized(src, Form.NFKC)); 102 assertTrue(Normalizer.isNormalized(src, Form.NFKD)); 103 104 src = ""; 105 assertTrue(Normalizer.isNormalized(src, Form.NFC)); 106 assertTrue(Normalizer.isNormalized(src, Form.NFD)); 107 assertTrue(Normalizer.isNormalized(src, Form.NFKC)); 108 assertTrue(Normalizer.isNormalized(src, Form.NFKD)); 109 } 110 111 /** 112 * @tests java.text.Normalizer#isNormalized(CharSequence, Form) 113 */ 114 public void test_isNormalized_exception() throws Exception { 115 try { 116 Normalizer.isNormalized(null, Form.NFC); 117 fail("Should throw NullPointerException"); 118 } catch (NullPointerException e) { 119 // expected 120 } 121 122 try { 123 Normalizer.isNormalized("chars", null); 124 fail("Should throw NullPointerException"); 125 } catch (NullPointerException e) { 126 // expected 127 } 128 } 129 130 /** 131 * @tests java.text.Normalizer#normalize(CharSequence, Form) 132 */ 133 public void test_normalize() throws Exception { 134 String src = "\u00c1"; 135 assertEquals("\u00c1", Normalizer.normalize(src, Form.NFC)); 136 assertEquals("\u0041\u0301", Normalizer.normalize(src, Form.NFD)); 137 assertEquals("\u00c1", Normalizer.normalize(src, Form.NFKC)); 138 assertEquals("\u0041\u0301", Normalizer.normalize(src, Form.NFKD)); 139 140 src = "\u0041\u0301"; 141 assertEquals("\u00c1", Normalizer.normalize(src, Form.NFC)); 142 assertEquals("\u0041\u0301", Normalizer.normalize(src, Form.NFD)); 143 assertEquals("\u00c1", Normalizer.normalize(src, Form.NFKC)); 144 assertEquals("\u0041\u0301", Normalizer.normalize(src, Form.NFKD)); 145 146 src = "\ufb03"; 147 assertEquals("\ufb03", Normalizer.normalize(src, Form.NFC)); 148 assertEquals("\ufb03", Normalizer.normalize(src, Form.NFD)); 149 assertEquals("\u0066\u0066\u0069", Normalizer.normalize(src, Form.NFKC)); 150 assertEquals("\u0066\u0066\u0069", Normalizer.normalize(src, Form.NFKD)); 151 152 src = "\u0066\u0066\u0069"; 153 assertEquals("\u0066\u0066\u0069", Normalizer.normalize(src, Form.NFC)); 154 assertEquals("\u0066\u0066\u0069", Normalizer.normalize(src, Form.NFD)); 155 assertEquals("\u0066\u0066\u0069", Normalizer.normalize(src, Form.NFKC)); 156 assertEquals("\u0066\u0066\u0069", Normalizer.normalize(src, Form.NFKD)); 157 158 src = ""; 159 assertEquals("", Normalizer.normalize(src, Form.NFC)); 160 assertEquals("", Normalizer.normalize(src, Form.NFD)); 161 assertEquals("", Normalizer.normalize(src, Form.NFKC)); 162 assertEquals("", Normalizer.normalize(src, Form.NFKD)); 163 } 164 165 /** 166 * @tests java.text.Normalizer#normalize(CharSequence, Form) 167 */ 168 public void test_normalize_exception() throws Exception { 169 try { 170 Normalizer.normalize(null, Form.NFC); 171 fail("Should throw NullPointerException"); 172 } catch (NullPointerException e) { 173 // expected 174 } 175 176 try { 177 Normalizer.normalize("chars", null); 178 fail("Should throw NullPointerException"); 179 } catch (NullPointerException e) { 180 // expected 181 } 182 } 183 } 184