| Index: testing/android/junit/java/src/org/chromium/testing/local/GNManifestFactory.java
|
| diff --git a/testing/android/junit/java/src/org/chromium/testing/local/GNManifestFactory.java b/testing/android/junit/java/src/org/chromium/testing/local/GNManifestFactory.java
|
| index 09cec0738be785a7a2b99acff2375c88d4751f90..0d532d0bfe85ac4bfe9d697712d328e6bbe421f7 100644
|
| --- a/testing/android/junit/java/src/org/chromium/testing/local/GNManifestFactory.java
|
| +++ b/testing/android/junit/java/src/org/chromium/testing/local/GNManifestFactory.java
|
| @@ -9,32 +9,32 @@ import org.robolectric.internal.ManifestFactory;
|
| import org.robolectric.internal.ManifestIdentifier;
|
| import org.robolectric.manifest.AndroidManifest;
|
|
|
| -// TODO(mikecase): Add support for specifying the AndroidManifest for
|
| -// Robolectric tests.
|
| +import org.robolectric.res.Fs;
|
| +import org.robolectric.res.FsFile;
|
|
|
| /**
|
| * Class that manages passing Android manifest information to Robolectric.
|
| */
|
| public class GNManifestFactory implements ManifestFactory {
|
| - private static final String DEFAULT_PACKAGE_NAME = "org.robolectric.default";
|
|
|
| @Override
|
| public ManifestIdentifier identify(Config config) {
|
| - if (!config.manifest().equals(Config.NONE)) {
|
| - throw new RuntimeException("Specifying custom manifest not currently supported. "
|
| - + "Please use annotation @Config(manifest = Config.NONE) on Robolectric tests "
|
| - + "for the time being.");
|
| + FsFile resourceDir = null;
|
| + if (config.resourceDir() != null) {
|
| + resourceDir = Fs.fileFromPath(config.resourceDir());
|
| }
|
| - return new ManifestIdentifier(null, null, null, config.packageName(), null);
|
| +
|
| + FsFile manifestFile = null;
|
| + if (!(config.manifest() == null || config.manifest().equals(Config.NONE))) {
|
| + manifestFile = Fs.fileFromPath(config.manifest());
|
| + }
|
| +
|
| + return new ManifestIdentifier(manifestFile, resourceDir, null, config.packageName(), null);
|
| }
|
|
|
| @Override
|
| public AndroidManifest create(ManifestIdentifier manifestIdentifier) {
|
| - String packageName = manifestIdentifier.getPackageName();
|
| - if (packageName == null || packageName.equals("")) {
|
| - packageName = DEFAULT_PACKAGE_NAME;
|
| - }
|
| -
|
| - return new AndroidManifest(null, null, null, packageName);
|
| + return new AndroidManifest(manifestIdentifier.getManifestFile(),
|
| + manifestIdentifier.getResDir(), null, manifestIdentifier.getPackageName());
|
| }
|
| }
|
|
|