diff options
author | Jeff Hamilton <jham@google.com> | 2013-08-06 19:44:52 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-08-06 19:44:52 +0000 |
commit | 6bf395c984ed3f69711663b006aeffbb0f7e8a90 (patch) | |
tree | 245eddc4d5eebaeef388f865e18e85ef930a2f71 | |
parent | fd457c259610a8a7533482b160ffd8607db78b40 (diff) | |
parent | b276278567ee51bf43669a5da4b55deea8e4df09 (diff) | |
download | robolectric-kitkat-mr1-release.tar.gz |
Merge "Fix Wallet robolectric tests, Part 1"android-sdk-4.4.2_r1.0.1android-sdk-4.4.2_r1android-l-preview_r2android-cts-4.4_r4android-cts-4.4_r1android-4.4w_r1android-4.4_r1.2.0.1android-4.4_r1.2android-4.4_r1.1.0.1android-4.4_r1.1android-4.4_r1.0.1android-4.4_r1android-4.4_r0.9android-4.4_r0.8android-4.4_r0.7android-4.4.4_r2.0.1android-4.4.4_r2android-4.4.4_r1.0.1android-4.4.4_r1android-4.4.3_r1.1.0.1android-4.4.3_r1.1android-4.4.3_r1.0.1android-4.4.3_r1android-4.4.2_r2.0.1android-4.4.2_r2android-4.4.2_r1.0.1android-4.4.2_r1android-4.4.1_r1.0.1android-4.4.1_r1l-previewkitkat-wearkitkat-releasekitkat-mr2.2-releasekitkat-mr2.1-releasekitkat-mr2-releasekitkat-mr1.1-releasekitkat-mr1-releasekitkat-devkitkat-cts-releasekitkat-cts-devidea133-weekly-releaseidea133
-rw-r--r-- | src/main/java/com/xtremelabs/robolectric/RobolectricTestRunner.java | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/src/main/java/com/xtremelabs/robolectric/RobolectricTestRunner.java b/src/main/java/com/xtremelabs/robolectric/RobolectricTestRunner.java index b03307976..50fc33bf5 100644 --- a/src/main/java/com/xtremelabs/robolectric/RobolectricTestRunner.java +++ b/src/main/java/com/xtremelabs/robolectric/RobolectricTestRunner.java @@ -117,6 +117,25 @@ public class RobolectricTestRunner extends BlockJUnit4ClassRunner implements Rob } /** + * Creates a runner to run {@code testClass}. Looks in your working directory for your AndroidManifest.xml file + * and res directory. + * + * @param testClass the test class to be run + * @param classLoader a custom RobolectricClassLoader to be used. + * @throws InitializationError if junit says so + */ + public RobolectricTestRunner(final Class<?> testClass, RobolectricClassLoader classLoader) + throws InitializationError { + this(testClass, + isInstrumented() ? null : ShadowWrangler.getInstance(), + isInstrumented() ? null : classLoader, + 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)))); + } + + /** * Call this constructor in subclasses in order to specify non-default configuration (e.g. location of the * AndroidManifest.xml file and resource directory). * @@ -229,11 +248,12 @@ public class RobolectricTestRunner extends BlockJUnit4ClassRunner implements Rob * @throws InitializationError if junit says so */ protected RobolectricTestRunner(final Class<?> testClass, final ClassHandler classHandler, final RobolectricClassLoader classLoader, final RobolectricConfig robolectricConfig, final DatabaseMap map) throws InitializationError { - super(isInstrumented() ? testClass : classLoader.bootstrap(testClass)); + super(isInstrumented() ? testClass + : ensureClassLoaderNotNull(classLoader).bootstrap(testClass)); if (!isInstrumented()) { this.classHandler = classHandler; - this.classLoader = classLoader; + this.classLoader = ensureClassLoaderNotNull(classLoader); this.robolectricConfig = robolectricConfig; this.databaseMap = setupDatabaseMap(testClass, map); @@ -259,6 +279,11 @@ public class RobolectricTestRunner extends BlockJUnit4ClassRunner implements Rob } } + private static RobolectricClassLoader ensureClassLoaderNotNull( + RobolectricClassLoader classLoader) { + return classLoader == null ? getDefaultLoader() : classLoader; + } + protected static boolean isInstrumented() { return instrumentDetector.isInstrumented(); } |