use of com.android.aapt.Resources.XmlElement in project bundletool by google.
the class XmlProtoElementTest method getOptionalChildElement_withNamespace_oneElement.
@Test
public void getOptionalChildElement_withNamespace_oneElement() {
XmlElement childElement = XmlElement.newBuilder().setName("child").setNamespaceUri("namespace").build();
XmlProtoElement element = new XmlProtoElement(XmlElement.newBuilder().setName("hello").addChild(XmlNode.newBuilder().setElement(childElement)).build());
assertThat(element.getOptionalChildElement("namespace", "child")).hasValue(new XmlProtoElement(childElement));
}
use of com.android.aapt.Resources.XmlElement in project bundletool by google.
the class XmlProtoElementTest method getChildElement_manyElements_throws.
@Test
public void getChildElement_manyElements_throws() {
XmlElement childElement = XmlElement.newBuilder().setName("child").build();
XmlProtoElement element = new XmlProtoElement(XmlElement.newBuilder().setName("hello").addChild(XmlNode.newBuilder().setElement(childElement)).addChild(XmlNode.newBuilder().setElement(childElement)).build());
assertThrows(XmlProtoException.class, () -> element.getChildElement("child"));
}
use of com.android.aapt.Resources.XmlElement in project bundletool by google.
the class XmlProtoElementTest method getOptionalChildElement_withNamespace_manyElements_throws.
@Test
public void getOptionalChildElement_withNamespace_manyElements_throws() {
XmlElement childElement = XmlElement.newBuilder().setName("child").setNamespaceUri("namespace").build();
XmlProtoElement element = new XmlProtoElement(XmlElement.newBuilder().setName("hello").addChild(XmlNode.newBuilder().setElement(childElement)).addChild(XmlNode.newBuilder().setElement(childElement)).build());
assertThrows(XmlProtoException.class, () -> element.getOptionalChildElement("namespace", "child"));
}
use of com.android.aapt.Resources.XmlElement in project bundletool by google.
the class XmlProtoElementTest method getChildrenElements_withNameAndNamespace.
@Test
public void getChildrenElements_withNameAndNamespace() {
XmlElement childElement1 = XmlElement.newBuilder().setName("child").setNamespaceUri("namespace").build();
XmlElement childElement2 = XmlElement.newBuilder().setName("child").setNamespaceUri("namespace").addAttribute(XmlAttribute.newBuilder().setName("test").build()).build();
XmlProtoElement element = new XmlProtoElement(XmlElement.newBuilder().addChild(XmlNode.newBuilder().setElement(childElement1)).addChild(XmlNode.newBuilder().setElement(XmlElement.newBuilder().setName("other"))).addChild(XmlNode.newBuilder().setElement(childElement1.toBuilder().clearNamespaceUri())).addChild(XmlNode.newBuilder().setElement(childElement2)).build());
assertThat(element.getChildrenElements("namespace", "child")).containsExactly(new XmlProtoElement(childElement1), new XmlProtoElement(childElement2));
}
use of com.android.aapt.Resources.XmlElement in project bundletool by google.
the class ModuleSplitterTest method splitNameNotRemovedForInstantSplit.
@Test
public void splitNameNotRemovedForInstantSplit() throws Exception {
XmlNode manifest = androidManifest("com.test.app", withMainActivity("MainActivity"), withSplitNameActivity("FooActivity", "testModule"));
BundleModule bundleModule = new BundleModuleBuilder("testModule").setManifest(manifest).build();
ImmutableList<ModuleSplit> moduleSplits = ModuleSplitter.createNoStamp(bundleModule, BUNDLETOOL_VERSION, APP_BUNDLE, ApkGenerationConfiguration.builder().setForInstantAppVariants(true).build(), lPlusVariantTargeting(), ImmutableSet.of("testModule")).splitModule();
assertThat(moduleSplits).hasSize(1);
ModuleSplit masterSplit = moduleSplits.get(0);
ImmutableList<XmlElement> activities = masterSplit.getAndroidManifest().getManifestRoot().getElement().getChildElement("application").getChildrenElements(ACTIVITY_ELEMENT_NAME).map(XmlProtoElement::getProto).collect(toImmutableList());
assertThat(activities).hasSize(2);
XmlElement activityElement = activities.get(1);
assertThat(activityElement.getAttributeList()).containsExactly(xmlAttribute(ANDROID_NAMESPACE_URI, "name", NAME_RESOURCE_ID, "FooActivity"), xmlAttribute(ANDROID_NAMESPACE_URI, "splitName", SPLIT_NAME_RESOURCE_ID, "testModule"));
}
Aggregations