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 libcore.java.text;
     19 
     20 import java.text.AttributedCharacterIterator;
     21 import java.text.AttributedString;
     22 import java.util.HashSet;
     23 import java.util.Map;
     24 import java.util.Set;
     25 import junit.framework.TestCase;
     26 
     27 public class OldAttributedCharacterIteratorTest extends TestCase {
     28 
     29     AttributedCharacterIterator it;
     30     String string = "test test";
     31 
     32     public void test_getRunLimitLSet() {
     33         AttributedString as = new AttributedString("test");
     34         as.addAttribute(AttributedCharacterIterator.Attribute.LANGUAGE, "a", 2,
     35                 3);
     36         AttributedCharacterIterator it = as.getIterator();
     37         HashSet<AttributedCharacterIterator.Attribute>  attr =
     38             new HashSet<AttributedCharacterIterator.Attribute>();
     39         attr.add(AttributedCharacterIterator.Attribute.LANGUAGE);
     40         assertEquals("non-null value limit",
     41                 2, it.getRunLimit(attr));
     42 
     43         as = new AttributedString("test");
     44         as.addAttribute(AttributedCharacterIterator.Attribute.LANGUAGE, null,
     45                 2, 3);
     46         it = as.getIterator();
     47         assertEquals("null value limit",
     48                 4, it.getRunLimit(attr));
     49 
     50         attr.add(AttributedCharacterIterator.Attribute.READING);
     51         assertEquals("null value limit",
     52                 4, it.getRunLimit(attr));
     53     }
     54 
     55     public void test_getAllAttributeKeys() {
     56         AttributedString as = new AttributedString("test");
     57         AttributedCharacterIterator it = as.getIterator();
     58         Set<AttributedCharacterIterator.Attribute> emptyAttributes =
     59             it.getAllAttributeKeys();
     60         assertTrue(emptyAttributes.isEmpty());
     61 
     62         int attrCount = 10;
     63         for(int i = 0 ; i < attrCount; i++) {
     64             as.addAttribute(AttributedCharacterIterator.Attribute.LANGUAGE,
     65                     "a");
     66         }
     67         it = as.getIterator();
     68         Set<AttributedCharacterIterator.Attribute> attributes =
     69             it.getAllAttributeKeys();
     70         for(AttributedCharacterIterator.Attribute attr:attributes) {
     71             assertEquals(AttributedCharacterIterator.Attribute.LANGUAGE, attr);
     72         }
     73     }
     74 
     75     public void test_getAttributeLAttributedCharacterIterator_Attribute() {
     76 
     77         Object attribute =
     78             it.getAttribute(AttributedCharacterIterator.Attribute.LANGUAGE);
     79         assertEquals("ENGLISH", attribute);
     80 
     81         attribute =
     82             it.getAttribute(AttributedCharacterIterator.Attribute.READING);
     83         assertEquals("READ", attribute);
     84 
     85         assertNull(it.getAttribute(AttributedCharacterIterator.
     86                 Attribute.INPUT_METHOD_SEGMENT));
     87     }
     88 
     89     public void test_getAttributes() {
     90         Map<AttributedCharacterIterator.Attribute, Object> attributes =
     91             it.getAttributes();
     92         assertEquals(2, attributes.size());
     93         assertEquals("ENGLISH",
     94                 attributes.get(AttributedCharacterIterator.Attribute.LANGUAGE));
     95         assertEquals("READ",
     96                 attributes.get(AttributedCharacterIterator.Attribute.READING));
     97 
     98         AttributedString as = new AttributedString("test");
     99         assertTrue(as.getIterator().getAttributes().isEmpty());
    100     }
    101 
    102     public void test_getRunLimit() {
    103         int limit = it.getRunLimit();
    104         assertEquals(string.length(), limit);
    105 
    106         AttributedString as = new AttributedString("");
    107         assertEquals(0, as.getIterator().getRunLimit());
    108 
    109         as = new AttributedString(new AttributedString("test text").
    110                 getIterator(), 2, 7);
    111 
    112         AttributedCharacterIterator it = as.getIterator();
    113         assertEquals(5, it.getRunLimit());
    114     }
    115 
    116     public void test_getRunLimitLAttribute() {
    117         AttributedString as = new AttributedString("");
    118         assertEquals(0, as.getIterator().getRunLimit(
    119                 AttributedCharacterIterator.Attribute.LANGUAGE));
    120 
    121         as = new AttributedString("text");
    122         as.addAttribute(AttributedCharacterIterator.Attribute.LANGUAGE,
    123                 "ENGLISH");
    124 
    125         as.addAttribute(AttributedCharacterIterator.Attribute.READING,
    126         "READ", 1, 3);
    127 
    128         assertEquals(4, as.getIterator().getRunLimit(
    129                 AttributedCharacterIterator.Attribute.LANGUAGE));
    130 
    131         assertEquals(1, as.getIterator().getRunLimit(
    132                 AttributedCharacterIterator.Attribute.READING));
    133     }
    134 
    135     public void test_getRunStart() {
    136         assertEquals(0, it.getRunStart());
    137 
    138         AttributedString as = new AttributedString("");
    139         assertEquals(0, as.getIterator().getRunStart());
    140 
    141         as = new AttributedString(new AttributedString("test text").
    142                 getIterator(), 2, 7);
    143 
    144         AttributedCharacterIterator it = as.getIterator();
    145 
    146         assertEquals(0, it.getRunStart());
    147 
    148         as.addAttribute(AttributedCharacterIterator.Attribute.LANGUAGE,
    149                 "GERMAN", 1, 2);
    150         as.addAttribute(AttributedCharacterIterator.Attribute.READING,
    151                 "READ", 1, 3);
    152         assertEquals(0, as.getIterator().getRunStart());
    153     }
    154 
    155     public void test_getRunStartLAttribute() {
    156         assertEquals(0, it.getRunStart(
    157                 AttributedCharacterIterator.Attribute.LANGUAGE));
    158 
    159         AttributedString as = new AttributedString("test text");
    160         as.addAttribute(AttributedCharacterIterator.Attribute.LANGUAGE,
    161                             "GERMAN", 2, 5);
    162         as.addAttribute(AttributedCharacterIterator.Attribute.READING,
    163                             "READ", 2, 7);
    164 
    165         assertEquals(0, as.getIterator().getRunStart(
    166                 AttributedCharacterIterator.Attribute.LANGUAGE));
    167         assertEquals(0, as.getIterator().getRunStart(
    168                 AttributedCharacterIterator.Attribute.READING));
    169     }
    170 
    171     public void test_getRunStartLjava_util_Set() {
    172         AttributedString as = new AttributedString("test");
    173         as.addAttribute(AttributedCharacterIterator.Attribute.LANGUAGE, "a", 2,
    174                 3);
    175         AttributedCharacterIterator it = as.getIterator();
    176         HashSet<AttributedCharacterIterator.Attribute>  attr =
    177             new HashSet<AttributedCharacterIterator.Attribute>();
    178         attr.add(AttributedCharacterIterator.Attribute.LANGUAGE);
    179         assertEquals(0, it.getRunStart(attr));
    180 
    181         as = new AttributedString("test");
    182         as.addAttribute(AttributedCharacterIterator.Attribute.LANGUAGE,
    183                 "ENGLISH",1, 3);
    184         it = as.getIterator();
    185         assertEquals(0, it.getRunStart(attr));
    186 
    187         attr.add(AttributedCharacterIterator.Attribute.READING);
    188         assertEquals(0, it.getRunStart(attr));
    189 
    190 
    191     }
    192 
    193     protected void setUp() {
    194 
    195         AttributedString as = new AttributedString(string);
    196 
    197         as.addAttribute(AttributedCharacterIterator.Attribute.LANGUAGE,
    198                 "GERMAN");
    199         as.addAttribute(AttributedCharacterIterator.Attribute.READING,
    200                 "READ");
    201         as.addAttribute(AttributedCharacterIterator.Attribute.LANGUAGE,
    202                 "ENGLISH");
    203 
    204         it = as.getIterator();
    205     }
    206 
    207     protected void tearDown() {
    208     }
    209 }
    210