1/* 2 * Copyright (C) 2007 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.annotation.SystemApi; 20import android.app.IApplicationThread; 21import android.app.IServiceConnection; 22import android.app.Notification; 23import android.content.ComponentName; 24import android.content.ContentResolver; 25import android.content.Context; 26import android.content.Intent; 27import android.content.IntentFilter; 28import android.content.BroadcastReceiver; 29import android.content.IntentSender; 30import android.content.ServiceConnection; 31import android.content.SharedPreferences; 32import android.content.pm.ApplicationInfo; 33import android.content.pm.PackageManager; 34import android.content.res.AssetManager; 35import android.content.res.Configuration; 36import android.content.res.Resources; 37import android.database.DatabaseErrorHandler; 38import android.database.sqlite.SQLiteDatabase; 39import android.graphics.Bitmap; 40import android.graphics.drawable.Drawable; 41import android.net.Uri; 42import android.os.Bundle; 43import android.os.Handler; 44import android.os.IBinder; 45import android.os.Looper; 46import android.os.UserHandle; 47import android.view.DisplayAdjustments; 48import android.view.Display; 49 50import java.io.File; 51import java.io.FileInputStream; 52import java.io.FileNotFoundException; 53import java.io.FileOutputStream; 54import java.io.IOException; 55import java.io.InputStream; 56 57/** 58 * A mock {@link android.content.Context} class. All methods are non-functional and throw 59 * {@link java.lang.UnsupportedOperationException}. You can use this to inject other dependencies, 60 * mocks, or monitors into the classes you are testing. 61 */ 62public class MockContext extends Context { 63 64 @Override 65 public AssetManager getAssets() { 66 throw new UnsupportedOperationException(); 67 } 68 69 @Override 70 public Resources getResources() { 71 throw new UnsupportedOperationException(); 72 } 73 74 @Override 75 public PackageManager getPackageManager() { 76 throw new UnsupportedOperationException(); 77 } 78 79 @Override 80 public ContentResolver getContentResolver() { 81 throw new UnsupportedOperationException(); 82 } 83 84 @Override 85 public Looper getMainLooper() { 86 throw new UnsupportedOperationException(); 87 } 88 89 @Override 90 public Context getApplicationContext() { 91 throw new UnsupportedOperationException(); 92 } 93 94 @Override 95 public void setTheme(int resid) { 96 throw new UnsupportedOperationException(); 97 } 98 99 @Override 100 public Resources.Theme getTheme() { 101 throw new UnsupportedOperationException(); 102 } 103 104 @Override 105 public ClassLoader getClassLoader() { 106 throw new UnsupportedOperationException(); 107 } 108 109 @Override 110 public String getPackageName() { 111 throw new UnsupportedOperationException(); 112 } 113 114 /** @hide */ 115 @Override 116 public String getBasePackageName() { 117 throw new UnsupportedOperationException(); 118 } 119 120 /** @hide */ 121 @Override 122 public String getOpPackageName() { 123 throw new UnsupportedOperationException(); 124 } 125 126 @Override 127 public ApplicationInfo getApplicationInfo() { 128 throw new UnsupportedOperationException(); 129 } 130 131 @Override 132 public String getPackageResourcePath() { 133 throw new UnsupportedOperationException(); 134 } 135 136 @Override 137 public String getPackageCodePath() { 138 throw new UnsupportedOperationException(); 139 } 140 141 @Override 142 public SharedPreferences getSharedPreferences(String name, int mode) { 143 throw new UnsupportedOperationException(); 144 } 145 146 /** @removed */ 147 @Override 148 public SharedPreferences getSharedPreferences(File file, int mode) { 149 throw new UnsupportedOperationException(); 150 } 151 152 @Override 153 public boolean moveSharedPreferencesFrom(Context sourceContext, String name) { 154 throw new UnsupportedOperationException(); 155 } 156 157 @Override 158 public boolean deleteSharedPreferences(String name) { 159 throw new UnsupportedOperationException(); 160 } 161 162 @Override 163 public FileInputStream openFileInput(String name) throws FileNotFoundException { 164 throw new UnsupportedOperationException(); 165 } 166 167 @Override 168 public FileOutputStream openFileOutput(String name, int mode) throws FileNotFoundException { 169 throw new UnsupportedOperationException(); 170 } 171 172 @Override 173 public boolean deleteFile(String name) { 174 throw new UnsupportedOperationException(); 175 } 176 177 @Override 178 public File getFileStreamPath(String name) { 179 throw new UnsupportedOperationException(); 180 } 181 182 /** @removed */ 183 @Override 184 public File getSharedPreferencesPath(String name) { 185 throw new UnsupportedOperationException(); 186 } 187 188 @Override 189 public String[] fileList() { 190 throw new UnsupportedOperationException(); 191 } 192 193 @Override 194 public File getDataDir() { 195 throw new UnsupportedOperationException(); 196 } 197 198 @Override 199 public File getFilesDir() { 200 throw new UnsupportedOperationException(); 201 } 202 203 @Override 204 public File getNoBackupFilesDir() { 205 throw new UnsupportedOperationException(); 206 } 207 208 @Override 209 public File getExternalFilesDir(String type) { 210 throw new UnsupportedOperationException(); 211 } 212 213 @Override 214 public File getObbDir() { 215 throw new UnsupportedOperationException(); 216 } 217 218 @Override 219 public File getCacheDir() { 220 throw new UnsupportedOperationException(); 221 } 222 223 @Override 224 public File getCodeCacheDir() { 225 throw new UnsupportedOperationException(); 226 } 227 228 @Override 229 public File getExternalCacheDir() { 230 throw new UnsupportedOperationException(); 231 } 232 233 @Override 234 public File getDir(String name, int mode) { 235 throw new UnsupportedOperationException(); 236 } 237 238 @Override 239 public SQLiteDatabase openOrCreateDatabase(String file, int mode, 240 SQLiteDatabase.CursorFactory factory) { 241 throw new UnsupportedOperationException(); 242 } 243 244 @Override 245 public SQLiteDatabase openOrCreateDatabase(String file, int mode, 246 SQLiteDatabase.CursorFactory factory, DatabaseErrorHandler errorHandler) { 247 throw new UnsupportedOperationException(); 248 } 249 250 @Override 251 public File getDatabasePath(String name) { 252 throw new UnsupportedOperationException(); 253 } 254 255 @Override 256 public String[] databaseList() { 257 throw new UnsupportedOperationException(); 258 } 259 260 @Override 261 public boolean moveDatabaseFrom(Context sourceContext, String name) { 262 throw new UnsupportedOperationException(); 263 } 264 265 @Override 266 public boolean deleteDatabase(String name) { 267 throw new UnsupportedOperationException(); 268 } 269 270 @Override 271 public Drawable getWallpaper() { 272 throw new UnsupportedOperationException(); 273 } 274 275 @Override 276 public Drawable peekWallpaper() { 277 throw new UnsupportedOperationException(); 278 } 279 280 @Override 281 public int getWallpaperDesiredMinimumWidth() { 282 throw new UnsupportedOperationException(); 283 } 284 285 @Override 286 public int getWallpaperDesiredMinimumHeight() { 287 throw new UnsupportedOperationException(); 288 } 289 290 @Override 291 public void setWallpaper(Bitmap bitmap) throws IOException { 292 throw new UnsupportedOperationException(); 293 } 294 295 @Override 296 public void setWallpaper(InputStream data) throws IOException { 297 throw new UnsupportedOperationException(); 298 } 299 300 @Override 301 public void clearWallpaper() { 302 throw new UnsupportedOperationException(); 303 } 304 305 @Override 306 public void startActivity(Intent intent) { 307 throw new UnsupportedOperationException(); 308 } 309 310 @Override 311 public void startActivity(Intent intent, Bundle options) { 312 startActivity(intent); 313 } 314 315 @Override 316 public void startActivities(Intent[] intents) { 317 throw new UnsupportedOperationException(); 318 } 319 320 @Override 321 public void startActivities(Intent[] intents, Bundle options) { 322 startActivities(intents); 323 } 324 325 @Override 326 public void startIntentSender(IntentSender intent, 327 Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags) 328 throws IntentSender.SendIntentException { 329 throw new UnsupportedOperationException(); 330 } 331 332 @Override 333 public void startIntentSender(IntentSender intent, 334 Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags, 335 Bundle options) throws IntentSender.SendIntentException { 336 startIntentSender(intent, fillInIntent, flagsMask, flagsValues, extraFlags); 337 } 338 339 @Override 340 public void sendBroadcast(Intent intent) { 341 throw new UnsupportedOperationException(); 342 } 343 344 @Override 345 public void sendBroadcast(Intent intent, String receiverPermission) { 346 throw new UnsupportedOperationException(); 347 } 348 349 /** @hide */ 350 @Override 351 public void sendBroadcastMultiplePermissions(Intent intent, String[] receiverPermissions) { 352 throw new UnsupportedOperationException(); 353 } 354 355 /** @hide */ 356 @SystemApi 357 @Override 358 public void sendBroadcast(Intent intent, String receiverPermission, Bundle options) { 359 throw new UnsupportedOperationException(); 360 } 361 362 /** @hide */ 363 @Override 364 public void sendBroadcast(Intent intent, String receiverPermission, int appOp) { 365 throw new UnsupportedOperationException(); 366 } 367 368 @Override 369 public void sendOrderedBroadcast(Intent intent, 370 String receiverPermission) { 371 throw new UnsupportedOperationException(); 372 } 373 374 @Override 375 public void sendOrderedBroadcast(Intent intent, String receiverPermission, 376 BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, 377 Bundle initialExtras) { 378 throw new UnsupportedOperationException(); 379 } 380 381 /** @hide */ 382 @SystemApi 383 @Override 384 public void sendOrderedBroadcast(Intent intent, String receiverPermission, 385 Bundle options, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, 386 Bundle initialExtras) { 387 throw new UnsupportedOperationException(); 388 } 389 390 /** @hide */ 391 @Override 392 public void sendOrderedBroadcast(Intent intent, String receiverPermission, int appOp, 393 BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, 394 Bundle initialExtras) { 395 throw new UnsupportedOperationException(); 396 } 397 398 @Override 399 public void sendBroadcastAsUser(Intent intent, UserHandle user) { 400 throw new UnsupportedOperationException(); 401 } 402 403 @Override 404 public void sendBroadcastAsUser(Intent intent, UserHandle user, 405 String receiverPermission) { 406 throw new UnsupportedOperationException(); 407 } 408 409 /** @hide */ 410 @SystemApi 411 @Override 412 public void sendBroadcastAsUser(Intent intent, UserHandle user, 413 String receiverPermission, Bundle options) { 414 throw new UnsupportedOperationException(); 415 } 416 417 /** @hide */ 418 @Override 419 public void sendBroadcastAsUser(Intent intent, UserHandle user, 420 String receiverPermission, int appOp) { 421 throw new UnsupportedOperationException(); 422 } 423 424 @Override 425 public void sendOrderedBroadcastAsUser(Intent intent, UserHandle user, 426 String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, 427 int initialCode, String initialData, Bundle initialExtras) { 428 throw new UnsupportedOperationException(); 429 } 430 431 /** @hide */ 432 @Override 433 public void sendOrderedBroadcastAsUser(Intent intent, UserHandle user, 434 String receiverPermission, int appOp, BroadcastReceiver resultReceiver, 435 Handler scheduler, int initialCode, String initialData, Bundle initialExtras) { 436 throw new UnsupportedOperationException(); 437 } 438 439 /** @hide */ 440 @Override 441 public void sendOrderedBroadcastAsUser(Intent intent, UserHandle user, 442 String receiverPermission, int appOp, Bundle options, BroadcastReceiver resultReceiver, 443 Handler scheduler, int initialCode, String initialData, Bundle initialExtras) { 444 throw new UnsupportedOperationException(); 445 } 446 447 @Override 448 public void sendStickyBroadcast(Intent intent) { 449 throw new UnsupportedOperationException(); 450 } 451 452 @Override 453 public void sendStickyOrderedBroadcast(Intent intent, 454 BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, 455 Bundle initialExtras) { 456 throw new UnsupportedOperationException(); 457 } 458 459 @Override 460 public void removeStickyBroadcast(Intent intent) { 461 throw new UnsupportedOperationException(); 462 } 463 464 @Override 465 public void sendStickyBroadcastAsUser(Intent intent, UserHandle user) { 466 throw new UnsupportedOperationException(); 467 } 468 469 /** @hide */ 470 @Override 471 public void sendStickyBroadcastAsUser(Intent intent, UserHandle user, Bundle options) { 472 throw new UnsupportedOperationException(); 473 } 474 475 @Override 476 public void sendStickyOrderedBroadcastAsUser(Intent intent, 477 UserHandle user, BroadcastReceiver resultReceiver, 478 Handler scheduler, int initialCode, String initialData, 479 Bundle initialExtras) { 480 throw new UnsupportedOperationException(); 481 } 482 483 @Override 484 public void removeStickyBroadcastAsUser(Intent intent, UserHandle user) { 485 throw new UnsupportedOperationException(); 486 } 487 488 @Override 489 public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter) { 490 throw new UnsupportedOperationException(); 491 } 492 493 @Override 494 public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter, 495 int flags) { 496 throw new UnsupportedOperationException(); 497 } 498 499 @Override 500 public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter, 501 String broadcastPermission, Handler scheduler) { 502 throw new UnsupportedOperationException(); 503 } 504 505 @Override 506 public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter, 507 String broadcastPermission, Handler scheduler, int flags) { 508 throw new UnsupportedOperationException(); 509 } 510 511 /** @hide */ 512 @Override 513 public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user, 514 IntentFilter filter, String broadcastPermission, Handler scheduler) { 515 throw new UnsupportedOperationException(); 516 } 517 518 @Override 519 public void unregisterReceiver(BroadcastReceiver receiver) { 520 throw new UnsupportedOperationException(); 521 } 522 523 @Override 524 public ComponentName startService(Intent service) { 525 throw new UnsupportedOperationException(); 526 } 527 528 @Override 529 public ComponentName startForegroundService(Intent service) { 530 throw new UnsupportedOperationException(); 531 } 532 533 @Override 534 public boolean stopService(Intent service) { 535 throw new UnsupportedOperationException(); 536 } 537 538 /** @hide */ 539 @Override 540 public ComponentName startServiceAsUser(Intent service, UserHandle user) { 541 throw new UnsupportedOperationException(); 542 } 543 544 /** @hide */ 545 @Override 546 public ComponentName startForegroundServiceAsUser(Intent service, UserHandle user) { 547 throw new UnsupportedOperationException(); 548 } 549 550 /** @hide */ 551 @Override 552 public boolean stopServiceAsUser(Intent service, UserHandle user) { 553 throw new UnsupportedOperationException(); 554 } 555 556 @Override 557 public boolean bindService(Intent service, ServiceConnection conn, int flags) { 558 throw new UnsupportedOperationException(); 559 } 560 561 /** @hide */ 562 @Override 563 public boolean bindServiceAsUser(Intent service, ServiceConnection conn, int flags, 564 UserHandle user) { 565 throw new UnsupportedOperationException(); 566 } 567 568 @Override 569 public void unbindService(ServiceConnection conn) { 570 throw new UnsupportedOperationException(); 571 } 572 573 @Override 574 public boolean startInstrumentation(ComponentName className, 575 String profileFile, Bundle arguments) { 576 throw new UnsupportedOperationException(); 577 } 578 579 @Override 580 public Object getSystemService(String name) { 581 throw new UnsupportedOperationException(); 582 } 583 584 @Override 585 public String getSystemServiceName(Class<?> serviceClass) { 586 throw new UnsupportedOperationException(); 587 } 588 589 @Override 590 public int checkPermission(String permission, int pid, int uid) { 591 throw new UnsupportedOperationException(); 592 } 593 594 /** @hide */ 595 @Override 596 public int checkPermission(String permission, int pid, int uid, IBinder callerToken) { 597 return checkPermission(permission, pid, uid); 598 } 599 600 @Override 601 public int checkCallingPermission(String permission) { 602 throw new UnsupportedOperationException(); 603 } 604 605 @Override 606 public int checkCallingOrSelfPermission(String permission) { 607 throw new UnsupportedOperationException(); 608 } 609 610 @Override 611 public int checkSelfPermission(String permission) { 612 throw new UnsupportedOperationException(); 613 } 614 615 @Override 616 public void enforcePermission( 617 String permission, int pid, int uid, String message) { 618 throw new UnsupportedOperationException(); 619 } 620 621 @Override 622 public void enforceCallingPermission(String permission, String message) { 623 throw new UnsupportedOperationException(); 624 } 625 626 @Override 627 public void enforceCallingOrSelfPermission(String permission, String message) { 628 throw new UnsupportedOperationException(); 629 } 630 631 @Override 632 public void grantUriPermission(String toPackage, Uri uri, int modeFlags) { 633 throw new UnsupportedOperationException(); 634 } 635 636 @Override 637 public void revokeUriPermission(Uri uri, int modeFlags) { 638 throw new UnsupportedOperationException(); 639 } 640 641 @Override 642 public void revokeUriPermission(String targetPackage, Uri uri, int modeFlags) { 643 throw new UnsupportedOperationException(); 644 } 645 646 @Override 647 public int checkUriPermission(Uri uri, int pid, int uid, int modeFlags) { 648 throw new UnsupportedOperationException(); 649 } 650 651 /** @hide */ 652 @Override 653 public int checkUriPermission(Uri uri, int pid, int uid, int modeFlags, IBinder callerToken) { 654 return checkUriPermission(uri, pid, uid, modeFlags); 655 } 656 657 @Override 658 public int checkCallingUriPermission(Uri uri, int modeFlags) { 659 throw new UnsupportedOperationException(); 660 } 661 662 @Override 663 public int checkCallingOrSelfUriPermission(Uri uri, int modeFlags) { 664 throw new UnsupportedOperationException(); 665 } 666 667 @Override 668 public int checkUriPermission(Uri uri, String readPermission, 669 String writePermission, int pid, int uid, int modeFlags) { 670 throw new UnsupportedOperationException(); 671 } 672 673 @Override 674 public void enforceUriPermission( 675 Uri uri, int pid, int uid, int modeFlags, String message) { 676 throw new UnsupportedOperationException(); 677 } 678 679 @Override 680 public void enforceCallingUriPermission( 681 Uri uri, int modeFlags, String message) { 682 throw new UnsupportedOperationException(); 683 } 684 685 @Override 686 public void enforceCallingOrSelfUriPermission( 687 Uri uri, int modeFlags, String message) { 688 throw new UnsupportedOperationException(); 689 } 690 691 public void enforceUriPermission( 692 Uri uri, String readPermission, String writePermission, 693 int pid, int uid, int modeFlags, String message) { 694 throw new UnsupportedOperationException(); 695 } 696 697 @Override 698 public Context createPackageContext(String packageName, int flags) 699 throws PackageManager.NameNotFoundException { 700 throw new UnsupportedOperationException(); 701 } 702 703 /** {@hide} */ 704 @Override 705 public Context createApplicationContext(ApplicationInfo application, int flags) 706 throws PackageManager.NameNotFoundException { 707 return null; 708 } 709 710 /** @hide */ 711 @Override 712 public Context createContextForSplit(String splitName) 713 throws PackageManager.NameNotFoundException { 714 throw new UnsupportedOperationException(); 715 } 716 717 /** {@hide} */ 718 @Override 719 public Context createPackageContextAsUser(String packageName, int flags, UserHandle user) 720 throws PackageManager.NameNotFoundException { 721 throw new UnsupportedOperationException(); 722 } 723 724 /** {@hide} */ 725 @Override 726 public int getUserId() { 727 throw new UnsupportedOperationException(); 728 } 729 730 @Override 731 public Context createConfigurationContext(Configuration overrideConfiguration) { 732 throw new UnsupportedOperationException(); 733 } 734 735 @Override 736 public Context createDisplayContext(Display display) { 737 throw new UnsupportedOperationException(); 738 } 739 740 @Override 741 public boolean isRestricted() { 742 throw new UnsupportedOperationException(); 743 } 744 745 /** @hide */ 746 @Override 747 public DisplayAdjustments getDisplayAdjustments(int displayId) { 748 throw new UnsupportedOperationException(); 749 } 750 751 /** @hide */ 752 @Override 753 public Display getDisplay() { 754 throw new UnsupportedOperationException(); 755 } 756 757 /** @hide */ 758 @Override 759 public void updateDisplay(int displayId) { 760 throw new UnsupportedOperationException(); 761 } 762 763 @Override 764 public File[] getExternalFilesDirs(String type) { 765 throw new UnsupportedOperationException(); 766 } 767 768 @Override 769 public File[] getObbDirs() { 770 throw new UnsupportedOperationException(); 771 } 772 773 @Override 774 public File[] getExternalCacheDirs() { 775 throw new UnsupportedOperationException(); 776 } 777 778 @Override 779 public File[] getExternalMediaDirs() { 780 throw new UnsupportedOperationException(); 781 } 782 783 /** @hide **/ 784 @Override 785 public File getPreloadsFileCache() { throw new UnsupportedOperationException(); } 786 787 @Override 788 public Context createDeviceProtectedStorageContext() { 789 throw new UnsupportedOperationException(); 790 } 791 792 /** {@hide} */ 793 @SystemApi 794 @Override 795 public Context createCredentialProtectedStorageContext() { 796 throw new UnsupportedOperationException(); 797 } 798 799 @Override 800 public boolean isDeviceProtectedStorage() { 801 throw new UnsupportedOperationException(); 802 } 803 804 /** {@hide} */ 805 @SystemApi 806 @Override 807 public boolean isCredentialProtectedStorage() { 808 throw new UnsupportedOperationException(); 809 } 810 811 /** {@hide} */ 812 @Override 813 public boolean canLoadUnsafeResources() { 814 throw new UnsupportedOperationException(); 815 } 816 817 /** {@hide} */ 818 @Override 819 public IBinder getActivityToken() { 820 throw new UnsupportedOperationException(); 821 } 822 823 /** {@hide} */ 824 @Override 825 public IServiceConnection getServiceDispatcher(ServiceConnection conn, Handler handler, 826 int flags) { 827 throw new UnsupportedOperationException(); 828 } 829 830 /** {@hide} */ 831 @Override 832 public IApplicationThread getIApplicationThread() { 833 throw new UnsupportedOperationException(); 834 } 835 836 /** {@hide} */ 837 @Override 838 public Handler getMainThreadHandler() { 839 throw new UnsupportedOperationException(); 840 } 841} 842