aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhihong Xu <zhihongx@google.com>2013-04-30 17:08:37 -0700
committerZhihong Xu <zhihongx@google.com>2013-04-30 17:48:10 -0700
commitac7845ae66b3839e20a3d43dd72fc50722cf2285 (patch)
tree121f22580537109be29237a52e56c7f5b61207c4
parentbf0552f88312525e8f291c7cab0e1584b9f6ba76 (diff)
downloadrobolectric-ac7845ae66b3839e20a3d43dd72fc50722cf2285.tar.gz
Let robolectric read manifest,res,assets from System properties
Change-Id: I1ad19db93694a02eabf249777fbc895d0f2f76a1
-rw-r--r--src/main/java/com/xtremelabs/robolectric/RobolectricTestRunner.java26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/main/java/com/xtremelabs/robolectric/RobolectricTestRunner.java b/src/main/java/com/xtremelabs/robolectric/RobolectricTestRunner.java
index 420645e1d..b03307976 100644
--- a/src/main/java/com/xtremelabs/robolectric/RobolectricTestRunner.java
+++ b/src/main/java/com/xtremelabs/robolectric/RobolectricTestRunner.java
@@ -9,6 +9,7 @@ import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
+import java.util.logging.Logger;
import javassist.Loader;
@@ -45,6 +46,16 @@ import com.xtremelabs.robolectric.util.SQLiteMap;
*/
public class RobolectricTestRunner extends BlockJUnit4ClassRunner implements RobolectricTestRunnerInterface {
+ private static final String MANIFEST_PATH_PROPERTY = "robolectric.path.manifest";
+ private static final String RES_PATH_PROPERTY = "robolectric.path.res";
+ private static final String ASSETS_PATH_PROPERTY = "robolectric.path.assets";
+ private static final String DEFAULT_MANIFEST_PATH = "./AndroidManifest.xml";
+ private static final String DEFAULT_RES_PATH = "./res";
+ private static final String DEFAULT_ASSETS_PATH = "./assets";
+
+ private static final Logger logger =
+ Logger.getLogger(RobolectricTestRunner.class.getSimpleName());
+
/** Instrument detector. We use it to check whether the current instance is instrumented. */
private static InstrumentDetector instrumentDetector = InstrumentDetector.DEFAULT;
@@ -99,7 +110,10 @@ public class RobolectricTestRunner extends BlockJUnit4ClassRunner implements Rob
* @throws InitializationError if junit says so
*/
public RobolectricTestRunner(final Class<?> testClass) throws InitializationError {
- this(testClass, new RobolectricConfig(new File(".")));
+ this(testClass, new RobolectricConfig(
+ new File(getSystemProperty(MANIFEST_PATH_PROPERTY, DEFAULT_MANIFEST_PATH)),
+ new File(getSystemProperty(RES_PATH_PROPERTY, DEFAULT_RES_PATH)),
+ new File(getSystemProperty(ASSETS_PATH_PROPERTY, DEFAULT_ASSETS_PATH))));
}
/**
@@ -378,6 +392,16 @@ public class RobolectricTestRunner extends BlockJUnit4ClassRunner implements Rob
protected void resetStaticState() {
}
+ private static String getSystemProperty(String propertyName, String defaultValue) {
+ String property = System.getProperty(propertyName);
+ if (property == null) {
+ property = defaultValue;
+ logger.info("No system property " + propertyName + " found, default to "
+ + defaultValue);
+ }
+ return property;
+ }
+
/**
* Sets Robolectric config to determine if Robolectric should blacklist API calls that are not
* I18N/L10N-safe.