1/* 2 * Copyright (C) 2008 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package android.test.mock; 18 19import android.app.PackageInstallObserver; 20import android.content.ComponentName; 21import android.content.Intent; 22import android.content.IntentFilter; 23import android.content.IntentSender; 24import android.content.pm.ActivityInfo; 25import android.content.pm.ApplicationInfo; 26import android.content.pm.ContainerEncryptionParams; 27import android.content.pm.FeatureInfo; 28import android.content.pm.IPackageDataObserver; 29import android.content.pm.IPackageDeleteObserver; 30import android.content.pm.IPackageInstallObserver; 31import android.content.pm.IPackageMoveObserver; 32import android.content.pm.IPackageStatsObserver; 33import android.content.pm.InstrumentationInfo; 34import android.content.pm.KeySet; 35import android.content.pm.ManifestDigest; 36import android.content.pm.PackageInfo; 37import android.content.pm.PackageInstaller; 38import android.content.pm.PackageItemInfo; 39import android.content.pm.PackageManager; 40import android.content.pm.PermissionGroupInfo; 41import android.content.pm.PermissionInfo; 42import android.content.pm.ProviderInfo; 43import android.content.pm.ResolveInfo; 44import android.content.pm.ServiceInfo; 45import android.content.pm.VerificationParams; 46import android.content.pm.VerifierDeviceIdentity; 47import android.content.res.Resources; 48import android.content.res.XmlResourceParser; 49import android.graphics.Rect; 50import android.graphics.drawable.Drawable; 51import android.net.Uri; 52import android.os.UserHandle; 53 54import java.util.List; 55 56/** 57 * A mock {@link android.content.pm.PackageManager} class. All methods are non-functional and throw 58 * {@link java.lang.UnsupportedOperationException}. Override it to provide the operations that you 59 * need. 60 */ 61public class MockPackageManager extends PackageManager { 62 63 @Override 64 public PackageInfo getPackageInfo(String packageName, int flags) 65 throws NameNotFoundException { 66 throw new UnsupportedOperationException(); 67 } 68 69 @Override 70 public String[] currentToCanonicalPackageNames(String[] names) { 71 throw new UnsupportedOperationException(); 72 } 73 74 @Override 75 public String[] canonicalToCurrentPackageNames(String[] names) { 76 throw new UnsupportedOperationException(); 77 } 78 79 @Override 80 public Intent getLaunchIntentForPackage(String packageName) { 81 throw new UnsupportedOperationException(); 82 } 83 84 @Override 85 public Intent getLeanbackLaunchIntentForPackage(String packageName) { 86 throw new UnsupportedOperationException(); 87 } 88 89 @Override 90 91 public int[] getPackageGids(String packageName) throws NameNotFoundException { 92 throw new UnsupportedOperationException(); 93 } 94 95 /** @hide */ 96 @Override 97 public int getPackageUid(String packageName, int userHandle) 98 throws NameNotFoundException { 99 throw new UnsupportedOperationException(); 100 } 101 102 @Override 103 public PermissionInfo getPermissionInfo(String name, int flags) 104 throws NameNotFoundException { 105 throw new UnsupportedOperationException(); 106 } 107 108 @Override 109 public List<PermissionInfo> queryPermissionsByGroup(String group, int flags) 110 throws NameNotFoundException { 111 throw new UnsupportedOperationException(); 112 } 113 114 @Override 115 public PermissionGroupInfo getPermissionGroupInfo(String name, 116 int flags) throws NameNotFoundException { 117 throw new UnsupportedOperationException(); 118 } 119 120 @Override 121 public List<PermissionGroupInfo> getAllPermissionGroups(int flags) { 122 throw new UnsupportedOperationException(); 123 } 124 125 @Override 126 public ApplicationInfo getApplicationInfo(String packageName, int flags) 127 throws NameNotFoundException { 128 throw new UnsupportedOperationException(); 129 } 130 131 @Override 132 public ActivityInfo getActivityInfo(ComponentName className, int flags) 133 throws NameNotFoundException { 134 throw new UnsupportedOperationException(); 135 } 136 137 @Override 138 public ActivityInfo getReceiverInfo(ComponentName className, int flags) 139 throws NameNotFoundException { 140 throw new UnsupportedOperationException(); 141 } 142 143 @Override 144 public ServiceInfo getServiceInfo(ComponentName className, int flags) 145 throws NameNotFoundException { 146 throw new UnsupportedOperationException(); 147 } 148 149 @Override 150 public ProviderInfo getProviderInfo(ComponentName className, int flags) 151 throws NameNotFoundException { 152 throw new UnsupportedOperationException(); 153 } 154 155 @Override 156 public List<PackageInfo> getInstalledPackages(int flags) { 157 throw new UnsupportedOperationException(); 158 } 159 160 @Override 161 public List<PackageInfo> getPackagesHoldingPermissions(String[] permissions, 162 int flags) { 163 throw new UnsupportedOperationException(); 164 } 165 166 /** @hide */ 167 @Override 168 public List<PackageInfo> getInstalledPackages(int flags, int userId) { 169 throw new UnsupportedOperationException(); 170 } 171 172 @Override 173 public int checkPermission(String permName, String pkgName) { 174 throw new UnsupportedOperationException(); 175 } 176 177 @Override 178 public boolean addPermission(PermissionInfo info) { 179 throw new UnsupportedOperationException(); 180 } 181 182 @Override 183 public boolean addPermissionAsync(PermissionInfo info) { 184 throw new UnsupportedOperationException(); 185 } 186 187 @Override 188 public void removePermission(String name) { 189 throw new UnsupportedOperationException(); 190 } 191 192 /** @hide */ 193 @Override 194 public void grantPermission(String packageName, String permissionName) { 195 throw new UnsupportedOperationException(); 196 } 197 198 /** @hide */ 199 @Override 200 public void revokePermission(String packageName, String permissionName) { 201 throw new UnsupportedOperationException(); 202 } 203 204 @Override 205 public int checkSignatures(String pkg1, String pkg2) { 206 throw new UnsupportedOperationException(); 207 } 208 209 @Override 210 public int checkSignatures(int uid1, int uid2) { 211 throw new UnsupportedOperationException(); 212 } 213 214 @Override 215 public String[] getPackagesForUid(int uid) { 216 throw new UnsupportedOperationException(); 217 } 218 219 @Override 220 public String getNameForUid(int uid) { 221 throw new UnsupportedOperationException(); 222 } 223 224 /** 225 * @hide - to match hiding in superclass 226 */ 227 @Override 228 public int getUidForSharedUser(String sharedUserName) { 229 throw new UnsupportedOperationException(); 230 } 231 232 @Override 233 public List<ApplicationInfo> getInstalledApplications(int flags) { 234 throw new UnsupportedOperationException(); 235 } 236 237 @Override 238 public ResolveInfo resolveActivity(Intent intent, int flags) { 239 throw new UnsupportedOperationException(); 240 } 241 242 /** @hide */ 243 @Override 244 public ResolveInfo resolveActivityAsUser(Intent intent, int flags, int userId) { 245 throw new UnsupportedOperationException(); 246 } 247 248 @Override 249 public List<ResolveInfo> queryIntentActivities(Intent intent, int flags) { 250 throw new UnsupportedOperationException(); 251 } 252 253 /** @hide */ 254 @Override 255 public List<ResolveInfo> queryIntentActivitiesAsUser(Intent intent, 256 int flags, int userId) { 257 throw new UnsupportedOperationException(); 258 } 259 260 @Override 261 public List<ResolveInfo> queryIntentActivityOptions(ComponentName caller, 262 Intent[] specifics, Intent intent, int flags) { 263 throw new UnsupportedOperationException(); 264 } 265 266 @Override 267 public List<ResolveInfo> queryBroadcastReceivers(Intent intent, int flags) { 268 throw new UnsupportedOperationException(); 269 } 270 271 /** @hide */ 272 @Override 273 public List<ResolveInfo> queryBroadcastReceivers(Intent intent, int flags, int userId) { 274 throw new UnsupportedOperationException(); 275 } 276 277 @Override 278 public ResolveInfo resolveService(Intent intent, int flags) { 279 throw new UnsupportedOperationException(); 280 } 281 282 @Override 283 public List<ResolveInfo> queryIntentServices(Intent intent, int flags) { 284 throw new UnsupportedOperationException(); 285 } 286 287 /** @hide */ 288 @Override 289 public List<ResolveInfo> queryIntentServicesAsUser(Intent intent, int flags, int userId) { 290 throw new UnsupportedOperationException(); 291 } 292 293 /** @hide */ 294 @Override 295 public List<ResolveInfo> queryIntentContentProvidersAsUser( 296 Intent intent, int flags, int userId) { 297 throw new UnsupportedOperationException(); 298 } 299 300 @Override 301 public List<ResolveInfo> queryIntentContentProviders(Intent intent, int flags) { 302 throw new UnsupportedOperationException(); 303 } 304 305 @Override 306 public ProviderInfo resolveContentProvider(String name, int flags) { 307 throw new UnsupportedOperationException(); 308 } 309 310 /** @hide */ 311 @Override 312 public ProviderInfo resolveContentProviderAsUser(String name, int flags, int userId) { 313 throw new UnsupportedOperationException(); 314 } 315 316 @Override 317 public List<ProviderInfo> queryContentProviders(String processName, int uid, int flags) { 318 throw new UnsupportedOperationException(); 319 } 320 321 @Override 322 public InstrumentationInfo getInstrumentationInfo(ComponentName className, int flags) 323 throws NameNotFoundException { 324 throw new UnsupportedOperationException(); 325 } 326 327 @Override 328 public List<InstrumentationInfo> queryInstrumentation( 329 String targetPackage, int flags) { 330 throw new UnsupportedOperationException(); 331 } 332 333 @Override 334 public Drawable getDrawable(String packageName, int resid, ApplicationInfo appInfo) { 335 throw new UnsupportedOperationException(); 336 } 337 338 @Override 339 public Drawable getActivityIcon(ComponentName activityName) 340 throws NameNotFoundException { 341 throw new UnsupportedOperationException(); 342 } 343 344 @Override 345 public Drawable getActivityIcon(Intent intent) throws NameNotFoundException { 346 throw new UnsupportedOperationException(); 347 } 348 349 @Override 350 public Drawable getDefaultActivityIcon() { 351 throw new UnsupportedOperationException(); 352 } 353 354 @Override 355 public Drawable getActivityBanner(ComponentName activityName) 356 throws NameNotFoundException { 357 throw new UnsupportedOperationException(); 358 } 359 360 @Override 361 public Drawable getActivityBanner(Intent intent) throws NameNotFoundException { 362 throw new UnsupportedOperationException(); 363 } 364 365 @Override 366 public Drawable getApplicationBanner(ApplicationInfo info) { 367 throw new UnsupportedOperationException(); 368 } 369 370 @Override 371 public Drawable getApplicationBanner(String packageName) throws NameNotFoundException { 372 throw new UnsupportedOperationException(); 373 } 374 375 @Override 376 public Drawable getApplicationIcon(ApplicationInfo info) { 377 throw new UnsupportedOperationException(); 378 } 379 380 @Override 381 public Drawable getApplicationIcon(String packageName) throws NameNotFoundException { 382 throw new UnsupportedOperationException(); 383 } 384 385 @Override 386 public Drawable getActivityLogo(ComponentName activityName) throws NameNotFoundException { 387 throw new UnsupportedOperationException(); 388 } 389 390 @Override 391 public Drawable getActivityLogo(Intent intent) throws NameNotFoundException { 392 throw new UnsupportedOperationException(); 393 } 394 395 @Override 396 public Drawable getApplicationLogo(ApplicationInfo info) { 397 throw new UnsupportedOperationException(); 398 } 399 400 @Override 401 public Drawable getApplicationLogo(String packageName) throws NameNotFoundException { 402 throw new UnsupportedOperationException(); 403 } 404 405 @Override 406 public Drawable getUserBadgedIcon(Drawable icon, UserHandle user) { 407 throw new UnsupportedOperationException(); 408 } 409 410 @Override 411 public Drawable getUserBadgedDrawableForDensity(Drawable drawable, UserHandle user, 412 Rect badgeLocation, 413 int badgeDensity) { 414 throw new UnsupportedOperationException(); 415 } 416 417 /** @hide */ 418 @Override 419 public Drawable getUserBadgeForDensity(UserHandle user, int density) { 420 throw new UnsupportedOperationException(); 421 } 422 423 @Override 424 public CharSequence getUserBadgedLabel(CharSequence label, UserHandle user) { 425 throw new UnsupportedOperationException(); 426 } 427 428 @Override 429 public CharSequence getText(String packageName, int resid, ApplicationInfo appInfo) { 430 throw new UnsupportedOperationException(); 431 } 432 433 @Override 434 public XmlResourceParser getXml(String packageName, int resid, 435 ApplicationInfo appInfo) { 436 throw new UnsupportedOperationException(); 437 } 438 439 @Override 440 public CharSequence getApplicationLabel(ApplicationInfo info) { 441 throw new UnsupportedOperationException(); 442 } 443 444 @Override 445 public Resources getResourcesForActivity(ComponentName activityName) 446 throws NameNotFoundException { 447 throw new UnsupportedOperationException(); 448 } 449 450 @Override 451 public Resources getResourcesForApplication(ApplicationInfo app) { 452 throw new UnsupportedOperationException(); 453 } 454 455 @Override 456 public Resources getResourcesForApplication(String appPackageName) 457 throws NameNotFoundException { 458 throw new UnsupportedOperationException(); 459 } 460 461 /** @hide */ 462 @Override 463 public Resources getResourcesForApplicationAsUser(String appPackageName, int userId) { 464 throw new UnsupportedOperationException(); 465 } 466 467 @Override 468 public PackageInfo getPackageArchiveInfo(String archiveFilePath, int flags) { 469 throw new UnsupportedOperationException(); 470 } 471 472 /** 473 * @hide - to match hiding in superclass 474 */ 475 @Override 476 public void installPackage(Uri packageURI, IPackageInstallObserver observer, 477 int flags, String installerPackageName) { 478 throw new UnsupportedOperationException(); 479 } 480 481 @Override 482 public void setInstallerPackageName(String targetPackage, 483 String installerPackageName) { 484 throw new UnsupportedOperationException(); 485 } 486 487 /** 488 * @hide - to match hiding in superclass 489 */ 490 @Override 491 public void movePackage(String packageName, IPackageMoveObserver observer, int flags) { 492 throw new UnsupportedOperationException(); 493 } 494 495 @Override 496 public String getInstallerPackageName(String packageName) { 497 throw new UnsupportedOperationException(); 498 } 499 500 /** 501 * @hide - to match hiding in superclass 502 */ 503 @Override 504 public void clearApplicationUserData( 505 String packageName, IPackageDataObserver observer) { 506 throw new UnsupportedOperationException(); 507 } 508 509 /** 510 * @hide - to match hiding in superclass 511 */ 512 @Override 513 public void deleteApplicationCacheFiles( 514 String packageName, IPackageDataObserver observer) { 515 throw new UnsupportedOperationException(); 516 } 517 518 /** 519 * @hide - to match hiding in superclass 520 */ 521 @Override 522 public void freeStorageAndNotify( 523 long idealStorageSize, IPackageDataObserver observer) { 524 throw new UnsupportedOperationException(); 525 } 526 527 /** 528 * @hide - to match hiding in superclass 529 */ 530 @Override 531 public void freeStorage( 532 long idealStorageSize, IntentSender pi) { 533 throw new UnsupportedOperationException(); 534 } 535 536 /** 537 * @hide - to match hiding in superclass 538 */ 539 @Override 540 public void deletePackage( 541 String packageName, IPackageDeleteObserver observer, int flags) { 542 throw new UnsupportedOperationException(); 543 } 544 545 @Override 546 public void addPackageToPreferred(String packageName) { 547 throw new UnsupportedOperationException(); 548 } 549 550 @Override 551 public void removePackageFromPreferred(String packageName) { 552 throw new UnsupportedOperationException(); 553 } 554 555 @Override 556 public List<PackageInfo> getPreferredPackages(int flags) { 557 throw new UnsupportedOperationException(); 558 } 559 560 @Override 561 public void setComponentEnabledSetting(ComponentName componentName, 562 int newState, int flags) { 563 throw new UnsupportedOperationException(); 564 } 565 566 @Override 567 public int getComponentEnabledSetting(ComponentName componentName) { 568 throw new UnsupportedOperationException(); 569 } 570 571 @Override 572 public void setApplicationEnabledSetting(String packageName, int newState, int flags) { 573 throw new UnsupportedOperationException(); 574 } 575 576 @Override 577 public int getApplicationEnabledSetting(String packageName) { 578 throw new UnsupportedOperationException(); 579 } 580 581 @Override 582 public void addPreferredActivity(IntentFilter filter, 583 int match, ComponentName[] set, ComponentName activity) { 584 throw new UnsupportedOperationException(); 585 } 586 587 /** 588 * @hide - to match hiding in superclass 589 */ 590 @Override 591 public void replacePreferredActivity(IntentFilter filter, 592 int match, ComponentName[] set, ComponentName activity) { 593 throw new UnsupportedOperationException(); 594 } 595 596 597 @Override 598 public void clearPackagePreferredActivities(String packageName) { 599 throw new UnsupportedOperationException(); 600 } 601 602 /** 603 * @hide - to match hiding in superclass 604 */ 605 @Override 606 public void getPackageSizeInfo(String packageName, int userHandle, 607 IPackageStatsObserver observer) { 608 throw new UnsupportedOperationException(); 609 } 610 611 @Override 612 public int getPreferredActivities(List<IntentFilter> outFilters, 613 List<ComponentName> outActivities, String packageName) { 614 throw new UnsupportedOperationException(); 615 } 616 617 /** @hide - hidden in superclass */ 618 @Override 619 public ComponentName getHomeActivities(List<ResolveInfo> outActivities) { 620 throw new UnsupportedOperationException(); 621 } 622 623 @Override 624 public String[] getSystemSharedLibraryNames() { 625 throw new UnsupportedOperationException(); 626 } 627 628 @Override 629 public FeatureInfo[] getSystemAvailableFeatures() { 630 throw new UnsupportedOperationException(); 631 } 632 633 @Override 634 public boolean hasSystemFeature(String name) { 635 throw new UnsupportedOperationException(); 636 } 637 638 @Override 639 public boolean isSafeMode() { 640 throw new UnsupportedOperationException(); 641 } 642 643 /** @hide */ 644 @Override 645 public KeySet getKeySetByAlias(String packageName, String alias) { 646 throw new UnsupportedOperationException(); 647 } 648 649 /** @hide */ 650 @Override 651 public KeySet getSigningKeySet(String packageName) { 652 throw new UnsupportedOperationException(); 653 } 654 655 /** @hide */ 656 @Override 657 public boolean isSignedBy(String packageName, KeySet ks) { 658 throw new UnsupportedOperationException(); 659 } 660 661 /** @hide */ 662 @Override 663 public boolean isSignedByExactly(String packageName, KeySet ks) { 664 throw new UnsupportedOperationException(); 665 } 666 667 /** 668 * @hide 669 */ 670 @Override 671 public void installPackageWithVerification(Uri packageURI, IPackageInstallObserver observer, 672 int flags, String installerPackageName, Uri verificationURI, 673 ManifestDigest manifestDigest, ContainerEncryptionParams encryptionParams) { 674 throw new UnsupportedOperationException(); 675 } 676 677 /** 678 * @hide 679 */ 680 @Override 681 public void installPackageWithVerificationAndEncryption(Uri packageURI, 682 IPackageInstallObserver observer, int flags, String installerPackageName, 683 VerificationParams verificationParams, ContainerEncryptionParams encryptionParams) { 684 throw new UnsupportedOperationException(); 685 } 686 687 /** 688 * @hide 689 */ 690 @Override 691 public boolean setApplicationHiddenSettingAsUser(String packageName, boolean hidden, 692 UserHandle user) { 693 return false; 694 } 695 696 /** 697 * @hide 698 */ 699 @Override 700 public boolean getApplicationHiddenSettingAsUser(String packageName, UserHandle user) { 701 return false; 702 } 703 704 /** 705 * @hide 706 */ 707 @Override 708 public int installExistingPackage(String packageName) 709 throws NameNotFoundException { 710 throw new UnsupportedOperationException(); 711 } 712 713 @Override 714 public void verifyPendingInstall(int id, int verificationCode) { 715 throw new UnsupportedOperationException(); 716 } 717 718 @Override 719 public void extendVerificationTimeout(int id, int verificationCodeAtTimeout, 720 long millisecondsToDelay) { 721 throw new UnsupportedOperationException(); 722 } 723 724 /** 725 * @hide 726 */ 727 @Override 728 public VerifierDeviceIdentity getVerifierDeviceIdentity() { 729 throw new UnsupportedOperationException(); 730 } 731 732 /** 733 * @hide 734 */ 735 @Override 736 public void installPackage(Uri packageURI, PackageInstallObserver observer, 737 int flags, String installerPackageName) { 738 throw new UnsupportedOperationException(); 739 } 740 741 /** 742 * @hide 743 */ 744 @Override 745 public void installPackageWithVerification(Uri packageURI, 746 PackageInstallObserver observer, int flags, String installerPackageName, 747 Uri verificationURI, ManifestDigest manifestDigest, 748 ContainerEncryptionParams encryptionParams) { 749 throw new UnsupportedOperationException(); 750 } 751 752 /** 753 * @hide 754 */ 755 @Override 756 public void installPackageWithVerificationAndEncryption(Uri packageURI, 757 PackageInstallObserver observer, int flags, String installerPackageName, 758 VerificationParams verificationParams, ContainerEncryptionParams encryptionParams) { 759 throw new UnsupportedOperationException(); 760 } 761 762 /** 763 * @hide 764 */ 765 @Override 766 public void addCrossProfileIntentFilter(IntentFilter filter, int sourceUserId, int targetUserId, 767 int flags) { 768 throw new UnsupportedOperationException(); 769 } 770 771 /** 772 * @hide 773 */ 774 @Override 775 public void clearCrossProfileIntentFilters(int sourceUserId) { 776 throw new UnsupportedOperationException(); 777 } 778 779 /** {@hide} */ 780 public PackageInstaller getPackageInstaller() { 781 throw new UnsupportedOperationException(); 782 } 783 784 /** {@hide} */ 785 @Override 786 public boolean isPackageAvailable(String packageName) { 787 throw new UnsupportedOperationException(); 788 } 789 790 /** 791 * @hide 792 */ 793 public Drawable loadItemIcon(PackageItemInfo itemInfo, ApplicationInfo appInfo) { 794 throw new UnsupportedOperationException(); 795 } 796} 797