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