1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * you may not use this file except in compliance with the License.
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * You may obtain a copy of the License at
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * See the License for the specific language governing permissions and
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * limitations under the License.
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport junit.framework.Assert;
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/**
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * more string tests
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class Main {
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public static void main(String args[]) {
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String test = "0123456789";
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String test1 = new String("0123456789");    // different object
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String test2 = new String("0123456780");    // different value
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String offset = new String("xxx0123456789yyy");
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String sub = offset.substring(3, 13);
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Object blah = new Object();
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertTrue(test.equals(test));
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertTrue(test.equals(test1));
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertFalse(test.equals(test2));
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertEquals(test.compareTo(test1), 0);
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertTrue(test1.compareTo(test2) > 0);
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertTrue(test2.compareTo(test1) < 0);
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        /* compare string with a nonzero offset, in left/right side */
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertEquals(test.compareTo(sub), 0);
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertEquals(sub.compareTo(test), 0);
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertTrue(test.equals(sub));
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertTrue(sub.equals(test));
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        /* same base, one is a substring */
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertFalse(offset.equals(sub));
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertFalse(sub.equals(offset));
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        /* wrong class */
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertFalse(test.equals(blah));
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        /* null ptr - throw */
51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            test.compareTo(null);
53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Assert.fail("didn't get expected npe");
54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (NullPointerException npe) {
55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            System.out.println("Got expected npe");
56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        /* null ptr - ok */
58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertFalse(test.equals(null));
59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        test = test.substring(1);
61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertTrue(test.equals("123456789"));
62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertFalse(test.equals(test1));
63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        test = test.substring(1);
65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertTrue(test.equals("23456789"));
66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        test = test.substring(1);
68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertTrue(test.equals("3456789"));
69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        test = test.substring(1);
71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertTrue(test.equals("456789"));
72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        test = test.substring(3,5);
74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertTrue(test.equals("78"));
75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        test = "this/is/a/path";
77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String[] strings = test.split("/");
78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertEquals(4, strings.length);
79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertEquals("this is a path", test.replaceAll("/", " "));
81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Assert.assertEquals("this is a path", test.replace("/", " "));
82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
84