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