15460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao/* 25460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * Copyright (C) 2006 The Android Open Source Project 35460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * 45460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * Licensed under the Apache License, Version 2.0 (the "License"); 55460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * you may not use this file except in compliance with the License. 65460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * You may obtain a copy of the License at 75460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * 85460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * http://www.apache.org/licenses/LICENSE-2.0 95460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * 1022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao * Unless required by applicable law or agreed to in writing, software 11cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao * distributed under the License is distributed on an "AS IS" BASIS, 1237b74a387bb3993387029859c2d9d051c41c724eStephen Hines * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1337b74a387bb3993387029859c2d9d051c41c724eStephen Hines * See the License for the specific language governing permissions and 1437b74a387bb3993387029859c2d9d051c41c724eStephen Hines * limitations under the License. 15cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao */ 1637b74a387bb3993387029859c2d9d051c41c724eStephen Hines 175460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaopackage com.android.framework.permission.tests; 185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaoimport android.app.PackageInstallObserver; 205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaoimport android.content.pm.PackageManager; 216f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hinesimport android.test.AndroidTestCase; 22cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liaoimport android.test.suitebuilder.annotation.SmallTest; 2337b74a387bb3993387029859c2d9d051c41c724eStephen Hines 24f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines/** 25f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines * Verify PackageManager api's that require specific permissions. 26f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines */ 275460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaopublic class PmPermissionsTests extends AndroidTestCase { 285460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao private PackageManager mPm; 2937b74a387bb3993387029859c2d9d051c41c724eStephen Hines private String mPkgName = "com.android.framework.permission.tests"; 305460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 315460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao @Override 3237b74a387bb3993387029859c2d9d051c41c724eStephen Hines protected void setUp() throws Exception { 336f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines super.setUp(); 346f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines mPm = getContext().getPackageManager(); 356f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines } 3637b74a387bb3993387029859c2d9d051c41c724eStephen Hines 3737b74a387bb3993387029859c2d9d051c41c724eStephen Hines /* 3837b74a387bb3993387029859c2d9d051c41c724eStephen Hines * This test verifies that PackageManger.getPackageSizeInfo enforces permission 396f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines * android.permission.GET_PACKAGE_SIZE 406f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines */ 4137b74a387bb3993387029859c2d9d051c41c724eStephen Hines @SmallTest 426f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines public void testGetPackageSize() { 436f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines try { 446f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines mPm.getPackageSizeInfo(mPkgName, null); 456f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines fail("PackageManager.getPackageSizeInfo" + 466f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines "did not throw SecurityException as expected"); 476f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines } catch (SecurityException e) { 4837b74a387bb3993387029859c2d9d051c41c724eStephen Hines // expected 496f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines } 506f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines } 51d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 52d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao /* 53d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao * This test verifies that PackageManger.DeleteApplicationCacheFiles enforces permission 546f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines * android.permission.DELETE_CACHE_FILES 556f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines */ 566f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines @SmallTest 5737b74a387bb3993387029859c2d9d051c41c724eStephen Hines public void testDeleteApplicationCacheFiles() { 58f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines try { 59f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines mPm.deleteApplicationCacheFiles(mPkgName, null); 606f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines fail("PackageManager.deleteApplicationCacheFiles" + 61d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao "did not throw SecurityException as expected"); 6237b74a387bb3993387029859c2d9d051c41c724eStephen Hines } catch (SecurityException e) { 63d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao // expected 64d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao } 6537b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 6622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 675460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao /* 685460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * This test verifies that PackageManger.installPackage enforces permission 6937b74a387bb3993387029859c2d9d051c41c724eStephen Hines * android.permission.INSTALL_PACKAGES 7037b74a387bb3993387029859c2d9d051c41c724eStephen Hines */ 7137b74a387bb3993387029859c2d9d051c41c724eStephen Hines private class TestInstallObserver extends PackageInstallObserver { 725460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 735460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 7437b74a387bb3993387029859c2d9d051c41c724eStephen Hines @SmallTest 75affc150dc44fab1911775a49636d0ce85333b634Zonr Chang public void testInstallPackage() { 76affc150dc44fab1911775a49636d0ce85333b634Zonr Chang TestInstallObserver observer = new TestInstallObserver(); 77affc150dc44fab1911775a49636d0ce85333b634Zonr Chang try { 78affc150dc44fab1911775a49636d0ce85333b634Zonr Chang mPm.installPackage(null, observer, 0, null); 79affc150dc44fab1911775a49636d0ce85333b634Zonr Chang fail("PackageManager.installPackage" + 8022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao "did not throw SecurityException as expected"); 8137b74a387bb3993387029859c2d9d051c41c724eStephen Hines } catch (SecurityException e) { 826f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines // expected 8322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao } 84affc150dc44fab1911775a49636d0ce85333b634Zonr Chang } 855460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 865460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao /* 8737b74a387bb3993387029859c2d9d051c41c724eStephen Hines * This test verifies that PackageManger.freeStorage 88 * enforces permission android.permission.CLEAR_APP_CACHE 89 */ 90 @SmallTest 91 public void testFreeStorage1() { 92 try { 93 mPm.freeStorage(100000, null); 94 fail("PackageManager.freeStorage " + 95 "did not throw SecurityException as expected"); 96 } catch (SecurityException e) { 97 // expected 98 } 99 } 100 101 /* 102 * This test verifies that PackageManger.freeStorageAndNotify 103 * enforces permission android.permission.CLEAR_APP_CACHE 104 */ 105 @SmallTest 106 public void testFreeStorage2() { 107 try { 108 mPm.freeStorageAndNotify(100000, null); 109 fail("PackageManager.freeStorageAndNotify" + 110 " did not throw SecurityException as expected"); 111 } catch (SecurityException e) { 112 // expected 113 } 114 } 115 116 /* 117 * This test verifies that PackageManger.clearApplicationUserData 118 * enforces permission android.permission.CLEAR_APP_USER_DATA 119 */ 120 @SmallTest 121 public void testClearApplicationUserData() { 122 try { 123 mPm.clearApplicationUserData(mPkgName, null); 124 fail("PackageManager.clearApplicationUserData" + 125 "did not throw SecurityException as expected"); 126 } catch (SecurityException e) { 127 // expected 128 } 129 } 130 131 /* 132 * This test verifies that PackageManger.deletePackage 133 * enforces permission android.permission.DELETE_PACKAGES 134 */ 135 @SmallTest 136 public void testDeletePackage() { 137 try { 138 mPm.deletePackage(mPkgName, null, 0); 139 fail("PackageManager.deletePackage" + 140 "did not throw SecurityException as expected"); 141 } catch (SecurityException e) { 142 // expected 143 } 144 } 145}