diff options
author | Android (Google) Code Review <android-gerrit@google.com> | 2009-06-15 15:07:50 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2009-06-15 15:07:50 -0700 |
commit | 6edb3487beb1973b1ea05e5b4168ba1ac247c9a4 (patch) | |
tree | b860066f410306fa8fc7ed707f4b7dea7555b4aa /tests/permission | |
parent | acec4d6741643a5f0bda0b6a4eeb033a963818dc (diff) | |
parent | cfaef699e1dfb3a75d5b51f3b15816f13670fd51 (diff) | |
download | frameworks_base-6edb3487beb1973b1ea05e5b4168ba1ac247c9a4.zip frameworks_base-6edb3487beb1973b1ea05e5b4168ba1ac247c9a4.tar.gz frameworks_base-6edb3487beb1973b1ea05e5b4168ba1ac247c9a4.tar.bz2 |
Merge change 4234 into donut
* changes:
Implement permission test for activity, window, service manager.
Diffstat (limited to 'tests/permission')
3 files changed, 641 insertions, 0 deletions
diff --git a/tests/permission/src/com/android/framework/permission/tests/ActivityManagerPermissionTests.java b/tests/permission/src/com/android/framework/permission/tests/ActivityManagerPermissionTests.java new file mode 100644 index 0000000..14d3d73 --- /dev/null +++ b/tests/permission/src/com/android/framework/permission/tests/ActivityManagerPermissionTests.java @@ -0,0 +1,182 @@ +package com.android.framework.permission.tests; + +import android.app.ActivityManagerNative; +import android.app.IActivityManager; +import android.content.res.Configuration; +import android.os.RemoteException; +import android.test.suitebuilder.annotation.SmallTest; + +import junit.framework.TestCase; + +/** + * TODO: Remove this. This is only a placeholder, need to implement this. + */ +public class ActivityManagerPermissionTests extends TestCase { + IActivityManager mAm; + + @Override + protected void setUp() throws Exception { + super.setUp(); + mAm = ActivityManagerNative.getDefault(); + } + + @SmallTest + public void testREORDER_TASKS() { + try { + mAm.moveTaskToFront(-1); + fail("IActivityManager.moveTaskToFront did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mAm.moveTaskToBack(-1); + fail("IActivityManager.moveTaskToBack did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mAm.moveTaskBackwards(-1); + fail("IActivityManager.moveTaskToFront did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + } + + @SmallTest + public void testCHANGE_CONFIGURATION() { + try { + mAm.updateConfiguration(new Configuration()); + fail("IActivityManager.updateConfiguration did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + } + + @SmallTest + public void testSET_DEBUG_APP() { + try { + mAm.setDebugApp(null, false, false); + fail("IActivityManager.setDebugApp did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + } + + @SmallTest + public void testSET_PROCESS_LIMIT() { + try { + mAm.setProcessLimit(10); + fail("IActivityManager.setProcessLimit did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + } + + @SmallTest + public void testALWAYS_FINISH() { + try { + mAm.setAlwaysFinish(false); + fail("IActivityManager.setAlwaysFinish did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + } + + @SmallTest + public void testSIGNAL_PERSISTENT_PROCESSES() { + try { + mAm.signalPersistentProcesses(-1); + fail("IActivityManager.signalPersistentProcesses did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + } + + @SmallTest + public void testFORCE_BACK() { + try { + mAm.unhandledBack(); + fail("IActivityManager.unhandledBack did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + } + + @SmallTest + public void testSET_ACTIVITY_WATCHER() { + try { + mAm.setActivityWatcher(null); + fail("IActivityManager.setActivityWatcher did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + } + + @SmallTest + public void testSHUTDOWN() { + try { + mAm.shutdown(0); + fail("IActivityManager.shutdown did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + } + + @SmallTest + public void testSTOP_APP_SWITCHES() { + try { + mAm.stopAppSwitches(); + fail("IActivityManager.stopAppSwitches did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mAm.resumeAppSwitches(); + fail("IActivityManager.resumeAppSwitches did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + } +} diff --git a/tests/permission/src/com/android/framework/permission/tests/ServiceManagerPermissionTests.java b/tests/permission/src/com/android/framework/permission/tests/ServiceManagerPermissionTests.java new file mode 100644 index 0000000..3f1e27e --- /dev/null +++ b/tests/permission/src/com/android/framework/permission/tests/ServiceManagerPermissionTests.java @@ -0,0 +1,50 @@ +package com.android.framework.permission.tests; + +import com.android.internal.os.BinderInternal; + +import android.os.Binder; +import android.os.IPermissionController; +import android.os.RemoteException; +import android.os.ServiceManager; +import android.os.ServiceManagerNative; +import android.test.suitebuilder.annotation.SmallTest; + +import junit.framework.TestCase; + +/** + * TODO: Remove this. This is only a placeholder, need to implement this. + */ +public class ServiceManagerPermissionTests extends TestCase { + @SmallTest + public void testAddService() { + try { + // The security in the service manager is that you can't replace + // a service that is already published. + Binder binder = new Binder(); + ServiceManager.addService("activity", binder); + fail("ServiceManager.addService did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } + } + + @SmallTest + public void testSetPermissionController() { + try { + IPermissionController pc = new IPermissionController.Stub() { + public boolean checkPermission(java.lang.String permission, int pid, int uid) { + return true; + } + }; + ServiceManagerNative.asInterface(BinderInternal.getContextObject()) + .setPermissionController(pc); + fail("IServiceManager.setPermissionController did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + } +} diff --git a/tests/permission/src/com/android/framework/permission/tests/WindowManagerPermissionTests.java b/tests/permission/src/com/android/framework/permission/tests/WindowManagerPermissionTests.java new file mode 100644 index 0000000..8ab2a10 --- /dev/null +++ b/tests/permission/src/com/android/framework/permission/tests/WindowManagerPermissionTests.java @@ -0,0 +1,409 @@ +package com.android.framework.permission.tests; + +import android.content.res.Configuration; +import android.os.Binder; +import android.os.RemoteException; +import android.os.ServiceManager; +import android.test.suitebuilder.annotation.SmallTest; +import android.view.IWindowManager; +import android.view.KeyEvent; +import android.view.MotionEvent; + +import junit.framework.TestCase; + +/** + * TODO: Remove this. This is only a placeholder, need to implement this. + */ +public class WindowManagerPermissionTests extends TestCase { + IWindowManager mWm; + + @Override + protected void setUp() throws Exception { + super.setUp(); + mWm = IWindowManager.Stub.asInterface( + ServiceManager.getService("window")); + } + + @SmallTest + public void testMANAGE_APP_TOKENS() { + try { + mWm.pauseKeyDispatching(null); + fail("IWindowManager.pauseKeyDispatching did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.resumeKeyDispatching(null); + fail("IWindowManager.resumeKeyDispatching did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.setEventDispatching(true); + fail("IWindowManager.setEventDispatching did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.addWindowToken(null, 0); + fail("IWindowManager.addWindowToken did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.removeWindowToken(null); + fail("IWindowManager.removeWindowToken did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.addAppToken(0, null, 0, 0, false); + fail("IWindowManager.addAppToken did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.setAppGroupId(null, 0); + fail("IWindowManager.setAppGroupId did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.updateOrientationFromAppTokens(new Configuration(), null); + fail("IWindowManager.updateOrientationFromAppTokens did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.setAppOrientation(null, 0); + mWm.addWindowToken(null, 0); + fail("IWindowManager.setAppOrientation did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.setFocusedApp(null, false); + fail("IWindowManager.setFocusedApp did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.prepareAppTransition(0); + fail("IWindowManager.prepareAppTransition did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.executeAppTransition(); + fail("IWindowManager.executeAppTransition did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.setAppStartingWindow(null, "foo", 0, null, 0, 0, null, false); + fail("IWindowManager.setAppStartingWindow did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.setAppWillBeHidden(null); + fail("IWindowManager.setAppWillBeHidden did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.setAppVisibility(null, false); + fail("IWindowManager.setAppVisibility did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.startAppFreezingScreen(null, 0); + fail("IWindowManager.startAppFreezingScreen did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.stopAppFreezingScreen(null, false); + fail("IWindowManager.stopAppFreezingScreen did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.removeAppToken(null); + fail("IWindowManager.removeAppToken did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.moveAppToken(0, null); + fail("IWindowManager.moveAppToken did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.moveAppTokensToTop(null); + fail("IWindowManager.moveAppTokensToTop did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.moveAppTokensToBottom(null); + fail("IWindowManager.moveAppTokensToBottom did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + } + + @SmallTest + public void testINJECT_EVENTS() { + try { + mWm.injectKeyEvent(new KeyEvent(0, 0), false); + fail("IWindowManager.injectKeyEvent did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.injectPointerEvent(MotionEvent.obtain(0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0), false); + fail("IWindowManager.injectPointerEvent did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.injectTrackballEvent(MotionEvent.obtain(0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0), false); + fail("IWindowManager.injectTrackballEvent did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + } + + @SmallTest + public void testDISABLE_KEYGUARD() { + Binder token = new Binder(); + try { + mWm.disableKeyguard(token, "foo"); + fail("IWindowManager.disableKeyguard did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.reenableKeyguard(token); + fail("IWindowManager.reenableKeyguard did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.exitKeyguardSecurely(null); + fail("IWindowManager.exitKeyguardSecurely did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + } + + @SmallTest + public void testSET_ANIMATION_SCALE() { + try { + mWm.setAnimationScale(0, 1); + fail("IWindowManager.setAnimationScale did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.setAnimationScales(new float[1]); + fail("IWindowManager.setAnimationScales did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + } + + @SmallTest + public void testREAD_INPUT_STATE() { + try { + mWm.getSwitchState(0); + fail("IWindowManager.getSwitchState did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.getSwitchStateForDevice(0, 0); + fail("IWindowManager.getSwitchStateForDevice did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.getScancodeState(0); + fail("IWindowManager.getScancodeState did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.getScancodeStateForDevice(0, 0); + fail("IWindowManager.getScancodeStateForDevice did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.getKeycodeState(0); + fail("IWindowManager.getKeycodeState did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + + try { + mWm.getKeycodeStateForDevice(0, 0); + fail("IWindowManager.getKeycodeStateForDevice did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + } + + @SmallTest + public void testSET_ORIENTATION() { + try { + mWm.setRotation(0, true, 0); + mWm.getSwitchState(0); + fail("IWindowManager.setRotation did not throw SecurityException as" + + " expected"); + } catch (SecurityException e) { + // expected + } catch (RemoteException e) { + fail("Unexpected remote exception"); + } + } +} |