package org.robolectric.util; import org.junit.runners.model.InitializationError; import org.robolectric.RobolectricTestRunner; import org.robolectric.annotation.Config; import org.robolectric.manifest.AndroidManifest; import org.robolectric.res.Fs; import org.robolectric.res.FsFile; import java.io.File; public class TestRunnerWithManifest extends RobolectricTestRunner { public TestRunnerWithManifest(Class<?> testClass) throws InitializationError { super(testClass); } public static FsFile resourceFile(String... pathParts) { return Fs.newFile(resourcesBaseDirFile()).join(pathParts); } private static File resourcesBaseDirFile() { File testDir = Util.file("src", "test", "resources"); return hasTestManifest(testDir) ? testDir : Util.file("shadows-support-v4", "src", "test", "resources"); } private static boolean hasTestManifest(File testDir) { return new File(testDir, "AndroidManifest.xml").isFile(); } @Override protected AndroidManifest getAppManifest(Config config) { return new AndroidManifest(resourceFile("AndroidManifest.xml"), resourceFile("res"), resourceFile("assets")); } }