19f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu/* 29f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu * Copyright (C) 2006 The Android Open Source Project 39f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu * 49f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu * Licensed under the Apache License, Version 2.0 (the "License"); 59f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu * you may not use this file except in compliance with the License. 69f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu * You may obtain a copy of the License at 79f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu * 89f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu * http://www.apache.org/licenses/LICENSE-2.0 99f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu * 109f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu * Unless required by applicable law or agreed to in writing, software 119f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu * distributed under the License is distributed on an "AS IS" BASIS, 129f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu * See the License for the specific language governing permissions and 149f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu * limitations under the License. 159f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu */ 169f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu 179f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapupackage com.android.framework.permission.tests; 189f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu 19f1977b4500e82b72ea6aa5c46d97406a20017cafChristopher Tateimport android.app.PackageInstallObserver; 209f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapuimport android.content.pm.PackageManager; 219f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapuimport android.test.AndroidTestCase; 229f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapuimport android.test.suitebuilder.annotation.SmallTest; 239f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu 249f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu/** 259f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu * Verify PackageManager api's that require specific permissions. 269f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu */ 279f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapupublic class PmPermissionsTests extends AndroidTestCase { 28ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu private PackageManager mPm; 29ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu private String mPkgName = "com.android.framework.permission.tests"; 309f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu 31ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu @Override 32ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu protected void setUp() throws Exception { 33ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu super.setUp(); 34ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu mPm = getContext().getPackageManager(); 35ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu } 369f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu 379f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu /* 389f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu * This test verifies that PackageManger.getPackageSizeInfo enforces permission 399f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu * android.permission.GET_PACKAGE_SIZE 409f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu */ 419f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu @SmallTest 429f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu public void testGetPackageSize() { 439f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu try { 44ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu mPm.getPackageSizeInfo(mPkgName, null); 45ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu fail("PackageManager.getPackageSizeInfo" + 46ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu "did not throw SecurityException as expected"); 47ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu } catch (SecurityException e) { 48ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu // expected 49ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu } 50ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu } 51ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu 52ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu /* 53ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu * This test verifies that PackageManger.DeleteApplicationCacheFiles enforces permission 54ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu * android.permission.DELETE_CACHE_FILES 55ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu */ 56ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu @SmallTest 57ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu public void testDeleteApplicationCacheFiles() { 58ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu try { 59ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu mPm.deleteApplicationCacheFiles(mPkgName, null); 60ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu fail("PackageManager.deleteApplicationCacheFiles" + 61ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu "did not throw SecurityException as expected"); 62ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu } catch (SecurityException e) { 63ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu // expected 64ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu } 65ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu } 66ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu 67ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu /* 68ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu * This test verifies that PackageManger.installPackage enforces permission 69ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu * android.permission.INSTALL_PACKAGES 70ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu */ 71f1977b4500e82b72ea6aa5c46d97406a20017cafChristopher Tate private class TestInstallObserver extends PackageInstallObserver { 72f1977b4500e82b72ea6aa5c46d97406a20017cafChristopher Tate } 73f1977b4500e82b72ea6aa5c46d97406a20017cafChristopher Tate 74ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu @SmallTest 75ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu public void testInstallPackage() { 76f1977b4500e82b72ea6aa5c46d97406a20017cafChristopher Tate TestInstallObserver observer = new TestInstallObserver(); 77ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu try { 78f1977b4500e82b72ea6aa5c46d97406a20017cafChristopher Tate mPm.installPackage(null, observer, 0, null); 79ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu fail("PackageManager.installPackage" + 80ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu "did not throw SecurityException as expected"); 81ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu } catch (SecurityException e) { 82ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu // expected 83ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu } 84ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu } 85ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu 86ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu /* 87ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu * This test verifies that PackageManger.freeStorage 88ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu * enforces permission android.permission.CLEAR_APP_CACHE 89ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu */ 90ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu @SmallTest 91ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu public void testFreeStorage1() { 92ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu try { 93ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu mPm.freeStorage(100000, null); 94ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu fail("PackageManager.freeStorage " + 95ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu "did not throw SecurityException as expected"); 96ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu } catch (SecurityException e) { 97ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu // expected 98ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu } 99ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu } 100ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu 101ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu /* 102ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu * This test verifies that PackageManger.freeStorageAndNotify 103ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu * enforces permission android.permission.CLEAR_APP_CACHE 104ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu */ 105ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu @SmallTest 106ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu public void testFreeStorage2() { 107ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu try { 108ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu mPm.freeStorageAndNotify(100000, null); 109ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu fail("PackageManager.freeStorageAndNotify" + 110ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu " did not throw SecurityException as expected"); 111ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu } catch (SecurityException e) { 112ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu // expected 113ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu } 114ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu } 115ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu 116ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu /* 117ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu * This test verifies that PackageManger.clearApplicationUserData 118ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu * enforces permission android.permission.CLEAR_APP_USER_DATA 119ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu */ 120ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu @SmallTest 121ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu public void testClearApplicationUserData() { 122ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu try { 123ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu mPm.clearApplicationUserData(mPkgName, null); 124ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu fail("PackageManager.clearApplicationUserData" + 125ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu "did not throw SecurityException as expected"); 126ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu } catch (SecurityException e) { 127ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu // expected 128ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu } 129ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu } 130ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu 131ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu /* 132ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu * This test verifies that PackageManger.deletePackage 133ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu * enforces permission android.permission.DELETE_PACKAGES 134ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu */ 135ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu @SmallTest 136ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu public void testDeletePackage() { 137ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu try { 138ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu mPm.deletePackage(mPkgName, null, 0); 139ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu fail("PackageManager.deletePackage" + 140ea196fc50e9711207eddb1f546fec1463b615fc0Suchi Amalapurapu "did not throw SecurityException as expected"); 1419f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu } catch (SecurityException e) { 1429f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu // expected 1439f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu } 1449f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu } 1459f2f87d92b3c23680fa7c24dbccf67976d0968d3Suchi Amalapurapu}