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 18package libcore.java.text; 19 20import java.text.AttributedCharacterIterator; 21import java.text.AttributedString; 22import java.util.HashSet; 23import java.util.Map; 24import java.util.Set; 25import junit.framework.TestCase; 26 27public 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