blob: 286666684b8877708e77c7ad4062bd677066dd0f [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;
16
17/**
18 * A mock context which prevents its users from talking to the rest of the device while
19 * stubbing enough methods to satify code that tries to talk to other packages.
20 */
21public class IsolatedContext extends ContextWrapper {
22
23 private ContentResolver mResolver;
24
25 private List<Intent> mBroadcastIntents = Lists.newArrayList();
26
27 public IsolatedContext(
28 ContentResolver resolver, Context targetContext) {
29 super(targetContext);
30 mResolver = resolver;
31 }
32
33 /** Returns the list of intents that were broadcast since the last call to this method. */
34 public List<Intent> getAndClearBroadcastIntents() {
35 List<Intent> intents = mBroadcastIntents;
36 mBroadcastIntents = Lists.newArrayList();
37 return intents;
38 }
39
40 @Override
41 public ContentResolver getContentResolver() {
42 // We need to return the real resolver so that MailEngine.makeRight can get to the
43 // subscribed feeds provider. TODO: mock out subscribed feeds too.
44 return mResolver;
45 }
46
47 @Override
48 public boolean bindService(Intent service, ServiceConnection conn, int flags) {
49 return false;
50 }
51
52 @Override
53 public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter) {
54 return null;
55 }
56
57 @Override
58 public void sendBroadcast(Intent intent) {
59 mBroadcastIntents.add(intent);
60 }
61
62 @Override
63 public void sendOrderedBroadcast(Intent intent, String receiverPermission) {
64 mBroadcastIntents.add(intent);
65 }
66
67 @Override
68 public int checkUriPermission(
69 Uri uri, String readPermission, String writePermission, int pid,
70 int uid, int modeFlags) {
71 return PackageManager.PERMISSION_GRANTED;
72 }
73
74 @Override
75 public int checkUriPermission(Uri uri, int pid, int uid, int modeFlags) {
76 return PackageManager.PERMISSION_GRANTED;
77 }
78
79 @Override
80 public Object getSystemService(String name) {
81 // No services exist in this context.
82 return null;
83 }
84
85}