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
40cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn	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        }
50cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
51cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
52cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            mAm.moveTaskToBack(-1);
53cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("IActivityManager.moveTaskToBack 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        }
60cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
61cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
62cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            mAm.moveTaskBackwards(-1);
63cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("IActivityManager.moveTaskToFront did not throw SecurityException as"
64cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn                    + " expected");
65cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (SecurityException e) {
66cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            // expected
67cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (RemoteException e) {
68cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("Unexpected remote exception");
69cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        }
70cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn	}
71cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
72cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    @SmallTest
73cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    public void testCHANGE_CONFIGURATION() {
74cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
75cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            mAm.updateConfiguration(new Configuration());
76cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("IActivityManager.updateConfiguration did not throw SecurityException as"
77cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn                    + " expected");
78cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (SecurityException e) {
79cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            // expected
80cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (RemoteException e) {
81cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("Unexpected remote exception");
82cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        }
83cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    }
84cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
85cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    @SmallTest
86cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    public void testSET_DEBUG_APP() {
87cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
88cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            mAm.setDebugApp(null, false, false);
89cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("IActivityManager.setDebugApp did not throw SecurityException as"
90cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn                    + " expected");
91cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (SecurityException e) {
92cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            // expected
93cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (RemoteException e) {
94cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("Unexpected remote exception");
95cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        }
96cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    }
97cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
98cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    @SmallTest
99cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    public void testSET_PROCESS_LIMIT() {
100cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
101cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            mAm.setProcessLimit(10);
102cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("IActivityManager.setProcessLimit did not throw SecurityException as"
103cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn                    + " expected");
104cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (SecurityException e) {
105cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            // expected
106cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (RemoteException e) {
107cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("Unexpected remote exception");
108cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        }
109cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    }
110cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
111cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    @SmallTest
112cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    public void testALWAYS_FINISH() {
113cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
114cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            mAm.setAlwaysFinish(false);
115cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("IActivityManager.setAlwaysFinish did not throw SecurityException as"
116cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn                    + " expected");
117cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (SecurityException e) {
118cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            // expected
119cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (RemoteException e) {
120cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("Unexpected remote exception");
121cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        }
122cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    }
123cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
124cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    @SmallTest
125cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    public void testSIGNAL_PERSISTENT_PROCESSES() {
126cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
127cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            mAm.signalPersistentProcesses(-1);
128cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("IActivityManager.signalPersistentProcesses did not throw SecurityException as"
129cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn                    + " expected");
130cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (SecurityException e) {
131cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            // expected
132cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (RemoteException e) {
133cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("Unexpected remote exception");
134cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        }
135cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    }
136cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
137cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    @SmallTest
138cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    public void testFORCE_BACK() {
139cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
140cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            mAm.unhandledBack();
141cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("IActivityManager.unhandledBack did not throw SecurityException as"
142cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn                    + " expected");
143cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (SecurityException e) {
144cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            // expected
145cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (RemoteException e) {
146cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("Unexpected remote exception");
147cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        }
148cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    }
149cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
150cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    @SmallTest
151cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    public void testSET_ACTIVITY_WATCHER() {
152cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
153b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn            mAm.setActivityController(null);
154b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn            fail("IActivityManager.setActivityController did not throw SecurityException as"
155cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn                    + " expected");
156cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (SecurityException e) {
157cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            // expected
158cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (RemoteException e) {
159cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("Unexpected remote exception");
160cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        }
161cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    }
162cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
163cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    @SmallTest
164cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    public void testSHUTDOWN() {
165cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
166cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            mAm.shutdown(0);
167cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("IActivityManager.shutdown did not throw SecurityException as"
168cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn                    + " expected");
169cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (SecurityException e) {
170cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            // expected
171cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (RemoteException e) {
172cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("Unexpected remote exception");
173cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        }
174cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    }
175cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn
176cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    @SmallTest
177cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    public void testSTOP_APP_SWITCHES() {
178cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        try {
179cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            mAm.stopAppSwitches();
180cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("IActivityManager.stopAppSwitches 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        try {
189cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            mAm.resumeAppSwitches();
190cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("IActivityManager.resumeAppSwitches did not throw SecurityException as"
191cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn                    + " expected");
192cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (SecurityException e) {
193cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            // expected
194cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        } catch (RemoteException e) {
195cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn            fail("Unexpected remote exception");
196cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn        }
197cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn    }
198cfaef699e1dfb3a75d5b51f3b15816f13670fd51Dianne Hackborn}
199