Search in sources :

Example 46 with XmlElement

use of com.android.aapt.Resources.XmlElement in project bundletool by google.

the class ModuleSplitTest method removeUnknownSplits.

@Test
public void removeUnknownSplits() {
    AndroidManifest manifest = AndroidManifest.create(androidManifest("com.test.app", withMainActivity("MainActivity"), withSplitNameActivity("FooActivity", "foo")));
    ModuleSplit masterSplit = ModuleSplit.builder().setModuleName(BundleModuleName.create("base")).setApkTargeting(ApkTargeting.getDefaultInstance()).setVariantTargeting(lPlusVariantTargeting()).setMasterSplit(true).setAndroidManifest(manifest).build();
    masterSplit = masterSplit.removeUnknownSplitComponents(ImmutableSet.of());
    ImmutableList<XmlElement> activities = masterSplit.getAndroidManifest().getManifestElement().getChildElement("application").getChildrenElements(ACTIVITY_ELEMENT_NAME).map(XmlProtoElement::getProto).collect(toImmutableList());
    assertThat(activities).hasSize(1);
    XmlElement activityElement = activities.get(0);
    assertThat(activityElement.getAttributeList()).containsExactly(xmlAttribute(ANDROID_NAMESPACE_URI, "name", NAME_RESOURCE_ID, "MainActivity"));
}
Also used : XmlElement(com.android.aapt.Resources.XmlElement) Test(org.junit.Test)

Example 47 with XmlElement

use of com.android.aapt.Resources.XmlElement in project bundletool by google.

the class StandaloneApksGeneratorTest method removeSplitNameFromShard.

@Test
public void removeSplitNameFromShard() throws Exception {
    XmlNode manifest = androidManifest("com.test.app", withMainActivity("MainActivity"), withSplitNameActivity("FooActivity", "foo"));
    BundleModule bundleModule = new BundleModuleBuilder("base").addFile("assets/file.txt").addFile("dex/classes.dex").addFile("res/drawable/image.jpg").addFile("res/drawable-mdpi/image.jpg").addFile("root/license.dat").setManifest(manifest).build();
    ImmutableList<ModuleSplit> shards = standaloneApksGenerator.generateStandaloneApks(ImmutableList.of(bundleModule), NO_DIMENSIONS);
    assertThat(shards).hasSize(1);
    ModuleSplit fatShard = shards.get(0);
    ImmutableList<XmlElement> activities = fatShard.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"));
}
Also used : XmlNode(com.android.aapt.Resources.XmlNode) BundleModuleBuilder(com.android.tools.build.bundletool.testing.BundleModuleBuilder) ModuleSplit(com.android.tools.build.bundletool.model.ModuleSplit) XmlElement(com.android.aapt.Resources.XmlElement) BundleModule(com.android.tools.build.bundletool.model.BundleModule) Test(org.junit.Test)

Example 48 with XmlElement

use of com.android.aapt.Resources.XmlElement in project bundletool by google.

the class XmlProtoElementBuilderTest method getAttributeIgnoringNamespace_duplicate.

@Test
public void getAttributeIgnoringNamespace_duplicate() {
    XmlAttribute attribute = XmlAttribute.newBuilder().setName("attribute").build();
    XmlElement protoElement = XmlElement.newBuilder().addAttribute(attribute).addAttribute(attribute).build();
    XmlProtoElementBuilder element = new XmlProtoElementBuilder(protoElement.toBuilder());
    XmlProtoAttributeBuilder fetchedAttribute = element.getAttributeIgnoringNamespace("attribute").get();
    assertThat(fetchedAttribute.getProto().build()).isEqualTo(attribute);
    assertThat(element.getProto().build()).isEqualTo(protoElement);
}
Also used : XmlAttribute(com.android.aapt.Resources.XmlAttribute) XmlElement(com.android.aapt.Resources.XmlElement) Test(org.junit.Test)

Example 49 with XmlElement

use of com.android.aapt.Resources.XmlElement in project bundletool by google.

the class XmlProtoElementBuilderTest method removeAttribute_namespaceNotMatching.

@Test
public void removeAttribute_namespaceNotMatching() {
    XmlElement protoElement = XmlElement.newBuilder().addAttribute(XmlAttribute.newBuilder().setName("attribute").setNamespaceUri("namespace")).build();
    XmlProtoElementBuilder element = new XmlProtoElementBuilder(protoElement.toBuilder());
    element.removeAttribute("otherNamespace", "attribute");
    assertThat(element.getProto().build()).isEqualTo(protoElement);
}
Also used : XmlElement(com.android.aapt.Resources.XmlElement) Test(org.junit.Test)

Example 50 with XmlElement

use of com.android.aapt.Resources.XmlElement in project bundletool by google.

the class XmlProtoElementBuilderTest method removeChildrenElementsIf.

@Test
public void removeChildrenElementsIf() {
    XmlElement childElement = XmlElement.newBuilder().setName("hello").build();
    XmlElement matchingElement = XmlElement.newBuilder().setName("foo").build();
    XmlElement protoElement = XmlElement.newBuilder().addChild(XmlNode.newBuilder().setElement(childElement)).addChild(XmlNode.newBuilder().setElement(matchingElement)).build();
    XmlProtoElementBuilder element = new XmlProtoElementBuilder(protoElement.toBuilder());
    element.removeChildrenElementsIf(node -> node.isElement() && node.getElement().getName().equals("foo"));
    ImmutableList<XmlProtoElementBuilder> fetchedElements = element.getChildrenElements().collect(toImmutableList());
    assertThat(fetchedElements).hasSize(1);
    XmlProtoElementBuilder fetchedElement = fetchedElements.get(0);
    assertThat(fetchedElement.getProto().build()).isEqualTo(childElement);
}
Also used : XmlElement(com.android.aapt.Resources.XmlElement) Test(org.junit.Test)

Aggregations

XmlElement (com.android.aapt.Resources.XmlElement)67 Test (org.junit.Test)65 XmlNode (com.android.aapt.Resources.XmlNode)27 XmlAttribute (com.android.aapt.Resources.XmlAttribute)10 BundleModule (com.android.tools.build.bundletool.model.BundleModule)4 ModuleSplit (com.android.tools.build.bundletool.model.ModuleSplit)4 BundleModuleBuilder (com.android.tools.build.bundletool.testing.BundleModuleBuilder)4 ImmutableList (com.google.common.collect.ImmutableList)4 ImmutableList.toImmutableList (com.google.common.collect.ImmutableList.toImmutableList)4 Truth.assertThat (com.google.common.truth.Truth.assertThat)4 Truth8.assertThat (com.google.common.truth.Truth8.assertThat)4 ProtoTruth.assertThat (com.google.common.truth.extensions.proto.ProtoTruth.assertThat)4 RunWith (org.junit.runner.RunWith)4 JUnit4 (org.junit.runners.JUnit4)4 SourcePosition (com.android.aapt.Resources.SourcePosition)3 XmlNamespace (com.android.aapt.Resources.XmlNamespace)2 TestData (com.android.tools.build.bundletool.TestData)2 AndroidManifest (com.android.tools.build.bundletool.model.AndroidManifest)2 ACTIVITY_ELEMENT_NAME (com.android.tools.build.bundletool.model.AndroidManifest.ACTIVITY_ELEMENT_NAME)2 ALLOW_BACKUP_ATTRIBUTE_NAME (com.android.tools.build.bundletool.model.AndroidManifest.ALLOW_BACKUP_ATTRIBUTE_NAME)2