blob: 859b2e5901783345fcfa7947d1cbbbe3b1426e37 [file] [log] [blame]
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001package android.test;
2
3import com.google.android.collect.Lists;
4
5import android.content.ContextWrapper;
6import android.content.ContentResolver;
7import android.content.Intent;
8import android.content.Context;
9import android.content.ServiceConnection;
10import android.content.BroadcastReceiver;
11import android.content.IntentFilter;
12import android.content.pm.PackageManager;
13import android.net.Uri;
14
15import java.util.List;
Ken Shirriff0f2e6662009-07-28 15:57:50 -070016import java.io.File;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080017
18/**
19 * A mock context which prevents its users from talking to the rest of the device while
20 * stubbing enough methods to satify code that tries to talk to other packages.
21 */
22public class IsolatedContext extends ContextWrapper {
23
24 private ContentResolver mResolver;
25
26 private List<Intent> mBroadcastIntents = Lists.newArrayList();
27
28 public IsolatedContext(
29 ContentResolver resolver, Context targetContext) {
30 super(targetContext);
31 mResolver = resolver;
32 }
33
34 /** Returns the list of intents that were broadcast since the last call to this method. */
35 public List<Intent> getAndClearBroadcastIntents() {
36 List<Intent> intents = mBroadcastIntents;
37 mBroadcastIntents = Lists.newArrayList();
38 return intents;
39 }
40
41 @Override
42 public ContentResolver getContentResolver() {
43 // We need to return the real resolver so that MailEngine.makeRight can get to the
44 // subscribed feeds provider. TODO: mock out subscribed feeds too.
45 return mResolver;
46 }
47
48 @Override
49 public boolean bindService(Intent service, ServiceConnection conn, int flags) {
50 return false;
51 }
52
53 @Override
54 public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter) {
55 return null;
56 }
57
58 @Override
59 public void sendBroadcast(Intent intent) {
60 mBroadcastIntents.add(intent);
61 }
62
63 @Override
64 public void sendOrderedBroadcast(Intent intent, String receiverPermission) {
65 mBroadcastIntents.add(intent);
66 }
67
68 @Override
69 public int checkUriPermission(
70 Uri uri, String readPermission, String writePermission, int pid,
71 int uid, int modeFlags) {
72 return PackageManager.PERMISSION_GRANTED;
73 }
74
75 @Override
76 public int checkUriPermission(Uri uri, int pid, int uid, int modeFlags) {
77 return PackageManager.PERMISSION_GRANTED;
78 }
79
80 @Override
81 public Object getSystemService(String name) {
82 // No services exist in this context.
83 return null;
84 }
85
Ken Shirriff0f2e6662009-07-28 15:57:50 -070086 @Override
87 public File getFilesDir() {
88 return new File("/dev/null");
89 }
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080090}