1dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani/*
2dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani * Copyright (C) 2012 The Android Open Source Project
3dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani *
4dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani * Licensed under the Apache License, Version 2.0 (the "License");
5dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani * you may not use this file except in compliance with the License.
6dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani * You may obtain a copy of the License at
7dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani *
8dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani *      http://www.apache.org/licenses/LICENSE-2.0
9dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani *
10dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani * Unless required by applicable law or agreed to in writing, software
11dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani * distributed under the License is distributed on an "AS IS" BASIS,
12dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani * See the License for the specific language governing permissions and
14dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani * limitations under the License.
15dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani */
16dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani
17dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani
18dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasanipackage android.os;
19dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani
20dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasaniimport android.os.Process;
21f02b60aa4f367516f40cf3d60fffae0c6fe3e1b8Dianne Hackbornimport android.os.UserHandle;
22dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasaniimport android.test.suitebuilder.annotation.MediumTest;
23dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasaniimport android.test.suitebuilder.annotation.SmallTest;
24dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani
25dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasaniimport junit.framework.TestCase;
26dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani
27dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani
28dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasanipublic class ProcessTest extends TestCase {
29dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani
30dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani    @MediumTest
31dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani    public void testProcessGetUidFromName() throws Exception {
32dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani        assertEquals(android.os.Process.SYSTEM_UID, Process.getUidForName("system"));
33dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani        assertEquals(Process.BLUETOOTH_UID, Process.getUidForName("bluetooth"));
34dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani        assertEquals(Process.FIRST_APPLICATION_UID, Process.getUidForName("u0_a0"));
35f02b60aa4f367516f40cf3d60fffae0c6fe3e1b8Dianne Hackborn        assertEquals(UserHandle.getUid(1, Process.SYSTEM_UID), Process.getUidForName("u1_system"));
36f02b60aa4f367516f40cf3d60fffae0c6fe3e1b8Dianne Hackborn        assertEquals(UserHandle.getUid(2, Process.FIRST_ISOLATED_UID),
37dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani                Process.getUidForName("u2_i0"));
38f02b60aa4f367516f40cf3d60fffae0c6fe3e1b8Dianne Hackborn        assertEquals(UserHandle.getUid(3, Process.FIRST_APPLICATION_UID + 100),
39dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani                Process.getUidForName("u3_a100"));
40dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani    }
41dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani
42dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani    @MediumTest
43dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani    public void testProcessGetUidFromNameFailure() throws Exception {
44dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani        // Failure cases
45dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani        assertEquals(-1, Process.getUidForName("u2a_foo"));
46dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani        assertEquals(-1, Process.getUidForName("u1_abcdef"));
47dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani        assertEquals(-1, Process.getUidForName("u23"));
48dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani        assertEquals(-1, Process.getUidForName("u2_i34a"));
49dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani        assertEquals(-1, Process.getUidForName("akjhwiuefhiuhsf"));
50dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani        assertEquals(-1, Process.getUidForName("u5_radio5"));
51dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani        assertEquals(-1, Process.getUidForName("u2jhsajhfkjhsafkhskafhkashfkjashfkjhaskjfdhakj3"));
52dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani    }
53dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani
54dc09102c8dad2668ec8c1228fee8762aa81153a5Amith Yamasani}
55