summaryrefslogtreecommitdiffstats
path: root/tests/permission
diff options
context:
space:
mode:
authorAndroid (Google) Code Review <android-gerrit@google.com>2009-06-15 15:07:50 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2009-06-15 15:07:50 -0700
commit6edb3487beb1973b1ea05e5b4168ba1ac247c9a4 (patch)
treeb860066f410306fa8fc7ed707f4b7dea7555b4aa /tests/permission
parentacec4d6741643a5f0bda0b6a4eeb033a963818dc (diff)
parentcfaef699e1dfb3a75d5b51f3b15816f13670fd51 (diff)
downloadframeworks_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')
-rw-r--r--tests/permission/src/com/android/framework/permission/tests/ActivityManagerPermissionTests.java182
-rw-r--r--tests/permission/src/com/android/framework/permission/tests/ServiceManagerPermissionTests.java50
-rw-r--r--tests/permission/src/com/android/framework/permission/tests/WindowManagerPermissionTests.java409
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");
+ }
+ }
+}