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