use of com.android.aapt.Resources.Reference in project bundletool by google.
the class ResourceAnalyzerTest method transitive_deepChain.
@Test
public void transitive_deepChain() throws Exception {
// AndroidManifest
// --> 0x7f010001 (ref) --> 0x7f010002 (ref) --> 0x7f010003 (ref) --> 0x7f020004 (string)
XmlNode manifest = AndroidManifest.create(xmlNode(xmlElement("manifest", xmlNode(xmlElement("application", xmlResourceReferenceAttribute(NO_NAMESPACE_URI, "attribute_pointint_to_a_ref", /* attrResourceId= */
0x999999, /* valueResourceId= */
0x7f010001)))))).getManifestRoot().getProto();
ResourceTable resourceTable = resourceTable(pkg(0x7f, "com.test.app", type(0x01, "ref", entry(0x0001, "ref1", reference(0x7f010002, DEFAULT_CONFIG)), entry(0x0002, "ref2", reference(0x7f010003, DEFAULT_CONFIG)), entry(0x0003, "ref3", reference(0x7f020004, DEFAULT_CONFIG))), type(0x02, "string", entry(0x0004, "name_str", value("hello", DEFAULT_CONFIG)), entry(0x0099, "not_referenced", value("", DEFAULT_CONFIG)))));
AppBundle appBundle = new AppBundleBuilder().addModule("base", builder -> builder.setManifest(manifest).setResourceTable(resourceTable)).build();
ImmutableSet<ResourceId> resourceIds = new ResourceAnalyzer(appBundle).findAllAppResourcesReachableFromBaseManifest();
assertThat(resourceIds).containsExactly(ResourceId.create(0x7f010001), ResourceId.create(0x7f010002), ResourceId.create(0x7f010003), ResourceId.create(0x7f020004));
}
use of com.android.aapt.Resources.Reference in project bundletool by google.
the class ResourceAnalyzerTest method transitive_item_ref.
@Test
public void transitive_item_ref() throws Exception {
// AndroidManifest --> 0x7f010001 (ref) --> 0x7f020002 (string)
XmlNode manifest = AndroidManifest.create(xmlNode(xmlElement("manifest", xmlNode(xmlElement("application", xmlResourceReferenceAttribute(NO_NAMESPACE_URI, "some_attribute_pointing_to_a_ref", /* attrResourceId= */
0x999999, /* valueResourceId= */
0x7f010001)))))).getManifestRoot().getProto();
ResourceTable resourceTable = resourceTable(pkg(0x7f, "com.test.app", type(0x01, "ref", entry(0x0001, "name_ref", reference(0x7f020002, DEFAULT_CONFIG))), type(0x02, "string", entry(0x0002, "name_str", value("hello", DEFAULT_CONFIG)), entry(0x0099, "not_referenced", value("", DEFAULT_CONFIG)))));
AppBundle appBundle = new AppBundleBuilder().addModule("base", builder -> builder.setManifest(manifest).setResourceTable(resourceTable)).build();
ImmutableSet<ResourceId> resourceIds = new ResourceAnalyzer(appBundle).findAllAppResourcesReachableFromBaseManifest();
assertThat(resourceIds).containsExactly(ResourceId.create(0x7f010001), ResourceId.create(0x7f020002));
}
use of com.android.aapt.Resources.Reference in project bundletool by google.
the class XmlProtoPrintUtilsTest method getRefAsString_noName.
@Test
public void getRefAsString_noName() {
Reference ref = Reference.newBuilder().setId(0x00000123).setType(Type.REFERENCE).build();
assertThat(XmlProtoPrintUtils.getRefAsString(ref)).isEqualTo("0x00000123");
}
use of com.android.aapt.Resources.Reference in project bundletool by google.
the class XmlProtoPrintUtilsTest method getRefAsString_attribute.
@Test
public void getRefAsString_attribute() {
Reference ref = Reference.newBuilder().setId(0x00000123).setName("name").setType(Type.ATTRIBUTE).build();
assertThat(XmlProtoPrintUtils.getRefAsString(ref)).isEqualTo("?name");
}
use of com.android.aapt.Resources.Reference in project bundletool by google.
the class XmlProtoPrintUtilsTest method getRefAsString_reference.
@Test
public void getRefAsString_reference() {
Reference ref = Reference.newBuilder().setId(0x00000123).setName("name").setType(Type.REFERENCE).build();
assertThat(XmlProtoPrintUtils.getRefAsString(ref)).isEqualTo("@name");
}
Aggregations