summaryrefslogtreecommitdiff
path: root/library/test/robotest/src/com/android/setupwizardlib/robolectric/SuwLibRobolectricTestRunner.java
diff options
context:
space:
mode:
Diffstat (limited to 'library/test/robotest/src/com/android/setupwizardlib/robolectric/SuwLibRobolectricTestRunner.java')
-rw-r--r--library/test/robotest/src/com/android/setupwizardlib/robolectric/SuwLibRobolectricTestRunner.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/library/test/robotest/src/com/android/setupwizardlib/robolectric/SuwLibRobolectricTestRunner.java b/library/test/robotest/src/com/android/setupwizardlib/robolectric/SuwLibRobolectricTestRunner.java
index 61baa23..509201a 100644
--- a/library/test/robotest/src/com/android/setupwizardlib/robolectric/SuwLibRobolectricTestRunner.java
+++ b/library/test/robotest/src/com/android/setupwizardlib/robolectric/SuwLibRobolectricTestRunner.java
@@ -20,13 +20,42 @@ import org.junit.runner.notification.RunNotifier;
import org.junit.runners.model.FrameworkMethod;
import org.junit.runners.model.InitializationError;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.internal.ManifestFactory;
public class SuwLibRobolectricTestRunner extends RobolectricTestRunner {
+ private String mModuleRootPath;
+
public SuwLibRobolectricTestRunner(Class<?> testClass) throws InitializationError {
super(testClass);
}
+ // Hack to determine the module root path in the build folder (e.g. out/gradle/setup-wizard-lib)
+ private void updateModuleRootPath(Config config) {
+ String moduleRoot = config.constants().getResource("").toString()
+ .replace("file:", "").replace("jar:", "");
+ mModuleRootPath =
+ moduleRoot.substring(0, moduleRoot.lastIndexOf("/build")) + "/setup-wizard-lib";
+ }
+
+ /**
+ * Return the default config used to run Robolectric tests.
+ */
+ @Override
+ protected Config buildGlobalConfig() {
+ Config parent = super.buildGlobalConfig();
+ updateModuleRootPath(parent);
+ return new Config.Builder(parent)
+ .setBuildDir(mModuleRootPath + "/build")
+ .build();
+ }
+
+ @Override
+ protected ManifestFactory getManifestFactory(Config config) {
+ return new PatchedGradleManifestFactory();
+ }
+
@Override
protected void runChild(FrameworkMethod method, RunNotifier notifier) {
System.out.println("===== Running " + method + " =====");