115a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root/*
215a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * Copyright (C) 2009 The Android Open Source Project
315a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root *
415a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * Licensed under the Apache License, Version 2.0 (the "License");
515a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * you may not use this file except in compliance with the License.
615a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * You may obtain a copy of the License at
715a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root *
815a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root *      http://www.apache.org/licenses/LICENSE-2.0
915a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root *
1015a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * Unless required by applicable law or agreed to in writing, software
1115a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * distributed under the License is distributed on an "AS IS" BASIS,
1215a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1315a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * See the License for the specific language governing permissions and
1415a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * limitations under the License.
1515a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root */
1615a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root
17cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackbornpackage com.android.framework.permission.tests;
18cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
19cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackbornimport android.app.ActivityManagerNative;
20cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackbornimport android.app.IActivityManager;
21cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackbornimport android.content.res.Configuration;
22cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackbornimport android.os.RemoteException;
23cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackbornimport android.test.suitebuilder.annotation.SmallTest;
24cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
25cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackbornimport junit.framework.TestCase;
26cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
27cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn/**
28cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn * TODO: Remove this. This is only a placeholder, need to implement this.
29cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn */
30cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackbornpublic class ActivityManagerPermissionTests extends TestCase {
31cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    IActivityManager mAm;
32cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
33cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    @Override
34cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    protected void setUp() throws Exception {
35cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        super.setUp();
36cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        mAm = ActivityManagerNative.getDefault();
37cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    }
38cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
39cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    @SmallTest
408a985d24ce9a38f40ed88fecbdcd0e75e3a68f44John Spurlock    public void testREORDER_TASKS() {
41cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
428078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn            mAm.moveTaskToFront(0, 0, null);
43cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("IActivityManager.moveTaskToFront did not throw SecurityException as"
44cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn                    + " expected");
45cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (SecurityException e) {
46cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            // expected
47cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (RemoteException e) {
48cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("Unexpected remote exception");
49cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        }
50428ecf296694fa8c7214e068d36d47d1c74e5110Craig Mautner
51cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
52cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            mAm.moveTaskBackwards(-1);
53cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("IActivityManager.moveTaskToFront did not throw SecurityException as"
54cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn                    + " expected");
55cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (SecurityException e) {
56cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            // expected
57cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (RemoteException e) {
58cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("Unexpected remote exception");
59cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        }
608a985d24ce9a38f40ed88fecbdcd0e75e3a68f44John Spurlock    }
61cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
62cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    @SmallTest
63cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    public void testCHANGE_CONFIGURATION() {
64cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
65cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            mAm.updateConfiguration(new Configuration());
66cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("IActivityManager.updateConfiguration did not throw SecurityException as"
67cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn                    + " expected");
68cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (SecurityException e) {
69cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            // expected
70cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (RemoteException e) {
71cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("Unexpected remote exception");
72cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        }
73cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    }
74cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
75cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    @SmallTest
76cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    public void testSET_DEBUG_APP() {
77cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
78cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            mAm.setDebugApp(null, false, false);
79cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("IActivityManager.setDebugApp did not throw SecurityException as"
80cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn                    + " expected");
81cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (SecurityException e) {
82cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            // expected
83cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (RemoteException e) {
84cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("Unexpected remote exception");
85cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        }
86cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    }
87cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
88cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    @SmallTest
89cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    public void testSET_PROCESS_LIMIT() {
90cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
91cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            mAm.setProcessLimit(10);
92cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("IActivityManager.setProcessLimit did not throw SecurityException as"
93cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn                    + " expected");
94cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (SecurityException e) {
95cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            // expected
96cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (RemoteException e) {
97cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("Unexpected remote exception");
98cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        }
99cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    }
100cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
101cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    @SmallTest
102cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    public void testALWAYS_FINISH() {
103cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
104cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            mAm.setAlwaysFinish(false);
105cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("IActivityManager.setAlwaysFinish did not throw SecurityException as"
106cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn                    + " expected");
107cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (SecurityException e) {
108cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            // expected
109cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (RemoteException e) {
110cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("Unexpected remote exception");
111cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        }
112cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    }
113cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
114cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    @SmallTest
115cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    public void testSIGNAL_PERSISTENT_PROCESSES() {
116cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
117cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            mAm.signalPersistentProcesses(-1);
118cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("IActivityManager.signalPersistentProcesses did not throw SecurityException as"
119cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn                    + " expected");
120cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (SecurityException e) {
121cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            // expected
122cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (RemoteException e) {
123cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("Unexpected remote exception");
124cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        }
125cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    }
126cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
127cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    @SmallTest
128cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    public void testFORCE_BACK() {
129cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
130cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            mAm.unhandledBack();
131cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("IActivityManager.unhandledBack did not throw SecurityException as"
132cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn                    + " expected");
133cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (SecurityException e) {
134cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            // expected
135cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (RemoteException e) {
136cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("Unexpected remote exception");
137cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        }
138cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    }
139cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
140cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    @SmallTest
141cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    public void testSET_ACTIVITY_WATCHER() {
142cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
1434a18c26609df2c4230885acb64e92fb51aba70dfDianne Hackborn            mAm.setActivityController(null, false);
144b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn            fail("IActivityManager.setActivityController did not throw SecurityException as"
145cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn                    + " expected");
146cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (SecurityException e) {
147cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            // expected
148cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (RemoteException e) {
149cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("Unexpected remote exception");
150cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        }
151cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    }
152cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
153cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    @SmallTest
154cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    public void testSHUTDOWN() {
155cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
156cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            mAm.shutdown(0);
157cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("IActivityManager.shutdown did not throw SecurityException as"
158cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn                    + " expected");
159cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (SecurityException e) {
160cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            // expected
161cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (RemoteException e) {
162cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("Unexpected remote exception");
163cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        }
164cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    }
165cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
166cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    @SmallTest
167cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    public void testSTOP_APP_SWITCHES() {
168cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
169cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            mAm.stopAppSwitches();
170cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("IActivityManager.stopAppSwitches did not throw SecurityException as"
171cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn                    + " expected");
172cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (SecurityException e) {
173cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            // expected
174cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (RemoteException e) {
175cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("Unexpected remote exception");
176cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        }
177cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
178cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
179cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            mAm.resumeAppSwitches();
180cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("IActivityManager.resumeAppSwitches did not throw SecurityException as"
181cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn                    + " expected");
182cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (SecurityException e) {
183cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            // expected
184cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (RemoteException e) {
185cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("Unexpected remote exception");
186cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        }
187cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    }
188cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn}
189