aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar asteinb <asteinb@google.com>2018-03-22 11:15:43 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-03-22 11:16:59 -0700
commit4f654dabba9af6e3966c3dcad986094385058562 (patch)
treed8297bcc77b1ed11c71224fba67a79ba7bfb2403 /src/test/java/com/google/devtools/build
parent39cef6d6a4a9e3ae80b11a9ccc0f35325852777c (diff)
Make ManifestMergerAction able to not take a primary manifest
This is the only difference in action implementation required for the new Skylark Android Data API design. Even if rules have resources or assets, after this API is adopted, they will no longer have to specify a primary manifest. Instead, a dummy manifest will be generated (either to merge with dependency manifests, or for use by IDEs if there are no dependency manifests). Support this in the ManifestMergerAction by supporting not having a --manifest value passed. RELNOTES: None PiperOrigin-RevId: 190095623
Diffstat (limited to 'src/test/java/com/google/devtools/build')
-rw-r--r--src/test/java/com/google/devtools/build/android/ManifestMergerActionTest.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/android/ManifestMergerActionTest.java b/src/test/java/com/google/devtools/build/android/ManifestMergerActionTest.java
index 9b989adba0..264d6f9e85 100644
--- a/src/test/java/com/google/devtools/build/android/ManifestMergerActionTest.java
+++ b/src/test/java/com/google/devtools/build/android/ManifestMergerActionTest.java
@@ -93,6 +93,36 @@ public class ManifestMergerActionTest {
working.toFile().deleteOnExit();
}
+ @Test
+ public void testMerge_GenerateDummyManifest() throws Exception {
+ final Path workingDir = Paths.get(System.getProperty("user.dir"));
+ assertThat(workingDir.toFile().exists()).isTrue();
+ assertThat(workingDir.toFile().isDirectory()).isTrue();
+
+ Files.createDirectories(working.resolve("output"));
+ Path mergedManifest = working.resolve("output/mergedManifest.xml");
+
+ ManifestMergerAction.main(
+ new String[] {
+ "--customPackage",
+ "foo.bar.baz",
+ "--mergeType",
+ "LIBRARY",
+ "--manifestOutput",
+ mergedManifest.toString()
+ });
+
+ assertThat(
+ Joiner.on(" ")
+ .join(Files.readAllLines(mergedManifest, UTF_8))
+ .replaceAll("\\s+", " ")
+ .trim())
+ .isEqualTo(
+ "<?xml version=\"1.0\" encoding=\"utf-8\"?> "
+ + "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\" "
+ + "package=\"foo.bar.baz\" />");
+ }
+
@Test public void testMerge() throws Exception {
final Path workingDir = Paths.get(System.getProperty("user.dir"));
assertThat(workingDir.toFile().exists()).isTrue();