Merge cleanup
diff --git a/robolectric/src/main/java/org/robolectric/android/internal/ParallelUniverse.java b/robolectric/src/main/java/org/robolectric/android/internal/ParallelUniverse.java
index 1e2a000..8641580 100644
--- a/robolectric/src/main/java/org/robolectric/android/internal/ParallelUniverse.java
+++ b/robolectric/src/main/java/org/robolectric/android/internal/ParallelUniverse.java
@@ -19,6 +19,7 @@
import android.os.Handler;
import android.os.Looper;
import android.util.DisplayMetrics;
+import com.google.common.annotations.VisibleForTesting;
import java.lang.reflect.Method;
import java.security.Security;
import java.util.Locale;
@@ -26,7 +27,6 @@
import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.TestLifecycle;
-import org.robolectric.android.ApplicationTestUtil;
import org.robolectric.android.Bootstrap;
import org.robolectric.android.fakes.RoboInstrumentation;
import org.robolectric.annotation.Config;
@@ -160,7 +160,15 @@
Context systemContextImpl = ReflectionHelpers.callStaticMethod(contextImplClass, "createSystemContext", ClassParameter.from(ActivityThread.class, activityThread));
RuntimeEnvironment.systemContext = systemContextImpl;
- final Application application = (Application) testLifecycle.createApplication(method, appManifest, config);
+ Application app;
+ try {
+ app = (Application) testLifecycle.createApplication(method, appManifest, config);
+ System.out.println("*** TestLifecycle.createApplication() is a deprecated interface and will be removed in Robolectric 3.7;" +
+ "*** please refactor your tests and remove " + testLifecycle.getClass().getName() + ".");
+ } catch (Exception e) {
+ app = createApplication(appManifest, config);
+ }
+ Application application = app;
RuntimeEnvironment.application = application;
if (application != null) {
@@ -183,7 +191,7 @@
Context contextImpl = systemContextImpl.createPackageContext(applicationInfo.packageName, Context.CONTEXT_INCLUDE_CODE);
shadowOf(contextImpl.getPackageManager()).addPackage(parsedPackage);
ReflectionHelpers.setField(ActivityThread.class, activityThread, "mInitialApplication", application);
- ApplicationTestUtil.attach(application, contextImpl);
+ shadowOf(application).callAttach(contextImpl);
} catch (PackageManager.NameNotFoundException e) {
throw new RuntimeException(e);
}
@@ -246,7 +254,6 @@
return applicationName.substring(0, lastDot) + ".Test" + applicationName.substring(lastDot + 1);
} else {
return "Test" + applicationName;
-
}
}
diff --git a/robolectric/src/test/java/org/robolectric/shadows/ShadowContentResolverTest.java b/robolectric/src/test/java/org/robolectric/shadows/ShadowContentResolverTest.java
index ccf8581..b2c3218 100644
--- a/robolectric/src/test/java/org/robolectric/shadows/ShadowContentResolverTest.java
+++ b/robolectric/src/test/java/org/robolectric/shadows/ShadowContentResolverTest.java
@@ -9,6 +9,7 @@
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.robolectric.Shadows.shadowOf;
+import static org.robolectric.annotation.Config.NONE;
import android.accounts.Account;
import android.app.Application;
@@ -707,9 +708,10 @@
}
@Test
+ @Config(manifest = NONE)
public void getProvider_shouldNotReturnAnyProviderWhenManifestIsNull() {
- Application application = new DefaultTestLifecycle().createApplication(null, null, null);
- ReflectionHelpers.callInstanceMethod(application, "attach", ReflectionHelpers.ClassParameter.from(Context.class, RuntimeEnvironment.application.getBaseContext()));
+ Application application = new Application();
+ shadowOf(application).callAttach(RuntimeEnvironment.systemContext);
assertThat(ShadowContentResolver.getProvider(Uri.parse("content://"))).isNull();
}
diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowApplication.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowApplication.java
index b7ddb2d..6c3ee14 100644
--- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowApplication.java
+++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowApplication.java
@@ -54,6 +54,7 @@
import org.robolectric.manifest.AndroidManifest;
import org.robolectric.manifest.BroadcastReceiverData;
import org.robolectric.shadow.api.Shadow;
+import org.robolectric.util.ReflectionHelpers;
import org.robolectric.util.Scheduler;
@Implements(Application.class)
@@ -136,6 +137,18 @@
}
}
+ /**
+ * Attaches an application to a base context.
+ *
+ * @param application The application to attach.
+ * @param context The context with which to initialize the application, whose base context will
+ * be attached to the application
+ */
+ public void callAttach(Context context) {
+ ReflectionHelpers.callInstanceMethod(Application.class, realApplication, "attach",
+ ReflectionHelpers.ClassParameter.from(Context.class, context));
+ }
+
private void registerBroadcastReceivers(AndroidManifest androidManifest) {
for (BroadcastReceiverData receiver : androidManifest.getBroadcastReceivers()) {
IntentFilter filter = new IntentFilter();