18bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson/*
28bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson *  Licensed to the Apache Software Foundation (ASF) under one or more
38bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson *  contributor license agreements.  See the NOTICE file distributed with
48bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson *  this work for additional information regarding copyright ownership.
58bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson *  The ASF licenses this file to You under the Apache License, Version 2.0
68bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson *  (the "License"); you may not use this file except in compliance with
78bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson *  the License.  You may obtain a copy of the License at
88bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson *
98bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson *     http://www.apache.org/licenses/LICENSE-2.0
108bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson *
118bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson *  Unless required by applicable law or agreed to in writing, software
128bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson *  distributed under the License is distributed on an "AS IS" BASIS,
138bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
148bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson *  See the License for the specific language governing permissions and
158bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson *  limitations under the License.
168bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson */
178bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
188bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilsonpackage libcore.java.lang;
198bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
20b22ef1e880d100200fdf7f995f58b8227363c8b6Jesse Wilsonimport junit.framework.TestCase;
21b22ef1e880d100200fdf7f995f58b8227363c8b6Jesse Wilson
22b22ef1e880d100200fdf7f995f58b8227363c8b6Jesse Wilsonpublic class OldStringBufferTest extends TestCase {
238bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
248bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    StringBuffer testBuffer = new StringBuffer("This is a test buffer");
258bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
268bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    public void test_deleteCharAtI() {
278bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
288bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.deleteCharAt(testBuffer.length() + 1);
298bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException was not thrown.");
308bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException sioobe) {
318bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
328bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
338bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
348bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
358bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.deleteCharAt(-1);
368bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException was not thrown.");
378bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException sioobe) {
388bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
398bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
408bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    }
418bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
428bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    public void test_ensureCapacityI() {
438bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        StringBuffer sb = new StringBuffer(10);
448bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        sb.ensureCapacity(-2);
458bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        assertEquals("Failed to increase capacity.", 10, sb.capacity());
468bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    }
478bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
488bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    public void test_getCharsII$CI() {
498bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        StringBuffer buf2 = new StringBuffer("");
508bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
518bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            buf2.getChars(-1, 0, new char[5], 2);
528bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("IndexOutOfBoundsException is not thrown.");
538bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch (IndexOutOfBoundsException e) {
548bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
558bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
568bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
578bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
588bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            buf2.getChars(0, -1, new char[5], 2);
598bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("IndexOutOfBoundsException is not thrown.");
608bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch (IndexOutOfBoundsException e) {
618bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
628bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
638bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
648bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
658bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            buf2.getChars(0, -1, new char[5], 2);
668bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("IndexOutOfBoundsException is not thrown.");
678bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch (IndexOutOfBoundsException e) {
688bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
698bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
708bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
718bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
728bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            buf2.getChars(2, 1, new char[5], 2);
738bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("IndexOutOfBoundsException is not thrown.");
748bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch (IndexOutOfBoundsException e) {
758bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
768bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
778bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
788bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
798bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            buf2.getChars(0, 6, new char[5], 2);
808bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("IndexOutOfBoundsException is not thrown.");
818bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch (IndexOutOfBoundsException e) {
828bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
838bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
848bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
858bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
868bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            buf2.getChars(0, 6, new char[10], 5);
878bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("IndexOutOfBoundsException is not thrown.");
888bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch (IndexOutOfBoundsException e) {
898bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
908bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
918bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    }
928bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
938bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    public void test_insertID() {
948bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
958bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.insert(-1, Double.MAX_VALUE);
968bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
978bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException sioobe) {
988bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
998bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
1008bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
1018bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
1028bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.insert(testBuffer.length() + 1, Double.MAX_VALUE);
1038bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
1048bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException sioobe) {
1058bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
1068bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
1078bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    }
1088bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
1098bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    public void test_insertIF() {
1108bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
1118bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.insert(-1, Float.MAX_VALUE);
1128bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
1138bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException sioobe) {
1148bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
1158bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
1168bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
1178bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
1188bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.insert(testBuffer.length() + 1, Float.MAX_VALUE);
1198bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
1208bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException sioobe) {
1218bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
1228bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
1238bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    }
1248bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
1258bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    public void test_insertII() {
1268bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
1278bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.insert(-1, Integer.MAX_VALUE);
1288bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
1298bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException sioobe) {
1308bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
1318bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
1328bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
1338bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
1348bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.insert(testBuffer.length() + 1, Integer.MAX_VALUE);
1358bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
1368bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException sioobe) {
1378bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
1388bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
1398bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    }
1408bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
1418bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    public void test_insertIJ() {
1428bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
1438bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.insert(-1, Long.MAX_VALUE);
1448bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
1458bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException sioobe) {
1468bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
1478bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
1488bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
1498bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
1508bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.insert(testBuffer.length() + 1, Long.MAX_VALUE);
1518bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
1528bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException sioobe) {
1538bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
1548bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
1558bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    }
1568bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
1578bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    public void test_insertILjava_lang_Object() {
1588bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        Object obj1 = new Object();
1598bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
1608bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.insert(-1, obj1);
1618bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
1628bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException sioobe) {
1638bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
1648bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
1658bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
1668bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
1678bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.insert(testBuffer.length() + 1, obj1);
1688bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
1698bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException sioobe) {
1708bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
1718bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
1728bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    }
1738bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
1748bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    public void test_insertILjava_lang_String() {
1758bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
1768bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.insert(-1, "");
1778bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
1788bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException sioobe) {
1798bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
1808bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
1818bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
1828bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
1838bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.insert(testBuffer.length() + 1, "");
1848bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
1858bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException sioobe) {
1868bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
1878bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
1888bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    }
1898bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
1908bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    public void test_insertIZ() {
1918bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
1928bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.insert(testBuffer.length() + 1, true);
1938bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
1948bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException sioobe) {
1958bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
1968bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
1978bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
1988bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
1998bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.insert(-1, true);
2008bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
2018bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException sioobe) {
2028bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
2038bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
2048bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    }
2058bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
2068bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    public void test_replaceIILjava_lang_String() {
2078bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
2088bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.replace(-1, 0, "text");
2098bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
2108bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException sioobe) {
2118bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
2128bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
2138bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
2148bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
2158bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.replace(0, -1, "text");
2168bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
2178bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException sioobe) {
2188bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
2198bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
2208bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
2218bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
2228bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.replace(2, 1, "text");
2238bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
2248bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException sioobe) {
2258bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
2268bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
2278bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
2288bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
2298bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.replace(testBuffer.length() + 1, testBuffer.length() + 1,
2308bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson                    "text");
2318bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
2328bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException sioobe) {
2338bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
2348bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
2358bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    }
2368bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
2378bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    public void test_setCharAtIC() {
2388bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        StringBuffer s = new StringBuffer("HelloWorld");
2398bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
2408bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            s.setCharAt(-1, 'Z');
2418bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("IndexOutOfBoundsException is not thrown.");
2428bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(IndexOutOfBoundsException ioobe) {
2438bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
2448bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
2458bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
2468bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            s.setCharAt(s.length() + 1, 'Z');
2478bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("IndexOutOfBoundsException is not thrown.");
2488bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(IndexOutOfBoundsException ioobe) {
2498bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
2508bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
2518bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    }
2528bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
2538bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    public void test_substringI() {
2548bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
2558bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.substring(testBuffer.length() + 1);
2568bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
2578bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException oobe) {
2588bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
2598bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
2608bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
2618bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
2628bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.substring(-1);
2638bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
2648bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException oobe) {
2658bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
2668bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
2678bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    }
2688bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
2698bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    public void test_substringII() {
2708bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
2718bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.substring(-1, testBuffer.length());
2728bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
2738bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException oobe) {
2748bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
2758bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
2768bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
2778bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
2788bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.substring(0, -1);
2798bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
2808bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException oobe) {
2818bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
2828bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
2838bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
2848bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
2858bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.substring(2, 1);
2868bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("StringIndexOutOfBoundsException is not thrown.");
2878bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch(StringIndexOutOfBoundsException oobe) {
2888bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
2898bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
2908bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    }
2918bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
2928bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    public void test_subSequence() {
2938bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        assertEquals("Incorrect substring returned", " is",
2948bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson                testBuffer.subSequence(4, 7));
2958bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        assertEquals("Incorrect substring returned", "test buffer",
2968bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson                testBuffer.subSequence(10, 21));
2978bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        assertEquals("not identical", "This is a test buffer",
2988bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson                testBuffer.subSequence(0, testBuffer.length()));
2998bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
3008bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
3018bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.subSequence(0, Integer.MAX_VALUE);
3028bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("IndexOutOfBoundsException was not thrown.");
3038bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch (IndexOutOfBoundsException ioobe) {
3048bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
3058bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
3068bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
3078bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
3088bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.subSequence(Integer.MAX_VALUE, testBuffer.length());
3098bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("IndexOutOfBoundsException was not thrown.");
3108bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch (IndexOutOfBoundsException ioobe) {
3118bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
3128bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
3138bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson
3148bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        try {
3158bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            testBuffer.subSequence(-1, testBuffer.length());
3168bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            fail("IndexOutOfBoundsException was not thrown.");
3178bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        } catch (IndexOutOfBoundsException ioobe) {
3188bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson            //expected
3198bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson        }
3208bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson    }
3218bc50e8d16e9d630ce236b7ea076f72f9dac0d69Jesse Wilson}
322