aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/xtremelabs/robolectric/shadows/ShadowContextWrapper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/xtremelabs/robolectric/shadows/ShadowContextWrapper.java')
-rw-r--r--src/main/java/com/xtremelabs/robolectric/shadows/ShadowContextWrapper.java22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/main/java/com/xtremelabs/robolectric/shadows/ShadowContextWrapper.java b/src/main/java/com/xtremelabs/robolectric/shadows/ShadowContextWrapper.java
index 9724e6b41..54f5332a6 100644
--- a/src/main/java/com/xtremelabs/robolectric/shadows/ShadowContextWrapper.java
+++ b/src/main/java/com/xtremelabs/robolectric/shadows/ShadowContextWrapper.java
@@ -1,24 +1,19 @@
package com.xtremelabs.robolectric.shadows;
-import android.content.BroadcastReceiver;
-import android.content.ComponentName;
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.ContextWrapper;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.ServiceConnection;
-import android.content.SharedPreferences;
+import android.content.*;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.res.AssetManager;
import android.content.res.Resources;
import android.os.Looper;
+import com.xtremelabs.robolectric.RobolectricConfig;
import com.xtremelabs.robolectric.internal.Implementation;
import com.xtremelabs.robolectric.internal.Implements;
import com.xtremelabs.robolectric.internal.RealObject;
+import com.xtremelabs.robolectric.res.RobolectricPackageManager;
import com.xtremelabs.robolectric.tester.android.content.TestSharedPreferences;
+import java.io.File;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -122,7 +117,14 @@ public class ShadowContextWrapper extends ShadowContext {
*/
@Implementation
public PackageManager getPackageManager() {
- return realContextWrapper == getApplicationContext() ? packageManager : getApplicationContext().getPackageManager();
+ return realContextWrapper == getApplicationContext() ? requirePackageManager() : getApplicationContext().getPackageManager();
+ }
+
+ private PackageManager requirePackageManager() {
+ if (packageManager == null) {
+ packageManager = new RobolectricPackageManager(realContextWrapper, new RobolectricConfig(new File(".")));
+ }
+ return packageManager;
}
@Implementation