1f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 8f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17a055b2a5d62f7e8f879d2704edb261d43c3ac46cJesse Wilsonpackage libcore.java.text; 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.text.AttributedCharacterIterator; 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.text.AttributedString; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.text.CharacterIterator; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.HashMap; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Map; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Set; 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.TreeSet; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.WeakHashMap; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 28a055b2a5d62f7e8f879d2704edb261d43c3ac46cJesse Wilsonpublic class OldAttributedStringTest extends junit.framework.TestCase { 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project static void assertEqualString (String msg, String expected, AttributedString attrString) { 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedCharacterIterator it = attrString.getIterator(); 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project StringBuffer buf = new StringBuffer(); 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project buf.append(it.first()); 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project char ch; 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while ((ch = it.next()) != CharacterIterator.DONE) 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project buf.append(ch); 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(msg, expected, buf.toString()); 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_ConstructorLAttributedCharacterIterator_1() { 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String testString = "Test string"; 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedString attrString = new AttributedString(testString); 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedCharacterIterator iter = attrString.getIterator(); 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedString attrString2 = new AttributedString(iter); 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEqualString("String must match!", testString, attrString2); 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_ConstructorLAttributedCharacterIterator_2() { 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String testString = "Test string"; 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedString attrString = new AttributedString(testString); 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedCharacterIterator iter = attrString.getIterator(); 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedString attrString2 = new AttributedString(iter, 2, 7); 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEqualString("String must match!", "st st", attrString2); 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 57229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.text.AttributedString#AttributedString(AttributedCharacterIterator, 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * int, int) Test of method 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.text.AttributedString#AttributedString(AttributedCharacterIterator, 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * int, int). Case 1: Try to consruct AttributedString. Case 2: Try 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * to consruct AttributedString using incorrect beginIndex. Case 3: 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Try to consruct AttributedString using incorrect endIndex. 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_ConstructorLAttributedCharacterIteratorII() { 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Regression for HARMONY-1355 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 1: Try to consruct AttributedString. 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new AttributedString(new testAttributedCharacterIterator(), 0, 0); 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected exception " + e.toString()); 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 2: Try to consruct AttributedString using incorrect beginIndex. 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new AttributedString(new testAttributedCharacterIterator(), -1, 0); 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IllegalArgumentException was not thrown"); 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 3: Try to consruct AttributedString using incorrect endIndex. 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new AttributedString(new testAttributedCharacterIterator(), 0, -1); 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IllegalArgumentException was not thrown"); 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_ConstructorLAttributedCharacterIterator_3() { 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String testString = "Test string"; 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedString attrString = new AttributedString(testString); 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedCharacterIterator iter = attrString.getIterator(); 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedString attrString2; 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project attrString2 = new AttributedString(iter, 2, 7, new AttributedCharacterIterator.Attribute[] {}); 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEqualString("String must match!", "st st", attrString2); 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project attrString2 = new AttributedString(iter, 2, 7, null); 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEqualString("String must match!", "st st", attrString2); 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 105229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.text.AttributedString#AttributedString(AttributedCharacterIterator, 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * int, int, AttributedCharacterIterator.Attribute[]) Test of method 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.text.AttributedString#AttributedString(AttributedCharacterIterator, 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * int, int, AttributedCharacterIterator.Attribute[]). Case 1: Try to 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * consruct AttributedString. Case 2: Try to consruct 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * AttributedString using incorrect beginIndex. Case 3: Try to 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * consruct AttributedString using incorrect endIndex. Case 4: Try to 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * consruct AttributedString using specified attributes. 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_ConstructorLAttributedCharacterIteratorII$Ljava_text_AttributedCharacterIterator$Attribute() { 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 1: Try to consruct AttributedString. 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new AttributedString(new testAttributedCharacterIterator(), 0, 0, 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project null); 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected exception " + e.toString()); 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 2: Try to consruct AttributedString using incorrect beginIndex. 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new AttributedString(new testAttributedCharacterIterator(), -1, 0, 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project null); 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IllegalArgumentException was not thrown"); 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 3: Try to consruct AttributedString using incorrect endIndex. 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new AttributedString(new testAttributedCharacterIterator(), 0, -1, 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project null); 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IllegalArgumentException was not thrown"); 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 4: Try to consruct AttributedString using specified attributes. 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedCharacterIterator.Attribute[] attributes = new AttributedCharacterIterator.Attribute[1]; 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project attributes[0] = new TestAttributedCharacterIteratorAttribute("test"); 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new AttributedString(new testAttributedCharacterIterator(), 0, 0, 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project attributes); 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected expected " + e.toString()); 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 153229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.text.AttributedString#AttributedString(AttributedCharacterIterator, 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * int, int, Map<? extends AttributedCharacterIterator.Attribute,?>) 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test of method 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.text.AttributedString#AttributedString(AttributedCharacterIterator, 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * int, int, Map<? extends 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * AttributedCharacterIterator.Attribute,?>). Case 1: Try to 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * construct AttributedString. Case 2: Try to construct 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * AttributedString using 0-length text and not an empty Map 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * attributes. 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_ConstructorLjava_lang_StringLjava_util_Map() { 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String test = "Test string"; 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 1: Try to construct AttributedString 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedString attrString = new AttributedString( 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project test, 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new WeakHashMap<AttributedCharacterIterator.Attribute, String>()); 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedCharacterIterator it = attrString.getIterator(); 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project StringBuffer buf = new StringBuffer(); 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project buf.append(it.first()); 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project char ch; 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while ((ch = it.next()) != CharacterIterator.DONE) 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project buf.append(ch); 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Wrong string: " + buf, buf.toString().equals(test)); 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected exception " + e.toString()); 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 2: Try to construct AttributedString using 0-length text and 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // not an empty Map attributes. 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map<AttributedCharacterIterator.Attribute, String> whm = new WeakHashMap<AttributedCharacterIterator.Attribute, String>(); 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project whm.put(new TestAttributedCharacterIteratorAttribute("test"), 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "value"); 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new AttributedString("", whm); 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IllegalArgumentException was not thrown"); 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private class TestAttributedCharacterIteratorAttribute extends 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedCharacterIterator.Attribute { 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private static final long serialVersionUID = -2917613373935785179L; 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public TestAttributedCharacterIteratorAttribute(String name) { 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super(name); 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private class testAttributedCharacterIterator implements 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedCharacterIterator { 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Set getAllAttributeKeys() { 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object getAttribute(AttributedCharacterIterator.Attribute p) { 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Map getAttributes() { 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int getRunLimit(Set p) { 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int getRunLimit(AttributedCharacterIterator.Attribute p) { 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int getRunLimit() { 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int getRunStart(Set p) { 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int getRunStart(AttributedCharacterIterator.Attribute p) { 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int getRunStart() { 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object clone() { 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int getIndex() { 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int getEndIndex() { 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int getBeginIndex() { 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public char setIndex(int p) { 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 'a'; 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public char previous() { 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 'a'; 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public char next() { 267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 'a'; 268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public char current() { 271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 'a'; 272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public char last() { 275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 'a'; 276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public char first() { 279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 'a'; 280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_addAttributeLjava_text_AttributedCharacterIterator$AttributeLjava_lang_ObjectII() { 283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedString as = new AttributedString("test"); 284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project as.addAttribute(AttributedCharacterIterator.Attribute.LANGUAGE, "a", 2, 285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 3); 286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedCharacterIterator it = as.getIterator(); 287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("non-null value limit", 2, it 288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getRunLimit(AttributedCharacterIterator.Attribute.LANGUAGE)); 289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project as = new AttributedString("test"); 291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project as.addAttribute(AttributedCharacterIterator.Attribute.LANGUAGE, null, 292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 2, 3); 293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project it = as.getIterator(); 294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("null value limit", 4, it 295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getRunLimit(AttributedCharacterIterator.Attribute.LANGUAGE)); 296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project as = new AttributedString("test"); 299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project as.addAttribute(AttributedCharacterIterator.Attribute.LANGUAGE, 300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project null, -1, 3); 301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IllegalArgumentException"); 302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected 304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // regression for Harmony-1244 307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project as = new AttributedString("123", new WeakHashMap()); 308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project as.addAttribute(null, new TreeSet(), 0, 1); 310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("should throw NullPointerException"); 311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project as.addAttribute(null, new TreeSet(), -1, 1); 317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("should throw NullPointerException"); 318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 324229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.text.AttributedString.addAttribute(AttributedCharacterIterator, 325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Object) 326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_addAttributeLjava_text_AttributedCharacterIterator$AttributeLjava_lang_Object() { 328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // regression for Harmony-1244 329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedString as = new AttributedString("123", new WeakHashMap()); 330f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project as.addAttribute(AttributedCharacterIterator.Attribute.LANGUAGE, "english"); 332f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes as.addAttribute(AttributedCharacterIterator.Attribute.INPUT_METHOD_SEGMENT, 333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "input method"); 334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project as.addAttribute(AttributedCharacterIterator.Attribute.READING, "reading"); 335f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project as.addAttribute(null, new TreeSet()); 338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("should throw NullPointerException"); 339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project as.addAttribute(null, null); 344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("should throw NullPointerException"); 345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 351229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.text.AttributedString#addAttributes(Map<? extends 352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * AttributedCharacterIterator.Attribute,?>, int, int) Tests of 353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * method java.text.AttributedString#addAttributes(Map<? extends 354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * AttributedCharacterIterator.Attribute,?>, int, int). Case 1: Try 355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * to add attributes to AttributesString. Case 2: Try to add 356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * null-attributes to AttributesString. Case 3: Try to add attributes 357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * to AttributesString using incorrect index. 358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_addAttributesLjava_util_MapII() { 360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedString as = new AttributedString("test"); 361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map<AttributedCharacterIterator.Attribute, String> whm = new WeakHashMap<AttributedCharacterIterator.Attribute, String>(); 362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 1: Try to add attributes to AttributesString. 364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project whm.put(new TestAttributedCharacterIteratorAttribute("test1"), 366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "value1"); 367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project whm.put(new TestAttributedCharacterIteratorAttribute("test2"), 368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "value2"); 369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project whm.put(new TestAttributedCharacterIteratorAttribute("test3"), 370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "value3"); 371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project as.addAttributes(whm, 0, 3); 372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected exception " + e.toString()); 374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 2: Try to add null-attributes to AttributesString. 377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project as.addAttributes(null, 0, 3); 379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected NullPointerException was not thrown"); 380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 3: Try to add attributes to AttributesString using incorrect 385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // index. 386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project as.addAttributes(whm, 0, 0); 388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IllegalArgumentException was not thrown"); 389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 395229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.text.AttributedString#getIterator() Test of method 396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.text.AttributedString#getIterator(). 397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getIterator() { 399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String test = "Test string"; 400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedString attrString = new AttributedString(test); 402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedCharacterIterator it = attrString.getIterator(); 403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Incorrect iteration on AttributedString", it.first(), 404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project test.charAt(0)); 405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected exceptiption " + e.toString()); 407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 411229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.text.AttributedString#getIterator(AttributedCharacterIterator.Attribute[]) 412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test of method 413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.text.AttributedString#getIterator(AttributedCharacterIterator.Attribute[]). 414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getIterator$Ljava_text_AttributedCharacterIterator$Attribute() { 416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String test = "Test string"; 417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map<AttributedCharacterIterator.Attribute, String> hm = new HashMap<AttributedCharacterIterator.Attribute, String>(); 419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedCharacterIterator.Attribute[] aci = new AttributedCharacterIterator.Attribute[3]; 420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project aci[0] = new TestAttributedCharacterIteratorAttribute("att1"); 421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project aci[1] = new TestAttributedCharacterIteratorAttribute("att2"); 422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project aci[2] = new TestAttributedCharacterIteratorAttribute("att3"); 423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(aci[0], "value1"); 424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(aci[1], "value2"); 425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedString attrString = new AttributedString(test, hm); 427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedCharacterIterator it = attrString.getIterator(aci); 428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Incorrect iteration on AttributedString", it 430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getAttribute(aci[0]).equals("value1")); 431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Incorrect iteration on AttributedString", it 432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getAttribute(aci[1]).equals("value2")); 433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Incorrect iteration on AttributedString", it 434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getAttribute(aci[2]) == null); 435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected exceptiption " + e.toString()); 437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 441229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.text.AttributedString#getIterator(AttributedCharacterIterator.Attribute[], 442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * int, int) Test of method 443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.text.AttributedString#getIterator(AttributedCharacterIterator.Attribute[], 444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * int, int). 445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getIterator$Ljava_text_AttributedCharacterIterator$AttributeII() { 447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String test = "Test string"; 448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map<AttributedCharacterIterator.Attribute, String> hm = new HashMap<AttributedCharacterIterator.Attribute, String>(); 450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedCharacterIterator.Attribute[] aci = new AttributedCharacterIterator.Attribute[3]; 451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project aci[0] = new TestAttributedCharacterIteratorAttribute("att1"); 452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project aci[1] = new TestAttributedCharacterIteratorAttribute("att2"); 453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project aci[2] = new TestAttributedCharacterIteratorAttribute("att3"); 454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(aci[0], "value1"); 455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(aci[1], "value2"); 456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedString attrString = new AttributedString(test); 458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project attrString.addAttributes(hm, 2, 4); 459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributedCharacterIterator it = attrString.getIterator(aci, 1, 5); 460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Incorrect iteration on AttributedString", it 462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getAttribute(aci[0]) == null); 463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Incorrect iteration on AttributedString", it 464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getAttribute(aci[1]) == null); 465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Incorrect iteration on AttributedString", it 466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getAttribute(aci[2]) == null); 467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project it.next(); 469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Incorrect iteration on AttributedString", it 471adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getAttribute(aci[0]).equals("value1")); 472adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Incorrect iteration on AttributedString", it 473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getAttribute(aci[1]).equals("value2")); 474adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Incorrect iteration on AttributedString", it 475adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getAttribute(aci[2]) == null); 476f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 477adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project attrString.getIterator(aci, -1, 5); 479adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException is not thrown."); 480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch(IllegalArgumentException iae) { 481adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 483f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 485adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project attrString.getIterator(aci, 6, 5); 486adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException is not thrown."); 487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch(IllegalArgumentException iae) { 488adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 489adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 490f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 491adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 492adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project attrString.getIterator(aci, 3, 2); 493adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException is not thrown."); 494adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch(IllegalArgumentException iae) { 495adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 496f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes } 497adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 498adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected exceptiption " + e.toString()); 499adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 500f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 501adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 502adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 503