Home | History | Annotate | Download | only in text
      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