Search in sources :

Example 91 with AppBundle

use of com.android.tools.build.bundletool.model.AppBundle in project bundletool by google.

the class BuildApksPreprocessingTest method localTestingMode_disabled_doesNotAddMetadata.

@Test
public void localTestingMode_disabled_doesNotAddMetadata() throws Exception {
    AppBundle appBundle = createAppBundleWithBaseAndFeatureModules("feature");
    new AppBundleSerializer().writeToDisk(appBundle, bundlePath);
    BuildApksCommand command = BuildApksCommand.builder().setBundlePath(bundlePath).setOutputFile(outputFilePath).setLocalTestingMode(false).build();
    command.execute();
    try (ZipFile apkSet = new ZipFile(outputFilePath.toFile())) {
        BuildApksResult result = extractTocFromApkSetFile(apkSet, outputDir);
        assertThat(result.getLocalTestingInfo().getEnabled()).isFalse();
        ImmutableList<ApkDescription> apkDescriptions = apkDescriptions(result.getVariantList());
        assertThat(apkDescriptions).isNotEmpty();
        for (ApkDescription apkDescription : apkDescriptions) {
            File apk = extractFromApkSetFile(apkSet, apkDescription.getPath(), outputDir);
            assertThat(extractAndroidManifest(apk).getMetadataValue(LocalTestingPreprocessor.METADATA_NAME)).isEmpty();
        }
    }
}
Also used : AppBundle(com.android.tools.build.bundletool.model.AppBundle) ApkDescription(com.android.bundle.Commands.ApkDescription) ZipFile(java.util.zip.ZipFile) BuildApksResult(com.android.bundle.Commands.BuildApksResult) AppBundleSerializer(com.android.tools.build.bundletool.io.AppBundleSerializer) ZipFile(java.util.zip.ZipFile) ApkSetUtils.extractTocFromApkSetFile(com.android.tools.build.bundletool.testing.ApkSetUtils.extractTocFromApkSetFile) File(java.io.File) ApkSetUtils.extractFromApkSetFile(com.android.tools.build.bundletool.testing.ApkSetUtils.extractFromApkSetFile) Test(org.junit.Test)

Example 92 with AppBundle

use of com.android.tools.build.bundletool.model.AppBundle in project bundletool by google.

the class BuildApksPreprocessingTest method renderscript32Bit_warningMessageDisplayed.

@Test
public void renderscript32Bit_warningMessageDisplayed() throws Exception {
    AppBundle appBundle = new AppBundleBuilder().addModule("base", builder -> builder.addFile("dex/classes.dex").addFile("assets/script.bc").setManifest(androidManifest("com.test.app"))).build();
    new AppBundleSerializer().writeToDisk(appBundle, bundlePath);
    ByteArrayOutputStream output = new ByteArrayOutputStream();
    BuildApksCommand command = BuildApksCommand.builder().setBundlePath(bundlePath).setOutputFile(outputFilePath).setOutputPrintStream(new PrintStream(output)).build();
    command.execute();
    assertThat(new String(output.toByteArray(), UTF_8)).contains("WARNING: App Bundle contains 32-bit RenderScript bitcode file (.bc)");
}
Also used : TEST_LABEL_RESOURCE_ID(com.android.tools.build.bundletool.testing.ResourcesTableFactory.TEST_LABEL_RESOURCE_ID) ApkTargeting(com.android.bundle.Targeting.ApkTargeting) ManifestProtoUtils.androidManifest(com.android.tools.build.bundletool.testing.ManifestProtoUtils.androidManifest) Variant(com.android.bundle.Commands.Variant) AndroidManifest(com.android.tools.build.bundletool.model.AndroidManifest) ManifestProtoUtils.androidManifestForAssetModule(com.android.tools.build.bundletool.testing.ManifestProtoUtils.androidManifestForAssetModule) TargetingUtils.abiTargeting(com.android.tools.build.bundletool.testing.TargetingUtils.abiTargeting) LocalTestingPreprocessor(com.android.tools.build.bundletool.preprocessors.LocalTestingPreprocessor) ARM64_V8A(com.android.bundle.Targeting.Abi.AbiAlias.ARM64_V8A) ResourcesTableFactory.resourceTableWithTestLabel(com.android.tools.build.bundletool.testing.ResourcesTableFactory.resourceTableWithTestLabel) ZipFile(java.util.zip.ZipFile) Path(java.nio.file.Path) ManifestProtoUtils.withTitle(com.android.tools.build.bundletool.testing.ManifestProtoUtils.withTitle) ImmutableSet(com.google.common.collect.ImmutableSet) TargetingUtils.nativeDirectoryTargeting(com.android.tools.build.bundletool.testing.TargetingUtils.nativeDirectoryTargeting) ImmutableList.toImmutableList(com.google.common.collect.ImmutableList.toImmutableList) ARMEABI_V7A(com.android.bundle.Targeting.Abi.AbiAlias.ARMEABI_V7A) ManifestProtoUtils.withMinSdkVersion(com.android.tools.build.bundletool.testing.ManifestProtoUtils.withMinSdkVersion) UncheckedIOException(java.io.UncheckedIOException) ApkSet(com.android.bundle.Commands.ApkSet) List(java.util.List) AppBundleBuilder(com.android.tools.build.bundletool.testing.AppBundleBuilder) ManifestProtoUtils.withInstallTimeDelivery(com.android.tools.build.bundletool.testing.ManifestProtoUtils.withInstallTimeDelivery) ManifestProtoUtils.androidManifestForFeature(com.android.tools.build.bundletool.testing.ManifestProtoUtils.androidManifestForFeature) ManifestProtoUtils.withMaxSdkVersion(com.android.tools.build.bundletool.testing.ManifestProtoUtils.withMaxSdkVersion) TruthZip.assertThat(com.android.tools.build.bundletool.testing.truth.zip.TruthZip.assertThat) Assertions.assertThrows(org.junit.jupiter.api.Assertions.assertThrows) AbiTargeting(com.android.bundle.Targeting.AbiTargeting) ByteArrayOutputStream(java.io.ByteArrayOutputStream) ResultUtils.standaloneApkVariants(com.android.tools.build.bundletool.model.utils.ResultUtils.standaloneApkVariants) BundleConfigBuilder(com.android.tools.build.bundletool.testing.BundleConfigBuilder) RunWith(org.junit.runner.RunWith) BuildApksResult(com.android.bundle.Commands.BuildApksResult) ApkSetUtils.extractTocFromApkSetFile(com.android.tools.build.bundletool.testing.ApkSetUtils.extractTocFromApkSetFile) ProtoTruth.assertThat(com.google.common.truth.extensions.proto.ProtoTruth.assertThat) ImmutableList(com.google.common.collect.ImmutableList) AppBundleSerializer(com.android.tools.build.bundletool.io.AppBundleSerializer) ImmutableSet.toImmutableSet(com.google.common.collect.ImmutableSet.toImmutableSet) ApkDescription(com.android.bundle.Commands.ApkDescription) ResultUtils.splitApkVariants(com.android.tools.build.bundletool.model.utils.ResultUtils.splitApkVariants) Truth8.assertThat(com.google.common.truth.Truth8.assertThat) Before(org.junit.Before) PrintStream(java.io.PrintStream) Files(java.nio.file.Files) UTF_8(java.nio.charset.StandardCharsets.UTF_8) InvalidBundleException(com.android.tools.build.bundletool.model.exceptions.InvalidBundleException) ManifestProtoUtils.withFusingAttribute(com.android.tools.build.bundletool.testing.ManifestProtoUtils.withFusingAttribute) TargetingUtils.targetedNativeDirectory(com.android.tools.build.bundletool.testing.TargetingUtils.targetedNativeDirectory) AssetSliceSet(com.android.bundle.Commands.AssetSliceSet) IOException(java.io.IOException) Test(org.junit.Test) JUnit4(org.junit.runners.JUnit4) Truth.assertThat(com.google.common.truth.Truth.assertThat) File(java.io.File) Aapt2Helper(com.android.tools.build.bundletool.testing.Aapt2Helper) ApkSetUtils.extractFromApkSetFile(com.android.tools.build.bundletool.testing.ApkSetUtils.extractFromApkSetFile) TargetingUtils.nativeLibraries(com.android.tools.build.bundletool.testing.TargetingUtils.nativeLibraries) Rule(org.junit.Rule) XmlNode(com.android.aapt.Resources.XmlNode) ExtensionRegistry(com.google.protobuf.ExtensionRegistry) AppBundle(com.android.tools.build.bundletool.model.AppBundle) TemporaryFolder(org.junit.rules.TemporaryFolder) PrintStream(java.io.PrintStream) AppBundle(com.android.tools.build.bundletool.model.AppBundle) AppBundleBuilder(com.android.tools.build.bundletool.testing.AppBundleBuilder) AppBundleSerializer(com.android.tools.build.bundletool.io.AppBundleSerializer) ByteArrayOutputStream(java.io.ByteArrayOutputStream) Test(org.junit.Test)

Example 93 with AppBundle

use of com.android.tools.build.bundletool.model.AppBundle in project bundletool by google.

the class BuildApksResourcePinningTest method resourceIds_pinnedToMasterSplits.

@Test
public void resourceIds_pinnedToMasterSplits() throws Exception {
    ResourceTable baseResourceTable = new ResourceTableBuilder().addPackage("com.test.app").addStringResource("test_label", "Module title").addFileResourceForMultipleConfigs("drawable", "image", ImmutableMap.of(Configuration.getDefaultInstance(), "res/drawable/image1.jpg", locale("fr"), "res/drawable-fr/image1.jpg")).addFileResourceForMultipleConfigs("drawable", "image2", ImmutableMap.of(Configuration.getDefaultInstance(), "res/drawable/image2.jpg", locale("fr"), "res/drawable-fr/image2.jpg")).build();
    ResourceTable featureResourceTable = new ResourceTableBuilder().addPackage("com.test.app.feature", 0x80).addFileResourceForMultipleConfigs("drawable", "image3", ImmutableMap.of(Configuration.getDefaultInstance(), "res/drawable/image3.jpg", locale("fr"), "res/drawable-fr/image3.jpg")).addFileResourceForMultipleConfigs("drawable", "image4", ImmutableMap.of(Configuration.getDefaultInstance(), "res/drawable/image4.jpg", locale("fr"), "res/drawable-fr/image4.jpg")).build();
    AppBundle appBundle = new AppBundleBuilder().addModule("base", builder -> builder.addFile("dex/classes.dex").addFile("res/drawable/image1.jpg").addFile("res/drawable-fr/image1.jpg").addFile("res/drawable/image2.jpg").addFile("res/drawable-fr/image2.jpg").setManifest(androidManifest("com.test.app", withMinSdkVersion(14))).setResourceTable(baseResourceTable)).addModule("feature", builder -> builder.addFile("res/drawable/image3.jpg").addFile("res/drawable-fr/image3.jpg").addFile("res/drawable/image4.jpg").addFile("res/drawable-fr/image4.jpg").setManifest(androidManifest("com.test.app", withMinSdkVersion(14), withOnDemandDelivery(), withFusingAttribute(true), withTitle("@string/test_label", 0x7f010000))).setResourceTable(featureResourceTable)).setBundleConfig(BundleConfigBuilder.create().addResourcePinnedToMasterSplit(// image1 from "base" module
    0x7f020000).addResourcePinnedToMasterSplit(// image4 from "feature" module
    0x80010001).build()).build();
    TestComponent.useTestModule(this, TestModule.builder().withAppBundle(appBundle).withOutputPath(outputFilePath).build());
    buildApksManager.execute();
    ZipFile apkSetFile = new ZipFile(outputFilePath.toFile());
    BuildApksResult result = extractTocFromApkSetFile(apkSetFile, outputDir);
    // Verifying that standalone APKs contain all entries.
    assertThat(standaloneApkVariants(result)).hasSize(1);
    List<ApkSet> standaloneApkSets = standaloneApkVariants(result).get(0).getApkSetList();
    assertThat(standaloneApkSets).hasSize(1);
    List<ApkDescription> standaloneApkDescription = standaloneApkSets.get(0).getApkDescriptionList();
    assertThat(standaloneApkDescription).hasSize(1);
    File standaloneApkFile = extractFromApkSetFile(apkSetFile, standaloneApkDescription.get(0).getPath(), outputDir);
    try (ZipFile standaloneZip = new ZipFile(standaloneApkFile)) {
        assertThat(filesUnderPath(standaloneZip, ZipPath.create("res"))).containsExactly("res/drawable/image1.jpg", "res/drawable-fr/image1.jpg", "res/drawable/image2.jpg", "res/drawable-fr/image2.jpg", "res/drawable/image3.jpg", "res/drawable-fr/image3.jpg", "res/drawable/image4.jpg", "res/drawable-fr/image4.jpg", "res/xml/splits0.xml");
    }
    // Verifying split APKs.
    assertThat(splitApkVariants(result)).hasSize(1);
    List<ApkSet> splitApkSetList = splitApkVariants(result).get(0).getApkSetList();
    Map<String, ApkSet> modules = Maps.uniqueIndex(splitApkSetList, apkSet -> apkSet.getModuleMetadata().getName());
    assertThat(modules.keySet()).containsExactly("base", "feature");
    List<ApkDescription> baseModuleApks = modules.get("base").getApkDescriptionList();
    assertThat(baseModuleApks).hasSize(2);
    Map<Boolean, ApkDescription> apkBaseMaster = Maps.uniqueIndex(baseModuleApks, apkDescription -> apkDescription.getSplitApkMetadata().getIsMasterSplit());
    ApkDescription baseMaster = apkBaseMaster.get(/* isMasterSplit= */
    true);
    File baseMasterFile = extractFromApkSetFile(apkSetFile, baseMaster.getPath(), outputDir);
    try (ZipFile baseMasterZip = new ZipFile(baseMasterFile)) {
        assertThat(filesUnderPath(baseMasterZip, ZipPath.create("res"))).containsExactly("res/drawable/image1.jpg", "res/drawable-fr/image1.jpg", "res/drawable/image2.jpg", "res/xml/splits0.xml", "res/xml/locales_config.xml");
    }
    ApkDescription baseFr = apkBaseMaster.get(/* isMasterSplit= */
    false);
    File baseFrFile = extractFromApkSetFile(apkSetFile, baseFr.getPath(), outputDir);
    try (ZipFile baseFrZip = new ZipFile(baseFrFile)) {
        assertThat(filesUnderPath(baseFrZip, ZipPath.create("res"))).containsExactly("res/drawable-fr/image2.jpg");
    }
    List<ApkDescription> featureModuleApks = modules.get("feature").getApkDescriptionList();
    assertThat(featureModuleApks).hasSize(2);
    Map<Boolean, ApkDescription> apkFeatureMaster = Maps.uniqueIndex(featureModuleApks, apkDescription -> apkDescription.getSplitApkMetadata().getIsMasterSplit());
    ApkDescription featureMaster = apkFeatureMaster.get(/* isMasterSplit= */
    true);
    File featureMasterFile = extractFromApkSetFile(apkSetFile, featureMaster.getPath(), outputDir);
    try (ZipFile featureMasterZip = new ZipFile(featureMasterFile)) {
        assertThat(filesUnderPath(featureMasterZip, ZipPath.create("res"))).containsExactly("res/drawable/image3.jpg", "res/drawable/image4.jpg", "res/drawable-fr/image4.jpg");
    }
    ApkDescription featureFr = apkFeatureMaster.get(/* isMasterSplit= */
    false);
    File featureFrFile = extractFromApkSetFile(apkSetFile, featureFr.getPath(), outputDir);
    try (ZipFile featureFrZip = new ZipFile(featureFrFile)) {
        assertThat(filesUnderPath(featureFrZip, ZipPath.create("res"))).containsExactly("res/drawable-fr/image3.jpg");
    }
}
Also used : TestModule(com.android.tools.build.bundletool.testing.TestModule) ZipPath(com.android.tools.build.bundletool.model.ZipPath) ResultUtils.standaloneApkVariants(com.android.tools.build.bundletool.model.utils.ResultUtils.standaloneApkVariants) ManifestProtoUtils.androidManifest(com.android.tools.build.bundletool.testing.ManifestProtoUtils.androidManifest) ResourcesTableFactory.locale(com.android.tools.build.bundletool.testing.ResourcesTableFactory.locale) BundleConfigBuilder(com.android.tools.build.bundletool.testing.BundleConfigBuilder) RunWith(org.junit.runner.RunWith) BuildApksResult(com.android.bundle.Commands.BuildApksResult) Component(dagger.Component) Inject(javax.inject.Inject) ApkSetUtils.extractTocFromApkSetFile(com.android.tools.build.bundletool.testing.ApkSetUtils.extractTocFromApkSetFile) ProtoTruth.assertThat(com.google.common.truth.extensions.proto.ProtoTruth.assertThat) ResourceTableBuilder(com.android.tools.build.bundletool.testing.ResourceTableBuilder) Map(java.util.Map) ApkDescription(com.android.bundle.Commands.ApkDescription) ResultUtils.splitApkVariants(com.android.tools.build.bundletool.model.utils.ResultUtils.splitApkVariants) ManifestProtoUtils.withOnDemandDelivery(com.android.tools.build.bundletool.testing.ManifestProtoUtils.withOnDemandDelivery) ZipFile(java.util.zip.ZipFile) TestUtils.filesUnderPath(com.android.tools.build.bundletool.testing.TestUtils.filesUnderPath) Path(java.nio.file.Path) ResourceTable(com.android.aapt.Resources.ResourceTable) Before(org.junit.Before) ManifestProtoUtils.withTitle(com.android.tools.build.bundletool.testing.ManifestProtoUtils.withTitle) ImmutableMap(com.google.common.collect.ImmutableMap) ManifestProtoUtils.withFusingAttribute(com.android.tools.build.bundletool.testing.ManifestProtoUtils.withFusingAttribute) Test(org.junit.Test) JUnit4(org.junit.runners.JUnit4) Truth.assertThat(com.google.common.truth.Truth.assertThat) Maps(com.google.common.collect.Maps) File(java.io.File) ApkSetUtils.extractFromApkSetFile(com.android.tools.build.bundletool.testing.ApkSetUtils.extractFromApkSetFile) ManifestProtoUtils.withMinSdkVersion(com.android.tools.build.bundletool.testing.ManifestProtoUtils.withMinSdkVersion) ApkSet(com.android.bundle.Commands.ApkSet) List(java.util.List) AppBundleBuilder(com.android.tools.build.bundletool.testing.AppBundleBuilder) Rule(org.junit.Rule) AppBundle(com.android.tools.build.bundletool.model.AppBundle) Configuration(com.android.aapt.ConfigurationOuterClass.Configuration) TemporaryFolder(org.junit.rules.TemporaryFolder) ApkSet(com.android.bundle.Commands.ApkSet) AppBundle(com.android.tools.build.bundletool.model.AppBundle) ApkDescription(com.android.bundle.Commands.ApkDescription) BuildApksResult(com.android.bundle.Commands.BuildApksResult) ResourceTableBuilder(com.android.tools.build.bundletool.testing.ResourceTableBuilder) ZipFile(java.util.zip.ZipFile) AppBundleBuilder(com.android.tools.build.bundletool.testing.AppBundleBuilder) ApkSetUtils.extractTocFromApkSetFile(com.android.tools.build.bundletool.testing.ApkSetUtils.extractTocFromApkSetFile) ZipFile(java.util.zip.ZipFile) File(java.io.File) ApkSetUtils.extractFromApkSetFile(com.android.tools.build.bundletool.testing.ApkSetUtils.extractFromApkSetFile) ResourceTable(com.android.aapt.Resources.ResourceTable) Test(org.junit.Test)

Example 94 with AppBundle

use of com.android.tools.build.bundletool.model.AppBundle in project bundletool by google.

the class BuildApksValidationTest method splits_textureFallbackNotPresentInAssetPacks.

@Test
public void splits_textureFallbackNotPresentInAssetPacks() throws Exception {
    AppBundle appBundle = new AppBundleBuilder().addModule("base", builder -> builder.setManifest(androidManifest("com.test.app")).setResourceTable(resourceTableWithTestLabel("Test feature"))).addModule("feature_tcf_assets", builder -> builder.addFile("assets/textures#tcf_atc/atc_texture.dat").addFile("assets/textures#tcf_etc1/etc1_texture.dat").setAssetsConfig(assets(targetedAssetsDirectory("assets/textures#tcf_atc", assetsDirectoryTargeting(textureCompressionTargeting(ATC))), targetedAssetsDirectory("assets/textures#tcf_etc1", assetsDirectoryTargeting(textureCompressionTargeting(ETC1_RGB8))))).setManifest(androidManifestForFeature("com.test.app", withTitle("@string/test_label", TEST_LABEL_RESOURCE_ID)))).setBundleConfig(BundleConfigBuilder.create().addSplitDimension(Value.TEXTURE_COMPRESSION_FORMAT, /* negate= */
    false).build()).build();
    new AppBundleSerializer().writeToDisk(appBundle, bundlePath);
    BuildApksCommand command = BuildApksCommand.builder().setBundlePath(bundlePath).setOutputFile(outputFilePath).build();
    // Splitting by texture compression format is activated, but the textures in
    // one module don't include a fallback folder, used for standalone and universal
    // APKs, so we'll consider the bundle invalid:
    InvalidBundleException exception = assertThrows(InvalidBundleException.class, command::execute);
    assertThat(exception).hasMessageThat().contains("the fallback texture folders (folders without #tcf suffixes) will be used, but module" + " 'feature_tcf_assets' has no such folders.");
}
Also used : ManifestProtoUtils.withMaxSdkVersion(com.android.tools.build.bundletool.testing.ManifestProtoUtils.withMaxSdkVersion) Assertions.assertThrows(org.junit.jupiter.api.Assertions.assertThrows) TEST_LABEL_RESOURCE_ID(com.android.tools.build.bundletool.testing.ResourcesTableFactory.TEST_LABEL_RESOURCE_ID) Value(com.android.bundle.Config.SplitDimension.Value) TargetingUtils.alternativeTextureCompressionTargeting(com.android.tools.build.bundletool.testing.TargetingUtils.alternativeTextureCompressionTargeting) ManifestProtoUtils.androidManifest(com.android.tools.build.bundletool.testing.ManifestProtoUtils.androidManifest) TargetingUtils.textureCompressionTargeting(com.android.tools.build.bundletool.testing.TargetingUtils.textureCompressionTargeting) ATC(com.android.bundle.Targeting.TextureCompressionFormat.TextureCompressionFormatAlias.ATC) BundleConfigBuilder(com.android.tools.build.bundletool.testing.BundleConfigBuilder) RunWith(org.junit.runner.RunWith) ImmutableList(com.google.common.collect.ImmutableList) TargetingUtils.targetedAssetsDirectory(com.android.tools.build.bundletool.testing.TargetingUtils.targetedAssetsDirectory) AppBundleSerializer(com.android.tools.build.bundletool.io.AppBundleSerializer) ResourcesTableFactory.resourceTableWithTestLabel(com.android.tools.build.bundletool.testing.ResourcesTableFactory.resourceTableWithTestLabel) Path(java.nio.file.Path) Before(org.junit.Before) ManifestProtoUtils.withInstant(com.android.tools.build.bundletool.testing.ManifestProtoUtils.withInstant) ManifestProtoUtils.withTitle(com.android.tools.build.bundletool.testing.ManifestProtoUtils.withTitle) InvalidBundleException(com.android.tools.build.bundletool.model.exceptions.InvalidBundleException) IOException(java.io.IOException) Test(org.junit.Test) JUnit4(org.junit.runners.JUnit4) Truth.assertThat(com.google.common.truth.Truth.assertThat) ETC1_RGB8(com.android.bundle.Targeting.TextureCompressionFormat.TextureCompressionFormatAlias.ETC1_RGB8) TargetingUtils.assets(com.android.tools.build.bundletool.testing.TargetingUtils.assets) AppBundleBuilder(com.android.tools.build.bundletool.testing.AppBundleBuilder) Rule(org.junit.Rule) SubValidator(com.android.tools.build.bundletool.validation.SubValidator) ManifestProtoUtils.androidManifestForFeature(com.android.tools.build.bundletool.testing.ManifestProtoUtils.androidManifestForFeature) TargetingUtils.assetsDirectoryTargeting(com.android.tools.build.bundletool.testing.TargetingUtils.assetsDirectoryTargeting) AppBundle(com.android.tools.build.bundletool.model.AppBundle) TemporaryFolder(org.junit.rules.TemporaryFolder) AppBundle(com.android.tools.build.bundletool.model.AppBundle) AppBundleBuilder(com.android.tools.build.bundletool.testing.AppBundleBuilder) InvalidBundleException(com.android.tools.build.bundletool.model.exceptions.InvalidBundleException) AppBundleSerializer(com.android.tools.build.bundletool.io.AppBundleSerializer) Test(org.junit.Test)

Example 95 with AppBundle

use of com.android.tools.build.bundletool.model.AppBundle in project bundletool by google.

the class BuildApksValidationTest method createAppBundle.

private static void createAppBundle(Path path) throws IOException {
    AppBundle appBundle = new AppBundleBuilder().addModule("base", module -> module.setManifest(androidManifest("com.app")).build()).build();
    new AppBundleSerializer().writeToDisk(appBundle, path);
}
Also used : ManifestProtoUtils.withMaxSdkVersion(com.android.tools.build.bundletool.testing.ManifestProtoUtils.withMaxSdkVersion) Assertions.assertThrows(org.junit.jupiter.api.Assertions.assertThrows) TEST_LABEL_RESOURCE_ID(com.android.tools.build.bundletool.testing.ResourcesTableFactory.TEST_LABEL_RESOURCE_ID) Value(com.android.bundle.Config.SplitDimension.Value) TargetingUtils.alternativeTextureCompressionTargeting(com.android.tools.build.bundletool.testing.TargetingUtils.alternativeTextureCompressionTargeting) ManifestProtoUtils.androidManifest(com.android.tools.build.bundletool.testing.ManifestProtoUtils.androidManifest) TargetingUtils.textureCompressionTargeting(com.android.tools.build.bundletool.testing.TargetingUtils.textureCompressionTargeting) ATC(com.android.bundle.Targeting.TextureCompressionFormat.TextureCompressionFormatAlias.ATC) BundleConfigBuilder(com.android.tools.build.bundletool.testing.BundleConfigBuilder) RunWith(org.junit.runner.RunWith) ImmutableList(com.google.common.collect.ImmutableList) TargetingUtils.targetedAssetsDirectory(com.android.tools.build.bundletool.testing.TargetingUtils.targetedAssetsDirectory) AppBundleSerializer(com.android.tools.build.bundletool.io.AppBundleSerializer) ResourcesTableFactory.resourceTableWithTestLabel(com.android.tools.build.bundletool.testing.ResourcesTableFactory.resourceTableWithTestLabel) Path(java.nio.file.Path) Before(org.junit.Before) ManifestProtoUtils.withInstant(com.android.tools.build.bundletool.testing.ManifestProtoUtils.withInstant) ManifestProtoUtils.withTitle(com.android.tools.build.bundletool.testing.ManifestProtoUtils.withTitle) InvalidBundleException(com.android.tools.build.bundletool.model.exceptions.InvalidBundleException) IOException(java.io.IOException) Test(org.junit.Test) JUnit4(org.junit.runners.JUnit4) Truth.assertThat(com.google.common.truth.Truth.assertThat) ETC1_RGB8(com.android.bundle.Targeting.TextureCompressionFormat.TextureCompressionFormatAlias.ETC1_RGB8) TargetingUtils.assets(com.android.tools.build.bundletool.testing.TargetingUtils.assets) AppBundleBuilder(com.android.tools.build.bundletool.testing.AppBundleBuilder) Rule(org.junit.Rule) SubValidator(com.android.tools.build.bundletool.validation.SubValidator) ManifestProtoUtils.androidManifestForFeature(com.android.tools.build.bundletool.testing.ManifestProtoUtils.androidManifestForFeature) TargetingUtils.assetsDirectoryTargeting(com.android.tools.build.bundletool.testing.TargetingUtils.assetsDirectoryTargeting) AppBundle(com.android.tools.build.bundletool.model.AppBundle) TemporaryFolder(org.junit.rules.TemporaryFolder) AppBundle(com.android.tools.build.bundletool.model.AppBundle) AppBundleBuilder(com.android.tools.build.bundletool.testing.AppBundleBuilder) AppBundleSerializer(com.android.tools.build.bundletool.io.AppBundleSerializer)

Aggregations

AppBundle (com.android.tools.build.bundletool.model.AppBundle)205 Test (org.junit.Test)193 AppBundleBuilder (com.android.tools.build.bundletool.testing.AppBundleBuilder)137 ZipFile (java.util.zip.ZipFile)136 ManifestProtoUtils.androidManifest (com.android.tools.build.bundletool.testing.ManifestProtoUtils.androidManifest)112 Truth.assertThat (com.google.common.truth.Truth.assertThat)112 Path (java.nio.file.Path)112 RunWith (org.junit.runner.RunWith)112 BuildApksResult (com.android.bundle.Commands.BuildApksResult)106 AppBundleSerializer (com.android.tools.build.bundletool.io.AppBundleSerializer)104 ImmutableList (com.google.common.collect.ImmutableList)102 Assertions.assertThrows (org.junit.jupiter.api.Assertions.assertThrows)101 InvalidBundleException (com.android.tools.build.bundletool.model.exceptions.InvalidBundleException)100 Before (org.junit.Before)100 Rule (org.junit.Rule)100 TemporaryFolder (org.junit.rules.TemporaryFolder)100 Variant (com.android.bundle.Commands.Variant)98 IOException (java.io.IOException)94 ApkDescription (com.android.bundle.Commands.ApkDescription)90 ApkSetUtils.extractTocFromApkSetFile (com.android.tools.build.bundletool.testing.ApkSetUtils.extractTocFromApkSetFile)87