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 
17 package android.test.mock;
18 
19 import android.content.ComponentName;
20 import android.content.ContentResolver;
21 import android.content.Context;
22 import android.content.Intent;
23 import android.content.IntentFilter;
24 import android.content.BroadcastReceiver;
25 import android.content.IntentSender;
26 import android.content.ServiceConnection;
27 import android.content.SharedPreferences;
28 import android.content.pm.ApplicationInfo;
29 import android.content.pm.PackageManager;
30 import android.content.res.AssetManager;
31 import android.content.res.Configuration;
32 import android.content.res.Resources;
33 import android.database.DatabaseErrorHandler;
34 import android.database.sqlite.SQLiteDatabase;
35 import android.graphics.Bitmap;
36 import android.graphics.drawable.Drawable;
37 import android.net.Uri;
38 import android.os.Bundle;
39 import android.os.Handler;
40 import android.os.IBinder;
41 import android.os.Looper;
42 import android.os.UserHandle;
43 import android.view.DisplayAdjustments;
44 import android.view.Display;
45 
46 import java.io.File;
47 import java.io.FileInputStream;
48 import java.io.FileNotFoundException;
49 import java.io.FileOutputStream;
50 import java.io.IOException;
51 import java.io.InputStream;
52 
53 /**
54  * A mock {@link android.content.Context} class.  All methods are non-functional and throw
55  * {@link java.lang.UnsupportedOperationException}.  You can use this to inject other dependencies,
56  * mocks, or monitors into the classes you are testing.
57  */
58 public class MockContext extends Context {
59 
60     @Override
getAssets()61     public AssetManager getAssets() {
62         throw new UnsupportedOperationException();
63     }
64 
65     @Override
getResources()66     public Resources getResources() {
67         throw new UnsupportedOperationException();
68     }
69 
70     @Override
getPackageManager()71     public PackageManager getPackageManager() {
72         throw new UnsupportedOperationException();
73     }
74 
75     @Override
getContentResolver()76     public ContentResolver getContentResolver() {
77         throw new UnsupportedOperationException();
78     }
79 
80     @Override
getMainLooper()81     public Looper getMainLooper() {
82         throw new UnsupportedOperationException();
83     }
84 
85     @Override
getApplicationContext()86     public Context getApplicationContext() {
87         throw new UnsupportedOperationException();
88     }
89 
90     @Override
setTheme(int resid)91     public void setTheme(int resid) {
92         throw new UnsupportedOperationException();
93     }
94 
95     @Override
getTheme()96     public Resources.Theme getTheme() {
97         throw new UnsupportedOperationException();
98     }
99 
100     @Override
getClassLoader()101     public ClassLoader getClassLoader() {
102         throw new UnsupportedOperationException();
103     }
104 
105     @Override
getPackageName()106     public String getPackageName() {
107         throw new UnsupportedOperationException();
108     }
109 
110     /** @hide */
111     @Override
getBasePackageName()112     public String getBasePackageName() {
113         throw new UnsupportedOperationException();
114     }
115 
116     /** @hide */
117     @Override
getOpPackageName()118     public String getOpPackageName() {
119         throw new UnsupportedOperationException();
120     }
121 
122     @Override
getApplicationInfo()123     public ApplicationInfo getApplicationInfo() {
124         throw new UnsupportedOperationException();
125     }
126 
127     @Override
getPackageResourcePath()128     public String getPackageResourcePath() {
129         throw new UnsupportedOperationException();
130     }
131 
132     /** @hide */
133     @Override
getSharedPrefsFile(String name)134     public File getSharedPrefsFile(String name) {
135         throw new UnsupportedOperationException();
136     }
137 
138     @Override
getPackageCodePath()139     public String getPackageCodePath() {
140         throw new UnsupportedOperationException();
141     }
142 
143     @Override
getSharedPreferences(String name, int mode)144     public SharedPreferences getSharedPreferences(String name, int mode) {
145         throw new UnsupportedOperationException();
146     }
147 
148     @Override
openFileInput(String name)149     public FileInputStream openFileInput(String name) throws FileNotFoundException {
150         throw new UnsupportedOperationException();
151     }
152 
153     @Override
openFileOutput(String name, int mode)154     public FileOutputStream openFileOutput(String name, int mode) throws FileNotFoundException {
155         throw new UnsupportedOperationException();
156     }
157 
158     @Override
deleteFile(String name)159     public boolean deleteFile(String name) {
160         throw new UnsupportedOperationException();
161     }
162 
163     @Override
getFileStreamPath(String name)164     public File getFileStreamPath(String name) {
165         throw new UnsupportedOperationException();
166     }
167 
168     @Override
fileList()169     public String[] fileList() {
170         throw new UnsupportedOperationException();
171     }
172 
173     @Override
getFilesDir()174     public File getFilesDir() {
175         throw new UnsupportedOperationException();
176     }
177 
178     @Override
getNoBackupFilesDir()179     public File getNoBackupFilesDir() {
180         throw new UnsupportedOperationException();
181     }
182 
183     @Override
getExternalFilesDir(String type)184     public File getExternalFilesDir(String type) {
185         throw new UnsupportedOperationException();
186     }
187 
188     @Override
getObbDir()189     public File getObbDir() {
190         throw new UnsupportedOperationException();
191     }
192 
193     @Override
getCacheDir()194     public File getCacheDir() {
195         throw new UnsupportedOperationException();
196     }
197 
198     @Override
getCodeCacheDir()199     public File getCodeCacheDir() {
200         throw new UnsupportedOperationException();
201     }
202 
203     @Override
getExternalCacheDir()204     public File getExternalCacheDir() {
205         throw new UnsupportedOperationException();
206     }
207 
208     @Override
getDir(String name, int mode)209     public File getDir(String name, int mode) {
210         throw new UnsupportedOperationException();
211     }
212 
213     @Override
openOrCreateDatabase(String file, int mode, SQLiteDatabase.CursorFactory factory)214     public SQLiteDatabase openOrCreateDatabase(String file, int mode,
215             SQLiteDatabase.CursorFactory factory) {
216         throw new UnsupportedOperationException();
217     }
218 
219     @Override
openOrCreateDatabase(String file, int mode, SQLiteDatabase.CursorFactory factory, DatabaseErrorHandler errorHandler)220     public SQLiteDatabase openOrCreateDatabase(String file, int mode,
221             SQLiteDatabase.CursorFactory factory, DatabaseErrorHandler errorHandler) {
222         throw new UnsupportedOperationException();
223     }
224 
225     @Override
getDatabasePath(String name)226     public File getDatabasePath(String name) {
227         throw new UnsupportedOperationException();
228     }
229 
230     @Override
databaseList()231     public String[] databaseList() {
232         throw new UnsupportedOperationException();
233     }
234 
235     @Override
deleteDatabase(String name)236     public boolean deleteDatabase(String name) {
237         throw new UnsupportedOperationException();
238     }
239 
240     @Override
getWallpaper()241     public Drawable getWallpaper() {
242         throw new UnsupportedOperationException();
243     }
244 
245     @Override
peekWallpaper()246     public Drawable peekWallpaper() {
247         throw new UnsupportedOperationException();
248     }
249 
250     @Override
getWallpaperDesiredMinimumWidth()251     public int getWallpaperDesiredMinimumWidth() {
252         throw new UnsupportedOperationException();
253     }
254 
255     @Override
getWallpaperDesiredMinimumHeight()256     public int getWallpaperDesiredMinimumHeight() {
257         throw new UnsupportedOperationException();
258     }
259 
260     @Override
setWallpaper(Bitmap bitmap)261     public void setWallpaper(Bitmap bitmap) throws IOException {
262         throw new UnsupportedOperationException();
263     }
264 
265     @Override
setWallpaper(InputStream data)266     public void setWallpaper(InputStream data) throws IOException {
267         throw new UnsupportedOperationException();
268     }
269 
270     @Override
clearWallpaper()271     public void clearWallpaper() {
272         throw new UnsupportedOperationException();
273     }
274 
275     @Override
startActivity(Intent intent)276     public void startActivity(Intent intent) {
277         throw new UnsupportedOperationException();
278     }
279 
280     @Override
startActivity(Intent intent, Bundle options)281     public void startActivity(Intent intent, Bundle options) {
282         startActivity(intent);
283     }
284 
285     @Override
startActivities(Intent[] intents)286     public void startActivities(Intent[] intents) {
287         throw new UnsupportedOperationException();
288     }
289 
290     @Override
startActivities(Intent[] intents, Bundle options)291     public void startActivities(Intent[] intents, Bundle options) {
292         startActivities(intents);
293     }
294 
295     @Override
startIntentSender(IntentSender intent, Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags)296     public void startIntentSender(IntentSender intent,
297             Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags)
298             throws IntentSender.SendIntentException {
299         throw new UnsupportedOperationException();
300     }
301 
302     @Override
startIntentSender(IntentSender intent, Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags, Bundle options)303     public void startIntentSender(IntentSender intent,
304             Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags,
305             Bundle options) throws IntentSender.SendIntentException {
306         startIntentSender(intent, fillInIntent, flagsMask, flagsValues, extraFlags);
307     }
308 
309     @Override
sendBroadcast(Intent intent)310     public void sendBroadcast(Intent intent) {
311         throw new UnsupportedOperationException();
312     }
313 
314     @Override
sendBroadcast(Intent intent, String receiverPermission)315     public void sendBroadcast(Intent intent, String receiverPermission) {
316         throw new UnsupportedOperationException();
317     }
318 
319     /** @hide */
320     @Override
sendBroadcast(Intent intent, String receiverPermission, int appOp)321     public void sendBroadcast(Intent intent, String receiverPermission, int appOp) {
322         throw new UnsupportedOperationException();
323     }
324 
325     @Override
sendOrderedBroadcast(Intent intent, String receiverPermission)326     public void sendOrderedBroadcast(Intent intent,
327             String receiverPermission) {
328         throw new UnsupportedOperationException();
329     }
330 
331     @Override
sendOrderedBroadcast(Intent intent, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)332     public void sendOrderedBroadcast(Intent intent, String receiverPermission,
333             BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData,
334            Bundle initialExtras) {
335         throw new UnsupportedOperationException();
336     }
337 
338     /** @hide */
339     @Override
sendOrderedBroadcast(Intent intent, String receiverPermission, int appOp, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)340     public void sendOrderedBroadcast(Intent intent, String receiverPermission, int appOp,
341             BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData,
342            Bundle initialExtras) {
343         throw new UnsupportedOperationException();
344     }
345 
346     @Override
sendBroadcastAsUser(Intent intent, UserHandle user)347     public void sendBroadcastAsUser(Intent intent, UserHandle user) {
348         throw new UnsupportedOperationException();
349     }
350 
351     @Override
sendBroadcastAsUser(Intent intent, UserHandle user, String receiverPermission)352     public void sendBroadcastAsUser(Intent intent, UserHandle user,
353             String receiverPermission) {
354         throw new UnsupportedOperationException();
355     }
356 
357     @Override
sendOrderedBroadcastAsUser(Intent intent, UserHandle user, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)358     public void sendOrderedBroadcastAsUser(Intent intent, UserHandle user,
359             String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler,
360             int initialCode, String initialData, Bundle initialExtras) {
361         throw new UnsupportedOperationException();
362     }
363 
364     /** @hide */
365     @Override
sendOrderedBroadcastAsUser(Intent intent, UserHandle user, String receiverPermission, int appOp, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)366     public void sendOrderedBroadcastAsUser(Intent intent, UserHandle user,
367             String receiverPermission, int appOp, BroadcastReceiver resultReceiver,
368             Handler scheduler,
369             int initialCode, String initialData, Bundle initialExtras) {
370         throw new UnsupportedOperationException();
371     }
372 
373     @Override
374 
sendStickyBroadcast(Intent intent)375     public void sendStickyBroadcast(Intent intent) {
376         throw new UnsupportedOperationException();
377     }
378 
379     @Override
sendStickyOrderedBroadcast(Intent intent, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)380     public void sendStickyOrderedBroadcast(Intent intent,
381             BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData,
382            Bundle initialExtras) {
383         throw new UnsupportedOperationException();
384     }
385 
386     @Override
removeStickyBroadcast(Intent intent)387     public void removeStickyBroadcast(Intent intent) {
388         throw new UnsupportedOperationException();
389     }
390 
391     @Override
sendStickyBroadcastAsUser(Intent intent, UserHandle user)392     public void sendStickyBroadcastAsUser(Intent intent, UserHandle user) {
393         throw new UnsupportedOperationException();
394     }
395 
396     @Override
sendStickyOrderedBroadcastAsUser(Intent intent, UserHandle user, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)397     public void sendStickyOrderedBroadcastAsUser(Intent intent,
398             UserHandle user, BroadcastReceiver resultReceiver,
399             Handler scheduler, int initialCode, String initialData,
400             Bundle initialExtras) {
401         throw new UnsupportedOperationException();
402     }
403 
404     @Override
removeStickyBroadcastAsUser(Intent intent, UserHandle user)405     public void removeStickyBroadcastAsUser(Intent intent, UserHandle user) {
406         throw new UnsupportedOperationException();
407     }
408 
409     @Override
registerReceiver(BroadcastReceiver receiver, IntentFilter filter)410     public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter) {
411         throw new UnsupportedOperationException();
412     }
413 
414     @Override
registerReceiver(BroadcastReceiver receiver, IntentFilter filter, String broadcastPermission, Handler scheduler)415     public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter,
416             String broadcastPermission, Handler scheduler) {
417         throw new UnsupportedOperationException();
418     }
419 
420     /** @hide */
421     @Override
registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user, IntentFilter filter, String broadcastPermission, Handler scheduler)422     public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user,
423             IntentFilter filter, String broadcastPermission, Handler scheduler) {
424         throw new UnsupportedOperationException();
425     }
426 
427     @Override
unregisterReceiver(BroadcastReceiver receiver)428     public void unregisterReceiver(BroadcastReceiver receiver) {
429         throw new UnsupportedOperationException();
430     }
431 
432     @Override
startService(Intent service)433     public ComponentName startService(Intent service) {
434         throw new UnsupportedOperationException();
435     }
436 
437     @Override
stopService(Intent service)438     public boolean stopService(Intent service) {
439         throw new UnsupportedOperationException();
440     }
441 
442     /** @hide */
443     @Override
startServiceAsUser(Intent service, UserHandle user)444     public ComponentName startServiceAsUser(Intent service, UserHandle user) {
445         throw new UnsupportedOperationException();
446     }
447 
448     /** @hide */
449     @Override
stopServiceAsUser(Intent service, UserHandle user)450     public boolean stopServiceAsUser(Intent service, UserHandle user) {
451         throw new UnsupportedOperationException();
452     }
453 
454     @Override
bindService(Intent service, ServiceConnection conn, int flags)455     public boolean bindService(Intent service, ServiceConnection conn, int flags) {
456         throw new UnsupportedOperationException();
457     }
458 
459     /** @hide */
460     @Override
bindServiceAsUser(Intent service, ServiceConnection conn, int flags, UserHandle user)461     public boolean bindServiceAsUser(Intent service, ServiceConnection conn, int flags,
462             UserHandle user) {
463         throw new UnsupportedOperationException();
464     }
465 
466     @Override
unbindService(ServiceConnection conn)467     public void unbindService(ServiceConnection conn) {
468         throw new UnsupportedOperationException();
469     }
470 
471     @Override
startInstrumentation(ComponentName className, String profileFile, Bundle arguments)472     public boolean startInstrumentation(ComponentName className,
473             String profileFile, Bundle arguments) {
474         throw new UnsupportedOperationException();
475     }
476 
477     @Override
getSystemService(String name)478     public Object getSystemService(String name) {
479         throw new UnsupportedOperationException();
480     }
481 
482     @Override
checkPermission(String permission, int pid, int uid)483     public int checkPermission(String permission, int pid, int uid) {
484         throw new UnsupportedOperationException();
485     }
486 
487     /** @hide */
488     @Override
checkPermission(String permission, int pid, int uid, IBinder callerToken)489     public int checkPermission(String permission, int pid, int uid, IBinder callerToken) {
490         return checkPermission(permission, pid, uid);
491     }
492 
493     @Override
checkCallingPermission(String permission)494     public int checkCallingPermission(String permission) {
495         throw new UnsupportedOperationException();
496     }
497 
498     @Override
checkCallingOrSelfPermission(String permission)499     public int checkCallingOrSelfPermission(String permission) {
500         throw new UnsupportedOperationException();
501     }
502 
503     @Override
enforcePermission( String permission, int pid, int uid, String message)504     public void enforcePermission(
505             String permission, int pid, int uid, String message) {
506         throw new UnsupportedOperationException();
507     }
508 
509     @Override
enforceCallingPermission(String permission, String message)510     public void enforceCallingPermission(String permission, String message) {
511         throw new UnsupportedOperationException();
512     }
513 
514     @Override
enforceCallingOrSelfPermission(String permission, String message)515     public void enforceCallingOrSelfPermission(String permission, String message) {
516         throw new UnsupportedOperationException();
517     }
518 
519     @Override
grantUriPermission(String toPackage, Uri uri, int modeFlags)520     public void grantUriPermission(String toPackage, Uri uri, int modeFlags) {
521         throw new UnsupportedOperationException();
522     }
523 
524     @Override
revokeUriPermission(Uri uri, int modeFlags)525     public void revokeUriPermission(Uri uri, int modeFlags) {
526         throw new UnsupportedOperationException();
527     }
528 
529     @Override
checkUriPermission(Uri uri, int pid, int uid, int modeFlags)530     public int checkUriPermission(Uri uri, int pid, int uid, int modeFlags) {
531         throw new UnsupportedOperationException();
532     }
533 
534     /** @hide */
535     @Override
checkUriPermission(Uri uri, int pid, int uid, int modeFlags, IBinder callerToken)536     public int checkUriPermission(Uri uri, int pid, int uid, int modeFlags, IBinder callerToken) {
537         return checkUriPermission(uri, pid, uid, modeFlags);
538     }
539 
540     @Override
checkCallingUriPermission(Uri uri, int modeFlags)541     public int checkCallingUriPermission(Uri uri, int modeFlags) {
542         throw new UnsupportedOperationException();
543     }
544 
545     @Override
checkCallingOrSelfUriPermission(Uri uri, int modeFlags)546     public int checkCallingOrSelfUriPermission(Uri uri, int modeFlags) {
547         throw new UnsupportedOperationException();
548     }
549 
550     @Override
checkUriPermission(Uri uri, String readPermission, String writePermission, int pid, int uid, int modeFlags)551     public int checkUriPermission(Uri uri, String readPermission,
552             String writePermission, int pid, int uid, int modeFlags) {
553         throw new UnsupportedOperationException();
554     }
555 
556     @Override
enforceUriPermission( Uri uri, int pid, int uid, int modeFlags, String message)557     public void enforceUriPermission(
558             Uri uri, int pid, int uid, int modeFlags, String message) {
559         throw new UnsupportedOperationException();
560     }
561 
562     @Override
enforceCallingUriPermission( Uri uri, int modeFlags, String message)563     public void enforceCallingUriPermission(
564             Uri uri, int modeFlags, String message) {
565         throw new UnsupportedOperationException();
566     }
567 
568     @Override
enforceCallingOrSelfUriPermission( Uri uri, int modeFlags, String message)569     public void enforceCallingOrSelfUriPermission(
570             Uri uri, int modeFlags, String message) {
571         throw new UnsupportedOperationException();
572     }
573 
enforceUriPermission( Uri uri, String readPermission, String writePermission, int pid, int uid, int modeFlags, String message)574     public void enforceUriPermission(
575             Uri uri, String readPermission, String writePermission,
576             int pid, int uid, int modeFlags, String message) {
577         throw new UnsupportedOperationException();
578     }
579 
580     @Override
createPackageContext(String packageName, int flags)581     public Context createPackageContext(String packageName, int flags)
582             throws PackageManager.NameNotFoundException {
583         throw new UnsupportedOperationException();
584     }
585 
586     /** {@hide} */
587     @Override
createApplicationContext(ApplicationInfo application, int flags)588     public Context createApplicationContext(ApplicationInfo application, int flags)
589             throws PackageManager.NameNotFoundException {
590         return null;
591     }
592 
593     /** {@hide} */
594     @Override
createPackageContextAsUser(String packageName, int flags, UserHandle user)595     public Context createPackageContextAsUser(String packageName, int flags, UserHandle user)
596             throws PackageManager.NameNotFoundException {
597         throw new UnsupportedOperationException();
598     }
599 
600     /** {@hide} */
601     @Override
getUserId()602     public int getUserId() {
603         throw new UnsupportedOperationException();
604     }
605 
606     @Override
createConfigurationContext(Configuration overrideConfiguration)607     public Context createConfigurationContext(Configuration overrideConfiguration) {
608         throw new UnsupportedOperationException();
609     }
610 
611     @Override
createDisplayContext(Display display)612     public Context createDisplayContext(Display display) {
613         throw new UnsupportedOperationException();
614     }
615 
616     @Override
isRestricted()617     public boolean isRestricted() {
618         throw new UnsupportedOperationException();
619     }
620 
621     /** @hide */
622     @Override
getDisplayAdjustments(int displayId)623     public DisplayAdjustments getDisplayAdjustments(int displayId) {
624         throw new UnsupportedOperationException();
625     }
626 
627     @Override
getExternalFilesDirs(String type)628     public File[] getExternalFilesDirs(String type) {
629         throw new UnsupportedOperationException();
630     }
631 
632     @Override
getObbDirs()633     public File[] getObbDirs() {
634         throw new UnsupportedOperationException();
635     }
636 
637     @Override
getExternalCacheDirs()638     public File[] getExternalCacheDirs() {
639         throw new UnsupportedOperationException();
640     }
641 
642     @Override
getExternalMediaDirs()643     public File[] getExternalMediaDirs() {
644         throw new UnsupportedOperationException();
645     }
646 }
647