1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  Licensed to the Apache Software Foundation (ASF) under one or more
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  contributor license agreements.  See the NOTICE file distributed with
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  this work for additional information regarding copyright ownership.
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  The ASF licenses this file to You under the Apache License, Version 2.0
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  (the "License"); you may not use this file except in compliance with
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  the License.  You may obtain a copy of the License at
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *     http://www.apache.org/licenses/LICENSE-2.0
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  See the License for the specific language governing permissions and
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  limitations under the License.
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage org.apache.harmony.luni.tests.java.lang;
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
20ef7122278207e33b724c6360945f9eae1f9a5a58Jorg Pleumannimport dalvik.annotation.BrokenTest;
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargets;
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestLevel;
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetNew;
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetClass;
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.UnsupportedEncodingException;
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Arrays;
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Calendar;
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Date;
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.IllegalFormatException;
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Locale;
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.regex.Pattern;
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.regex.PatternSyntaxException;
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project@TestTargetClass(String.class)
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class String2Test extends junit.framework.TestCase {
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    String hw1 = "HelloWorld";
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    String hw2 = "HelloWorld";
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    String hwlc = "helloworld";
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    String hwuc = "HELLOWORLD";
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    String hello1 = "Hello";
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    String world1 = "World";
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    String comp11 = "Test String";
51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    Object obj = new Object();
53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    char[] buf = { 'W', 'o', 'r', 'l', 'd' };
55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    char[] rbuf = new char[5];
57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#String()
60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "String",
65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class}
66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_Constructor() {
68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String()
69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Created incorrect string", new String().equals(""));
70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#String(byte[])
74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "String",
79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {byte[].class}
80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_Constructor$B() {
82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String(byte [])
83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Failed to create string", new String(hw1.getBytes())
84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .equals(hw1));
85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#String(byte[], int)
89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "String",
94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {byte[].class, int.class}
95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @SuppressWarnings("deprecation")
97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_Constructor$BI() {
98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String(byte [], int)
99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String s = new String(new byte[] { 65, 66, 67, 68, 69 }, 0);
100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Incorrect string returned: " + s, s.equals("ABCDE"));
101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        s = new String(new byte[] { 65, 66, 67, 68, 69 }, 1);
102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Did not use nonzero hibyte", !s.equals("ABCDE"));
103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#String(byte[], int, int)
107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "String",
112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {byte[].class, int.class, int.class}
113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_Constructor$BII() {
115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String(byte [], int, int)
116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Failed to create string", new String(hw1.getBytes(), 0, hw1
117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .getBytes().length).equals(hw1));
118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        boolean exception = false;
120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            new String(new byte[0], 0, Integer.MAX_VALUE);
122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IndexOutOfBoundsException e) {
123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            exception = true;
124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Did not throw exception", exception);
126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#String(byte[], int, int, int)
130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "String",
135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {byte[].class, int.class, int.class, int.class}
136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @SuppressWarnings("deprecation")
138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_Constructor$BIII() {
139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String(byte [], int, int, int)
140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String s = new String(new byte[] { 65, 66, 67, 68, 69 }, 0, 1, 3);
141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Incorrect string returned: " + s, s.equals("BCD"));
142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        s = new String(new byte[] { 65, 66, 67, 68, 69 }, 1, 0, 5);
143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Did not use nonzero hibyte", !s.equals("ABCDE"));
144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#String(byte[], int, int, java.lang.String)
148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "String",
153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {byte[].class, int.class, int.class, java.lang.String.class}
154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_Constructor$BIILjava_lang_String() throws Exception {
156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String(byte [], int, int, java.lang.String)
157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String s = null;
158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            s = new String(new byte[] { 65, 66, 67, 68, 69 }, 0, 5, "8859_1");
160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (Exception e) {
161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Threw exception : " + e.getMessage());
162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Incorrect string returned: " + s, s.equals("ABCDE"));
164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        //Regression for HARMONY-1111
165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertNotNull(new String(new byte[] {(byte)0xC0}, 0, 1, "UTF-8"));
166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#String(byte[], java.lang.String)
170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "String",
175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {byte[].class, java.lang.String.class}
176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_Constructor$BLjava_lang_String() {
178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String(byte [], java.lang.String)
179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String s = null;
180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            s = new String(new byte[] { 65, 66, 67, 68, 69 }, "8859_1");
182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (Exception e) {
183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Threw exception : " + e.getMessage());
184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Incorrect string returned: " + s, s.equals("ABCDE"));
186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#String(char[])
190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "String",
195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {char[].class}
196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_Constructor$C() {
198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String(char [])
199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Failed Constructor test", "World", new String(buf));
200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#String(char[], int, int)
204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "String",
209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {char[].class, int.class, int.class}
210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_Constructor$CII() {
212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String(char [], int, int)
213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        char[] buf = { 'H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd' };
214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String s = new String(buf, 0, buf.length);
215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Incorrect string created", hw1.equals(s));
216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        boolean exception = false;
218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            new String(new char[0], 0, Integer.MAX_VALUE);
220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IndexOutOfBoundsException e) {
221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            exception = true;
222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Did not throw exception", exception);
224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#String(int[], int, int)
228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "String",
233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int[].class, int.class, int.class}
234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_Constructor$III() {
236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String(int [], int, int)
237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            new String(new int[0], 2, Integer.MAX_VALUE);
239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Did not throw exception");
240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IndexOutOfBoundsException e) {
241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#String(java.lang.String)
247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "String",
252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class}
253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_ConstructorLjava_lang_String() {
255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String(java.lang.String)
256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String s = new String("Hello World");
257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Failed to construct correct string", "Hello World", s
258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                );
259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#String(java.lang.StringBuffer)
263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "String",
268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.StringBuffer.class}
269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_ConstructorLjava_lang_StringBuffer() {
271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String(java.lang.StringBuffer)
272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        StringBuffer sb = new StringBuffer();
273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        sb.append("HelloWorld");
274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Created incorrect string", "HelloWorld", new String(sb)
275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                );
276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#charAt(int)
280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "charAt",
285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class}
286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_charAtI() {
288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method char java.lang.String.charAt(int)
289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Incorrect character returned", hw1.charAt(5) == 'W'
290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                && (hw1.charAt(1) != 'Z'));
291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String testString = "Test String";
293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            testString.charAt(testString.length());
295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException was not thrown.");
296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IndexOutOfBoundsException iobe) {
297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            testString.charAt(Integer.MAX_VALUE);
302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException was not thrown.");
303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IndexOutOfBoundsException iobe) {
304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            testString.charAt(-1);
309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException was not thrown.");
310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IndexOutOfBoundsException iobe) {
311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#compareTo(java.lang.String)
317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "compareTo",
322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class}
323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_compareToLjava_lang_String() {
325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method int java.lang.String.compareTo(java.lang.String)
326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Returned incorrect value for first < second", "aaaaab"
327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .compareTo("aaaaac") < 0);
328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Returned incorrect value for first = second", 0, "aaaaac"
329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .compareTo("aaaaac"));
330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Returned incorrect value for first > second", "aaaaac"
331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .compareTo("aaaaab") > 0);
332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Considered case to not be of importance", !("A"
333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .compareTo("a") == 0));
334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            "fixture".compareTo(null);
337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("No NPE");
338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (NullPointerException e) {
339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#compareToIgnoreCase(java.lang.String)
344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "compareToIgnoreCase",
349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class}
350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_compareToIgnoreCaseLjava_lang_String() {
352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method int
353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // java.lang.String.compareToIgnoreCase(java.lang.String)
354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Returned incorrect value for first < second", "aaaaab"
355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .compareToIgnoreCase("aaaaac") < 0);
356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Returned incorrect value for first = second", 0, "aaaaac"
357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .compareToIgnoreCase("aaaaac"));
358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Returned incorrect value for first > second", "aaaaac"
359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .compareToIgnoreCase("aaaaab") > 0);
360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Considered case to not be of importance", 0, "A"
361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .compareToIgnoreCase("a"));
362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("0xbf should not compare = to 'ss'", "\u00df"
364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .compareToIgnoreCase("ss") != 0);
365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("0x130 should compare = to 'i'", 0, "\u0130"
366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .compareToIgnoreCase("i"));
367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("0x131 should compare = to 'i'", 0, "\u0131"
368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .compareToIgnoreCase("i"));
369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Locale defLocale = Locale.getDefault();
371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Locale.setDefault(new Locale("tr", ""));
373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            assertEquals("Locale tr: 0x130 should compare = to 'i'", 0, "\u0130"
374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                    .compareToIgnoreCase("i"));
375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            assertEquals("Locale tr: 0x131 should compare = to 'i'", 0, "\u0131"
376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                    .compareToIgnoreCase("i"));
377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } finally {
378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Locale.setDefault(defLocale);
379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            "fixture".compareToIgnoreCase(null);
383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("No NPE");
384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (NullPointerException e) {
385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#concat(java.lang.String)
390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "concat",
395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class}
396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_concatLjava_lang_String() {
398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String
399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // java.lang.String.concat(java.lang.String)
400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Concatenation failed to produce correct string", hello1
401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .concat(world1).equals(hw1));
402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        boolean exception = false;
403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String a = new String("test");
405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String b = null;
406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            a.concat(b);
407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (NullPointerException e) {
408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            exception = true;
409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Concatenation failed to throw NP exception (1)", exception);
411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        exception = false;
412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String a = new String("");
414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String b = null;
415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            a.concat(b);
416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (NullPointerException e) {
417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            exception = true;
418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Concatenation failed to throw NP exception (2)", exception);
420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String s1 = "";
422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String s2 = "s2";
423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String s3 = s1.concat(s2);
424f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(s2, s3);
425f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
426f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        s3 = s2.concat(s1);
427f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertSame(s2, s3);
428f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
429f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
430f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
431f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#copyValueOf(char[])
432f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
433f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
434f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
435f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
436f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "copyValueOf",
437f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {char[].class}
438f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
439f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_copyValueOf$C() {
440f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String java.lang.String.copyValueOf(char
441f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // [])
442f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        char[] t = { 'H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd' };
443f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("copyValueOf returned incorrect String", "HelloWorld", String.copyValueOf(
444f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                t));
445f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
446f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
447f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
448f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#copyValueOf(char[], int, int)
449f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
450f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
451f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
452f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
453f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "copyValueOf",
454f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {char[].class, int.class, int.class}
455f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
456f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_copyValueOf$CII() {
457f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String java.lang.String.copyValueOf(char
458f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // [], int, int)
459f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        char[] t = { 'H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd' };
460f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("copyValueOf returned incorrect String", "World", String.copyValueOf(
461f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                t, 5, 5));
462f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
463f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
464f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
465f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#endsWith(java.lang.String)
466f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
467f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
468f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
469f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
470f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "endsWith",
471f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class}
472f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
473f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_endsWithLjava_lang_String() {
474f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method boolean java.lang.String.endsWith(java.lang.String)
475f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Failed to fine ending string", hw1.endsWith("ld"));
476f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertFalse("Doesn't return false value.", hw1.endsWith("ld "));
477f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertFalse("Doesn't return false value.", hw1.endsWith(" "));
478f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Returned incorrect value for empty string.", hw1.endsWith(""));
479f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
480f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            hw1.endsWith(null);
481f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("NullPointerException is not thrown.");
482f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(NullPointerException npe) {
483f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
484f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
485f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
486f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
487f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
488f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#equals(java.lang.Object)
489f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
490f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
491f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
492f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
493f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "equals",
494f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.Object.class}
495f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
496f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_equalsLjava_lang_Object() {
497f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method boolean java.lang.String.equals(java.lang.Object)
498f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("String not equal", hw1.equals(hw2) && !(hw1.equals(comp11)));
499f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
500f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
501f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
502f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#equalsIgnoreCase(java.lang.String)
503f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
504f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
505f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
506f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
507f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "equalsIgnoreCase",
508f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class}
509f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
510f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_equalsIgnoreCaseLjava_lang_String() {
511f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method boolean
512f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // java.lang.String.equalsIgnoreCase(java.lang.String)
513f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("lc version returned unequal to uc", hwlc
514f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .equalsIgnoreCase(hwuc));
515f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
516f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Returned false for equals strings.", hwlc
517f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .equalsIgnoreCase(hwlc));
518f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
519f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertFalse("Returned true for different strings.", hwlc
520f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .equalsIgnoreCase(hwuc + " "));
521f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
522f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
523f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
524f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#getBytes()
525f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
526f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
527f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
528f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
529f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "getBytes",
530f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
531f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
532ef7122278207e33b724c6360945f9eae1f9a5a58Jorg Pleumann    @BrokenTest("Takes too long for the CTS host")
533f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_getBytes() {
534f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method byte [] java.lang.String.getBytes()
535f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] sbytes = hw1.getBytes();
536f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        for (int i = 0; i < hw1.length(); i++)
537f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            assertTrue("Returned incorrect bytes", sbytes[i] == (byte) hw1
538f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                    .charAt(i));
539f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
540f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        char[] chars = new char[1];
541f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        for (int i = 0; i < 65536; i++) {
542f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // skip surrogates
543f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            if (i == 0xd800)
544f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                i = 0xe000;
545f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            byte[] result = null;
546f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            chars[0] = (char) i;
547f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String string = new String(chars);
548f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            try {
549f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                result = string.getBytes("8859_1");
550f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                if (i < 256) {
551f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                    assertEquals((byte)i, result[0]);
552f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                } else {
553f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                    /*
554f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                     * Substitue character should be 0x1A [1], but may be
555f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                     * '?' character.
556f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                     * [1] http://en.wikipedia.org/wiki/Substitute_character
557f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                     */
558f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                    assertTrue(result[0] == '?' || result[0] == 0x1a);
559f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                }
560f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            } catch (java.io.UnsupportedEncodingException e) {
561f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
562f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            try {
563f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                result = string.getBytes("UTF8");
564f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                int length = i < 0x80 ? 1 : (i < 0x800 ? 2 : 3);
565f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                assertTrue("Wrong length UTF8: " + Integer.toHexString(i),
566f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                        result.length == length);
567f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                assertTrue(
568f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                        "Wrong bytes UTF8: " + Integer.toHexString(i),
569f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                        (i < 0x80 && result[0] == i)
570f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                || (i >= 0x80
571f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                        && i < 0x800
572f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                        && result[0] == (byte) (0xc0 | ((i & 0x7c0) >> 6)) && result[1] == (byte) (0x80 | (i & 0x3f)))
573f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                || (i >= 0x800
574f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                        && result[0] == (byte) (0xe0 | (i >> 12))
575f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                        && result[1] == (byte) (0x80 | ((i & 0xfc0) >> 6)) && result[2] == (byte) (0x80 | (i & 0x3f))));
576f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            } catch (java.io.UnsupportedEncodingException e) {
577f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
578f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
579f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String bytes = null;
580f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            try {
581f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                bytes = new String(result, "UTF8");
582f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                assertTrue("Wrong UTF8 byte length: " + bytes.length() + "("
583f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                        + i + ")", bytes.length() == 1);
584f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                assertTrue(
585f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                        "Wrong char UTF8: "
586f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                + Integer.toHexString(bytes.charAt(0)) + " ("
587f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                + i + ")", bytes.charAt(0) == i);
588f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            } catch (java.io.UnsupportedEncodingException e) {
589f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
590f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
591f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
592f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] bytes = new byte[1];
593f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        for (int i = 0; i < 256; i++) {
594f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            bytes[0] = (byte) i;
595f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String result = null;
596f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            try {
597f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                result = new String(bytes, "8859_1");
598f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                assertEquals("Wrong char length", 1, result.length());
599f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                assertTrue("Wrong char value", result.charAt(0) == (char) i);
600f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            } catch (java.io.UnsupportedEncodingException e) {
601f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
602f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
603f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
604f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
605f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
606f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#getBytes(int, int, byte[], int)
607f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
608f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
609f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
610f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
611f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "getBytes",
612f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class, int.class, byte[].class, int.class}
613f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
614f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @SuppressWarnings("deprecation")
615f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_getBytesII$BI() {
616f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.lang.String.getBytes(int, int, byte [],
617f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // int)
618f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] buf = new byte[5];
619f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        "Hello World".getBytes(6, 11, buf, 0);
620f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Returned incorrect bytes", "World", new String(buf));
621f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
622f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
623f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            "Hello World".getBytes(-1, 1, null, 0);
624f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Expected IndexOutOfBoundsException");
625f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IndexOutOfBoundsException e) {
626f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
627f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (NullPointerException e) {
628f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Threw wrong exception");
629f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
630f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
631f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
632f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            "Hello World".getBytes(6, 2, null, 0);
633f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException was not thrown.");
634f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IndexOutOfBoundsException e) {
635f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
636f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
637f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
638f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
639f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            "Hello World".getBytes(2, 10, new byte[10], 4);
640f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException was not thrown.");
641f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IndexOutOfBoundsException e) {
642f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
643f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
644f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
645f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
646f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
647f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#getBytes(java.lang.String)
648f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
649f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
650f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
651f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
652f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "getBytes",
653f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class}
654f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
655f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_getBytesLjava_lang_String() throws Exception {
656f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method byte [] java.lang.String.getBytes(java.lang.String)
657f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] buf = "Hello World".getBytes();
658f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Returned incorrect bytes", "Hello World", new String(buf));
659f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
660f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
661f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            "string".getBytes("8849_1");
662f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("No UnsupportedEncodingException");
663f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (UnsupportedEncodingException e) {
664f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
665f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
666f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] bytes = "\u3048".getBytes("UTF-8");
667f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] expected = new byte[] {(byte)0xE3, (byte)0x81, (byte)0x88};
668f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(expected[0], bytes[0]);
669f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(expected[1], bytes[1]);
670f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(expected[2], bytes[2]);
671f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
672f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Regression for HARMONY-663
673f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
674f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // BEGIN android-changed
675f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // (replaced non-ASCII-printable characters with escapes)
676f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            "string".getBytes(
677f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                    "?Q?D??_??_6ffa?+vG?_??\u00ef\u00bf\u00bd??\u0015");
678f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // END android-changed
679f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("No UnsupportedEncodingException");
680f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (UnsupportedEncodingException e) {
681f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
682f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
683f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
684f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
685f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
686f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#getChars(int, int, char[], int)
687f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
688f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
689f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
690f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
691f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "getChars",
692f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class, int.class, char[].class, int.class}
693f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
694f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_getCharsII$CI() {
695f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.lang.String.getChars(int, int, char [],
696f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // int)
697f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        hw1.getChars(5, hw1.length(), rbuf, 0);
698f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
699f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        for (int i = 0; i < rbuf.length; i++)
700f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            assertTrue("getChars returned incorrect char(s)", rbuf[i] == buf[i]);
701f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
702f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
703f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            "Hello World".getChars(-1, 1, null, 0);
704f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Expected IndexOutOfBoundsException");
705f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IndexOutOfBoundsException e) {
706f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
707f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (NullPointerException e) {
708f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Threw wrong exception");
709f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
710f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
711f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
712f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            "Hello World".getChars(6, 2, null, 0);
713f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException was not thrown.");
714f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IndexOutOfBoundsException e) {
715f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
716f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
717f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
718f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
719f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            "Hello World".getChars(2, 10, new char[10], 4);
720f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException was not thrown.");
721f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IndexOutOfBoundsException e) {
722f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
723f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
724f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
725f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
726f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
727f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#hashCode()
728f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
729f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
730f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
731f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
732f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "hashCode",
733f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
734f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
735f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_hashCode() {
736f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method int java.lang.String.hashCode()
737f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int hwHashCode = 0;
738f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        final int hwLength = hw1.length();
739f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int powerOfThirtyOne = 1;
740f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        for (int counter = hwLength - 1; counter >= 0; counter--) {
741f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            hwHashCode += hw1.charAt(counter) * powerOfThirtyOne;
742f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            powerOfThirtyOne *= 31;
743f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
744f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("String did not hash to correct value--got: "
745f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                + String.valueOf(hw1.hashCode()) + " but wanted: "
746f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                + String.valueOf(hwHashCode), hw1.hashCode() == hwHashCode);
747f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("The empty string \"\" did not hash to zero", 0 == ""
748f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .hashCode());
749f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
750f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
751f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
752f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#indexOf(int)
753f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
754f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
755f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
756f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
757f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "indexOf",
758f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class}
759f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
760f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_indexOfI() {
761f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method int java.lang.String.indexOf(int)
762f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Invalid index returned", 1, hw1.indexOf('e'));
763f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
764f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Doesn't return -1 if there is no such character.", -1,
765f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                hw1.indexOf('q'));
766f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
767f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
768f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
769f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#indexOf(int, int)
770f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
771f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
772f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
773f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
774f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "indexOf",
775f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class, int.class}
776f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
777f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_indexOfII() {
778f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method int java.lang.String.indexOf(int, int)
779f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Invalid character index returned", 5, hw1.indexOf('W', 2));
780f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Doesn't return -1 if there is no such character.", -1,
781f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                hw1.indexOf('H', 2));
782f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
783f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
784f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
785f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
786f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#indexOf(java.lang.String)
787f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
788f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
789f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
790f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
791f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "indexOf",
792f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class}
793f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
794f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_indexOfLjava_lang_String() {
795f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method int java.lang.String.indexOf(java.lang.String)
796f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Failed to find string", hw1.indexOf("World") > 0);
797f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Failed to find string", !(hw1.indexOf("ZZ") > 0));
798f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Doesn't return -1 for unknown string.",
799f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                -1, hw1.indexOf("Heo"));
800f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
801f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
802f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
803f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#indexOf(java.lang.String, int)
804f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
805f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
806f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
807f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
808f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "indexOf",
809f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class, int.class}
810f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
811f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_indexOfLjava_lang_StringI() {
812f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method int java.lang.String.indexOf(java.lang.String, int)
813f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Failed to find string", hw1.indexOf("World", 0) > 0);
814f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Found string outside index", !(hw1.indexOf("Hello", 6) > 0));
815f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Did not accept valid negative starting position", 0, hello1
816f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .indexOf("", -5));
817f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Reported wrong error code", 5, hello1.indexOf("", 5));
818f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Wrong for empty in empty", 0, "".indexOf("", 0));
819f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
820f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
821f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
822f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#intern()
823f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
824f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
825f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
826f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
827f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "intern",
828f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
829f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
830f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_intern() {
831f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String java.lang.String.intern()
832f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Intern returned incorrect result", hw1.intern() == hw2
833f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .intern());
834f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
835f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
836f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
837f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#lastIndexOf(int)
838f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
839f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
840f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
841f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
842f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "lastIndexOf",
843f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class}
844f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
845f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_lastIndexOfI() {
846f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method int java.lang.String.lastIndexOf(int)
847f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Failed to return correct index", 5, hw1.lastIndexOf('W'));
848f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Returned index for non-existent char",
849f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                -1, hw1.lastIndexOf('Z'));
850f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
851f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
852f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
853f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
854f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#lastIndexOf(int, int)
855f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
856f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
857f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
858f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
859f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "lastIndexOf",
860f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class, int.class}
861f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
862f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_lastIndexOfII() {
863f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method int java.lang.String.lastIndexOf(int, int)
864f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Failed to return correct index",
865f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                5, hw1.lastIndexOf('W', 6));
866f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Returned index for char out of specified range", -1, hw1
867f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .lastIndexOf('W', 4));
868f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Returned index for non-existent char", -1, hw1.lastIndexOf('Z',
869f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                9));
870f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
871f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
872f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
873f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
874f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#lastIndexOf(java.lang.String)
875f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
876f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
877f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
878f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
879f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "lastIndexOf",
880f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class}
881f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
882f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_lastIndexOfLjava_lang_String() {
883f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method int java.lang.String.lastIndexOf(java.lang.String)
884f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Returned incorrect index", 5, hw1.lastIndexOf("World"));
885f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Found String outside of index", -1, hw1
886f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .lastIndexOf("HeKKKKKKKK"));
887f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
888f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
889f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
890f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#lastIndexOf(java.lang.String, int)
891f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
892f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
893f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
894f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
895f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "lastIndexOf",
896f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class, int.class}
897f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
898f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_lastIndexOfLjava_lang_StringI() {
899f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method int java.lang.String.lastIndexOf(java.lang.String,
900f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // int)
901f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Returned incorrect index", 5, hw1.lastIndexOf("World", 9));
902f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int result = hw1.lastIndexOf("Hello", 2);
903f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Found String outside of index: " + result, result == 0);
904f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Reported wrong error code",
905f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                -1, hello1.lastIndexOf("", -5));
906f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Did not accept valid large starting position", 5, hello1
907f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .lastIndexOf("", 5));
908f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
909f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
910f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
911f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#length()
912f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
913f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
914f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
915f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
916f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "length",
917f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
918f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
919f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_length() {
920f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method int java.lang.String.length()
921f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Invalid length returned", 11, comp11.length());
922f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
923f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
924f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
925f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#regionMatches(int, java.lang.String, int, int)
926f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
927f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
928f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
929f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
930f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "regionMatches",
931f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class, java.lang.String.class, int.class, int.class}
932f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
933f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_regionMatchesILjava_lang_StringII() {
934f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method boolean java.lang.String.regionMatches(int,
935f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // java.lang.String, int, int)
936f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String bogusString = "xxcedkedkleiorem lvvwr e''' 3r3r 23r";
937f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
938f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("identical regions failed comparison", hw1.regionMatches(2,
939f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                hw2, 2, 5));
940f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Different regions returned true", !hw1.regionMatches(2,
941f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                bogusString, 2, 5));
942f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertFalse("Returned true for negative offset.", hw1.regionMatches(-1,
943f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                hw2, 2, 5));
944f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertFalse("Returned true for negative offset.", hw1.regionMatches(2,
945f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                hw2, -1, 5));
946f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertFalse("Returned true for toffset+len is greater than the length.",
947f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                hw1.regionMatches(5, hw2, 2, 6));
948f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertFalse("Returned true for ooffset+len is greater than the length.",
949f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                hw1.regionMatches(2, hw2, 5, 6));
950f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
951f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
952f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
953f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#regionMatches(boolean, int, java.lang.String,
954f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *        int, int)
955f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
956f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
957f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
958f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
959f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "regionMatches",
960f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {boolean.class, int.class, java.lang.String.class, int.class, int.class}
961f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
962f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_regionMatchesZILjava_lang_StringII() {
963f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method boolean java.lang.String.regionMatches(boolean, int,
964f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // java.lang.String, int, int)
965f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
966f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String bogusString = "xxcedkedkleiorem lvvwr e''' 3r3r 23r";
967f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
968f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("identical regions failed comparison", hw1.regionMatches(
969f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                false, 2, hw2, 2, 5));
970f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("identical regions failed comparison with different cases",
971f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                hw1.regionMatches(true, 2, hw2, 2, 5));
972f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Different regions returned true", !hw1.regionMatches(true,
973f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                2, bogusString, 2, 5));
974f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("identical regions failed comparison with different cases",
975f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                hw1.regionMatches(false, 2, hw2, 2, 5));
976f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
977f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertFalse("Returned true for negative offset.", hw1.regionMatches(true,
978f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                -1, hw2, 2, 5));
979f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertFalse("Returned true for negative offset.", hw1.regionMatches(false,
980f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                2, hw2, -1, 5));
981f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertFalse("Returned true for toffset+len is greater than the length.",
982f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                hw1.regionMatches(true, 5, hw2, 2, 6));
983f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertFalse("Returned true for ooffset+len is greater than the length.",
984f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                hw1.regionMatches(false, 2, hw2, 5, 6));
985f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
986f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("identical regions failed comparison", hwuc.regionMatches(
987f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                true, 0, hwlc, 0, hwuc.length()));
988f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertFalse("non identical regions failed comparison", hwuc.regionMatches(
989f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                false, 0, hwlc, 0, hwuc.length()));
990f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
991f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
992f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
993f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#replace(char, char)
994f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
995f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
996f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
997f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
998f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "replace",
999f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {char.class, char.class}
1000f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1001f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_replaceCC() {
1002f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String java.lang.String.replace(char, char)
1003f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Failed replace", "HezzoWorzd", hw1.replace('l', 'z'));
1004f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Returned incorrect string.", hw1, hw1.replace("!", "."));
1005f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1006f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1007f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1008f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1009f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1010f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "replaceAll",
1011f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class, java.lang.String.class}
1012f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1013f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_replaceAll() {
1014f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String str = "!'123123.123HelloWorld!123123helloworld#";
1015f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String [] patterns = {"[hw\\p{Upper}]", "(o|l){2,}", "([\'\"]?)(\\d+)",
1016f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                              "^!.*#$"};
1017f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1018f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String [] results = {"!\'123123.123?ello?orld!123123?ello?orld#",
1019f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                             "!\'123123.123He?World!123123he?world#",
1020f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                             "!?.?HelloWorld!?helloworld#", "?"};
1021f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1022f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        for(int i = 0; i < patterns.length; i++) {
1023f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            assertEquals("Returned incorrect string",
1024f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                  results[i], str.replaceAll(patterns[i], "?"));
1025f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1026f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1027f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1028f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            str.replaceAll("[abc*", "?");
1029f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("PatternSyntaxException is not thrown.");
1030f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(PatternSyntaxException pse) {
1031f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
1032f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1033f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1034f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1035f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1036f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1037f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1038f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "replaceFirst",
1039f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class, java.lang.String.class}
1040f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1041f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_replaceFirst() {
1042f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String str = "!'123123.123HelloWorld!123123helloworld#";
1043f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String [] patterns = {"[hw\\p{Upper}]", "(o|l){2,}", "([\'\"]?)(\\d+)",
1044f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                              "^!.*#$"};
1045f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1046f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String [] results = {"!'123123.123?elloWorld!123123helloworld#",
1047f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                             "!'123123.123He?World!123123helloworld#",
1048f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                             "!?.123HelloWorld!123123helloworld#", "?"};
1049f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1050f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        for(int i = 0; i < patterns.length; i++) {
1051f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            assertEquals("Returned incorrect string",
1052f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                  results[i], str.replaceFirst(patterns[i], "?"));
1053f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1054f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1055f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1056f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            str.replaceFirst("[abc*", "?");
1057f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("PatternSyntaxException is not thrown.");
1058f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(PatternSyntaxException pse) {
1059f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
1060f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1061f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1062f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1063f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1064f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1065f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1066f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "split",
1067f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class}
1068f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1069f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_splitLString() {
1070f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String str = "!'123123.123HelloWorld!123123helloworld#";
1071f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String [] patterns = {"[!.1]", "(\\d+).*e(l+)o.*orld"};
1072f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String [][] results = {{"", "'","23", "23", "", "23HelloWorld", "", "23",
1073f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                               "23helloworld#"},
1074f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                               {"!'", "#"}};
1075f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1076f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        for(int i = 0; i < patterns.length; i++) {
1077f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            assertTrue("Returned incorrect string array for pattern: " +
1078f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                patterns[i], Arrays.equals(results[i], str.split(patterns[i])));
1079f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1080f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1081f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1082f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            str.split("[a}");
1083f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("PatternSyntaxException is not thrown.");
1084f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(PatternSyntaxException pse) {
1085f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
1086f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1087f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1088f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1089f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1090f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1091f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1092f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "split",
1093f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class, int.class}
1094f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1095f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_splitLStringLint() {
1096f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String str = "!'123123.123HelloWorld!123123helloworld#";
1097f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String pattern = "[!.1]";
1098f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String [][] results = {{"", "'","23", "23.123HelloWorld!123123helloworld#"},
1099f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                               {"", "'","23", "23", "", "23HelloWorld", "", "23",
1100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                               "23helloworld#"}};
1101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Returned incorrect string array for limit 4",
1103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                Arrays.equals(results[0], str.split(pattern, 4)));
1104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Returned incorrect string array for limit 9",
1105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                Arrays.equals(results[1], str.split(pattern, 9)));
1106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Returned incorrect string array for limit 0",
1107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                Arrays.equals(results[1], str.split(pattern, 0)));
1108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Returned incorrect string array for limit -1",
1109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                Arrays.equals(results[1], str.split(pattern, -1)));
1110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Returned incorrect string array for limit 10",
1111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                Arrays.equals(results[1], str.split(pattern, 10)));
1112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Returned incorrect string array for limit Integer.MAX_VALUE",
1113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                Arrays.equals(results[1], str.split(pattern, Integer.MAX_VALUE)));
1114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            str.split("[a}", 0);
1117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("PatternSyntaxException is not thrown.");
1118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(PatternSyntaxException pse) {
1119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
1120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#replace(CharSequence, CharSequence)
1127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "replace",
1132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.CharSequence.class, java.lang.CharSequence.class}
1133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_replaceLjava_langCharSequenceLjava_langCharSequence() {
1135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Failed replace", "aaccdd", "aabbdd".replace(
1136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            new StringBuffer("bb"), "cc"));
1137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Failed replace by bigger seq", "cccbccc", "aba".replace(
1138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            "a", "ccc"));
1139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Failed replace by smaller seq", "$bba^",
1140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            "$aaaaa^".replace(new StringBuilder("aa"), "b"));
1141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            "".replace((CharSequence) null, "123".subSequence(0, 1));
1144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("NullPointerException is not thrown.");
1145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(NullPointerException npe) {
1146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
1147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            "".replace("123".subSequence(0, 1), (CharSequence) null);
1151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("NullPointerException is not thrown.");
1152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(NullPointerException npe) {
1153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
1154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#startsWith(java.lang.String)
1159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "startsWith",
1164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class}
1165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_startsWithLjava_lang_String() {
1167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method boolean java.lang.String.startsWith(java.lang.String)
1168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Failed to find string", hw1.startsWith("Hello"));
1169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Found incorrect string", !hw1.startsWith("T"));
1170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#startsWith(java.lang.String, int)
1174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "startsWith",
1179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class, int.class}
1180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_startsWithLjava_lang_StringI() {
1182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method boolean java.lang.String.startsWith(java.lang.String,
1183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // int)
1184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Failed to find string", hw1.startsWith("World", 5));
1185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Found incorrect string", !hw1.startsWith("Hello", 5));
1186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#substring(int)
1190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "substring",
1195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class}
1196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_substringI() {
1198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String java.lang.String.substring(int)
1199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Incorrect substring returned",
1200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "World", hw1.substring(5));
1201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("not identical", hw1.substring(0) == hw1);
1202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            hw1.substring(-1);
1205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException was not thrown.");
1206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IndexOutOfBoundsException ioobe) {
1207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
1208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            hw1.substring(hw1.length() + 1);
1212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException was not thrown.");
1213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IndexOutOfBoundsException ioobe) {
1214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
1215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            hw1.substring(Integer.MAX_VALUE);
1219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException was not thrown.");
1220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IndexOutOfBoundsException ioobe) {
1221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
1222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#substring(int, int)
1227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "substring",
1232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class, int.class}
1233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_substringII() {
1235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String java.lang.String.substring(int, int)
1236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Incorrect substring returned", hw1.substring(0, 5).equals(
1237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "Hello")
1238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                && (hw1.substring(5, 10).equals("World")));
1239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("not identical", hw1.substring(0, hw1.length()) == hw1);
1240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            hw1.substring(-1, hw1.length());
1243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException was not thrown.");
1244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IndexOutOfBoundsException ioobe) {
1245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
1246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            hw1.substring(Integer.MAX_VALUE, hw1.length());
1250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException was not thrown.");
1251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IndexOutOfBoundsException ioobe) {
1252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
1253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            hw1.substring(0, Integer.MAX_VALUE);
1257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException was not thrown.");
1258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IndexOutOfBoundsException ioobe) {
1259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
1260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "subSequence",
1268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class, int.class}
1269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_subSequence() {
1271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String java.lang.String.substring(int, int)
1272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Incorrect substring returned", hw1.subSequence(0, 5).equals(
1273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                      "Hello") && (hw1.subSequence(5, 10).equals("World")));
1274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("not identical", hw1.subSequence(0, hw1.length()) == hw1);
1275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            hw1.subSequence(0, Integer.MAX_VALUE);
1278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException was not thrown.");
1279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IndexOutOfBoundsException ioobe) {
1280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
1281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            hw1.subSequence(Integer.MAX_VALUE, hw1.length());
1285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException was not thrown.");
1286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IndexOutOfBoundsException ioobe) {
1287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
1288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            hw1.subSequence(-1, hw1.length());
1292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException was not thrown.");
1293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IndexOutOfBoundsException ioobe) {
1294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
1295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#toCharArray()
1300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "toCharArray",
1305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
1306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_toCharArray() {
1308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method char [] java.lang.String.toCharArray()
1309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String s = new String(buf, 0, buf.length);
1311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        char[] schars = s.toCharArray();
1312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        for (int i = 0; i < s.length(); i++)
1313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            assertTrue("Returned incorrect char aray", buf[i] == schars[i]);
1314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#toLowerCase()
1318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "toLowerCase",
1323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
1324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_toLowerCase() {
1326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String java.lang.String.toLowerCase()
1327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("toLowerCase case conversion did not succeed", hwuc
1328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .toLowerCase().equals(hwlc));
1329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("a) Sigma has same lower case value at end of word with Unicode 3.0",
1331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "\u03c3", "\u03a3".toLowerCase());
1332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("b) Sigma has same lower case value at end of word with Unicode 3.0",
1333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "a \u03c3", "a \u03a3".toLowerCase());
1334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#toLowerCase(java.util.Locale)
1338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "toLowerCase",
1343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.util.Locale.class}
1344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_toLowerCaseLjava_util_Locale() {
1346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String
1347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // java.lang.String.toLowerCase(java.util.Locale)
1348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("toLowerCase case conversion did not succeed", hwuc
1349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .toLowerCase(java.util.Locale.getDefault()).equals(hwlc));
1350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Invalid \\u0049 for English", "\u0069", "\u0049".toLowerCase(
1351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                Locale.ENGLISH));
1352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Invalid \\u0049 for Turkish", "\u0131", "\u0049".toLowerCase(
1353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                new Locale("tr", "")));
1354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#toString()
1358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "toString",
1363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
1364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_toString() {
1366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String java.lang.String.toString()
1367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Incorrect string returned", hw1.toString().equals(hw1));
1368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#toUpperCase()
1372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "toUpperCase",
1377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
1378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_toUpperCase() {
1380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String java.lang.String.toUpperCase()
1381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Returned string is not UpperCase", hwlc.toUpperCase()
1382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .equals(hwuc));
1383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Wrong conversion", "SS", "\u00df".toUpperCase());
1385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String s = "a\u00df\u1f56";
1387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Invalid conversion", !s.toUpperCase().equals(s));
1388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#toUpperCase(java.util.Locale)
1393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "toUpperCase",
1398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.util.Locale.class}
1399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_toUpperCaseLjava_util_Locale() {
1401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String
1402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // java.lang.String.toUpperCase(java.util.Locale)
1403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Returned string is not UpperCase", hwlc.toUpperCase()
1404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .equals(hwuc));
1405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Invalid \\u0069 for English", "\u0049", "\u0069".toUpperCase(
1406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                Locale.ENGLISH));
1407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Invalid \\u0069 for Turkish", "\u0130", "\u0069".toUpperCase(
1408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                new Locale("tr", "")));
1409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#trim()
1413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "trim",
1418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
1419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_trim() {
1421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String java.lang.String.trim()
1422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Incorrect string returned", " HelloWorld ".trim().equals(
1423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                hw1));
1424f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Incorrect string returned", hw1, "  HelloWorld  ".trim());
1425f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Incorrect string returned", "   ".trim().equals(""));
1426f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1427f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1428f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1429f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#valueOf(char[])
1430f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1431f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1432f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1433f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1434f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "valueOf",
1435f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {char[].class}
1436f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1437f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_valueOf$C() {
1438f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String java.lang.String.valueOf(char [])
1439f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Returned incorrect String",
1440f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "World", String.valueOf(buf));
1441f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Returned incorrect String",
1442f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "", String.valueOf(new char[]{}));
1443f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1444f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String.valueOf(null);
1445f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("NullPointerException was not thrown.");
1446f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(NullPointerException npe) {
1447f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
1448f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1449f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1450f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1451f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1452f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#valueOf(char[], int, int)
1453f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1454f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1455f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1456f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1457f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "valueOf",
1458f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {char[].class, int.class, int.class}
1459f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1460f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_valueOf$CII() {
1461f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String java.lang.String.valueOf(char [],
1462f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // int, int)
1463f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        char[] t = { 'H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd' };
1464f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("copyValueOf returned incorrect String", "World", String.valueOf(t,
1465f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                5, 5));
1466f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1467f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1468f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String.valueOf(t, 0, t.length + 1);
1469f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException was not thrown.");
1470f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IndexOutOfBoundsException ioobe) {
1471f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
1472f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1473f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1474f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1475f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String.valueOf(t, 0, -1);
1476f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException was not thrown.");
1477f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IndexOutOfBoundsException ioobe) {
1478f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
1479f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1480f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1481f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1482f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String.valueOf(t, 0, Integer.MAX_VALUE);
1483f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException was not thrown.");
1484f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IndexOutOfBoundsException ioobe) {
1485f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
1486f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1487f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1488f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1489f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1490f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#valueOf(char)
1491f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1492f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1493f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1494f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1495f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "valueOf",
1496f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {char.class}
1497f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1498f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_valueOfC() {
1499f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String java.lang.String.valueOf(char)
1500f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        for (int i = 0; i < 65536; i++)
1501f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            assertTrue("Incorrect valueOf(char) returned: " + i, String
1502f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                    .valueOf((char) i).charAt(0) == (char) i);
1503f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1504f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1505f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1506f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#valueOf(double)
1507f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1508f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1509f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1510f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1511f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "valueOf",
1512f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {double.class}
1513f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1514f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_valueOfD() {
1515f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String java.lang.String.valueOf(double)
1516f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Incorrect double string returned", "1.7976931348623157E308", String.valueOf(
1517f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                Double.MAX_VALUE));
1518f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1519f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1520f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1521f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#valueOf(float)
1522f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1523f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1524f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1525f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1526f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "valueOf",
1527f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {float.class}
1528f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1529f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_valueOfF() {
1530f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String java.lang.String.valueOf(float)
1531f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("incorrect float string returned--got: "
1532f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                + String.valueOf(1.0F) + " wanted: 1.0", String.valueOf(1.0F)
1533f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .equals("1.0"));
1534f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("incorrect float string returned--got: "
1535f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                + String.valueOf(0.9F) + " wanted: 0.9", String.valueOf(0.9F)
1536f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .equals("0.9"));
1537f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("incorrect float string returned--got: "
1538f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                + String.valueOf(109.567F) + " wanted: 109.567", String
1539f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .valueOf(109.567F).equals("109.567"));
1540f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1541f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1542f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1543f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#valueOf(int)
1544f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1545f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1546f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1547f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1548f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "valueOf",
1549f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class}
1550f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1551f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_valueOfI() {
1552f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String java.lang.String.valueOf(int)
1553f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("returned invalid int string", "1", String.valueOf(1));
1554f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1555f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1556f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1557f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#valueOf(long)
1558f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1559f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1560f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1561f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1562f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "valueOf",
1563f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {long.class}
1564f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1565f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_valueOfJ() {
1566f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String java.lang.String.valueOf(long)
1567f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("returned incorrect long string", "927654321098", String.valueOf(
1568f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                927654321098L));
1569f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1570f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1571f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1572f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#valueOf(java.lang.Object)
1573f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1574f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1575f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1576f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1577f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "valueOf",
1578f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.Object.class}
1579f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1580f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_valueOfLjava_lang_Object() {
1581f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String
1582f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // java.lang.String.valueOf(java.lang.Object)
1583f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Incorrect Object string returned", obj.toString().equals(
1584f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                String.valueOf(obj)));
1585f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Incorrect value was returned for null.",
1586f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                 "null", String.valueOf((Object) null));
1587f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1588f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1589f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1590f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#valueOf(boolean)
1591f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1592f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1593f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1594f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1595f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "valueOf",
1596f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {boolean.class}
1597f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1598f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_valueOfZ() {
1599f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String java.lang.String.valueOf(boolean)
1600f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Incorrect boolean string returned", String.valueOf(false)
1601f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .equals("false")
1602f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                && (String.valueOf(true).equals("true")));
1603f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1604f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1605f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1606f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#contentEquals(CharSequence cs)
1607f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1608f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1609f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.PARTIAL,
1610f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "NullPointerException is not verified.",
1611f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "contentEquals",
1612f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.CharSequence.class}
1613f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1614f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_contentEqualsLjava_lang_CharSequence() {
1615f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.lang.String java.lang.String.contentEquals(CharSequence cs)
1616f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertFalse("Incorrect result of compare", "qwerty".contentEquals(""));
1617f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1618f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1619f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1620f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#format(Locale, String, Object[])
1621f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1622f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1623f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1624f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1625f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "format",
1626f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class, java.lang.Object[].class}
1627f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1628f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @SuppressWarnings("boxing")
1629f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_format() {
1630f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("13% of sum is 0x11",
1631f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String.format("%d%% of %s is 0x%x", 13, "sum", 17));
1632f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1633f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("3 2 1 4 3 2 1", String.format(
1634f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "%3$d %2$d %1$d %4$d %3$d %2$d %1$d", 1, 2, 3, 4));
1635f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1636f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("empty format", "", String.format("", 123, this));
1637f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1638f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String.format(null);
1639f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("NPE is expected on null format");
1640f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (NullPointerException ok){}
1641f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1642f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1643f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String.format("%d%% of %s is 0x%x", "123");
1644f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IllegalFormatException was not thrown.");
1645f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IllegalFormatException ife) {
1646f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
1647f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1648f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1649f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1650f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String.format("%tu", "123");
1651f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IllegalFormatException was not thrown.");
1652f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IllegalFormatException ife) {
1653f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
1654f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1655f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1656f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1657f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1658f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1659f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.String#format(Locale, String, Object...)
1660f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1661f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1662f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1663f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1664f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "format",
1665f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.util.Locale.class, java.lang.String.class, java.lang.Object[].class}
1666f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1667f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @SuppressWarnings("boxing")
1668f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_format_Locale() {
1669f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Locale l = new Locale("UK");
1670f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("13% of sum is 0x11",
1671f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                String.format(l, "%d%% of %s is 0x%x", 13, "sum", 17));
1672f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("empty format", "", String.format("", 123, this));
1673f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1674f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String.format(l, null, "");
1675f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("NPE is expected on null format");
1676f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (NullPointerException ok){}
1677f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1678f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1679f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String.format(l, "%d", "test");
1680f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IllegalFormatException wasn't thrown.");
1681f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IllegalFormatException ife) {
1682f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
1683f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1684f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1685f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1686f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1687f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1688f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1689f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "matches",
1690f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class}
1691f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1692f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_matches() {
1693f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String[] patterns = {
1694f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "(a|b)*abb",
1695f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "(1*2*3*4*)*567",
1696f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "(a|b|c|d)*aab",
1697f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "(1|2|3|4|5|6|7|8|9|0)(1|2|3|4|5|6|7|8|9|0)*",
1698f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)*",
1699f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "(a|b)*(a|b)*A(a|b)*lice.*",
1700f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "(a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z)(a|b|c|d|e|f|g|h|"
1701f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                        + "i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z)*(1|2|3|4|5|6|7|8|9|0)*|while|for|struct|if|do",
1702f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1703f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project       };
1704f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1705f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String[] patternsInc = {
1706f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "(ac)*bb",
1707f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "(1)*567",
1708f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "(c)*ab",
1709f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "(|8|9|0)(1|2|7|8|9|0)*",
1710f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "(z)",
1711f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "(a)*A(b)*lice.",
1712f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "(a|b|c|d|e)",
1713f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1714f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project       };
1715f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1716f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String[][] strings = {
1717f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                { "abb", "ababb", "abababbababb", "abababbababbabababbbbbabb" },
1718f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                { "213567", "12324567", "1234567", "213213567",
1719f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                        "21312312312567", "444444567" },
1720f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                { "abcdaab", "aab", "abaab", "cdaab", "acbdadcbaab" },
1721f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                { "213234567", "3458", "0987654", "7689546432", "0398576",
1722f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                        "98432", "5" },
1723f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                {
1724f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                        "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
1725f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                        "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
1726f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                                + "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" },
1727f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                { "ababbaAabababblice", "ababbaAliceababab", "ababbAabliceaaa",
1728f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                        "abbbAbbbliceaaa", "Alice" },
1729f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                { "a123", "bnxnvgds156", "for", "while", "if", "struct" },
1730f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                { "xy" }, { "xy" }, { "xcy" }
1731f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1732f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        };
1733f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1734f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        for (int i = 0; i < patterns.length; i++) {
1735f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            for (int j = 0; j < strings[i].length; j++) {
1736f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                assertTrue("Incorrect match: " + patterns[i] + " vs "
1737f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                        + strings[i][j], strings[i][j].matches(patterns[i]));
1738f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                assertFalse("" + i, strings[i][j].matches(patternsInc[i]));
1739f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
1740f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1741f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1742f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1743f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
1744