public static Assets assets(TargetedAssetsDirectory... directories) { return Assets.newBuilder().addAllDirectory(Lists.newArrayList(directories)).build(); }
Assets.Builder assetsBuilder = Assets.newBuilder();
XmlNode manifest = androidManifest(PKG_NAME, withHasCode(true)); Assets assetsConfig = Assets.newBuilder() .addDirectory( TargetedAssetsDirectory.newBuilder()
.ignoringRepeatedFieldOrder() .isEqualTo( Assets.newBuilder() .addDirectory( TargetedAssetsDirectory.newBuilder()
.ignoringRepeatedFieldOrder() .isEqualTo( Assets.newBuilder() .addDirectory( TargetedAssetsDirectory.newBuilder()
.ignoringRepeatedFieldOrder() .isEqualTo( Assets.newBuilder() .addDirectory( TargetedAssetsDirectory.newBuilder()
.ignoringRepeatedFieldOrder() .isEqualTo( Assets.newBuilder() .addDirectory( TargetedAssetsDirectory.newBuilder()
.ignoringRepeatedFieldOrder() .isEqualTo( Assets.newBuilder() .addDirectory( TargetedAssetsDirectory.newBuilder()
@Test public void generateTargetingForAssets_different_types_leaves_ok() throws Exception { Assets assetsConfig = new TargetingGenerator() .generateTargetingForAssets( ImmutableList.of( ZipPath.create("assets/world/texture#tcf_etc1"), ZipPath.create("assets/world/alternative/texture#opengl_3.0"))); assertThat(assetsConfig) .ignoringRepeatedFieldOrder() .isEqualTo( Assets.newBuilder() .addDirectory( TargetedAssetsDirectory.newBuilder() .setPath("assets/world/texture#tcf_etc1") .setTargeting( assetsDirectoryTargeting( textureCompressionTargeting( TextureCompressionFormatAlias.ETC1_RGB8)))) .addDirectory( TargetedAssetsDirectory.newBuilder() .setPath("assets/world/alternative/texture#opengl_3.0") .setTargeting( assetsDirectoryTargeting(graphicsApiTargeting(openGlVersionFrom(3))))) .build()); }
@Test public void differentAssetsConfig_ok() throws Exception { String filePath = "assets.pb"; byte[] fileContentA = Assets.getDefaultInstance().toByteArray(); byte[] fileContentB = Assets.newBuilder() .addDirectory(TargetedAssetsDirectory.getDefaultInstance()) .build() .toByteArray(); assertThat(fileContentA).isNotEqualTo(fileContentB); BundleModule moduleA = new BundleModuleBuilder("a") .addFile(filePath, fileContentA) .setManifest(androidManifest("com.test.app")) .build(); BundleModule moduleB = new BundleModuleBuilder("b") .addFile(filePath, fileContentB) .setManifest(androidManifest("com.test.app")) .build(); new EntryClashValidator().validateAllModules(ImmutableList.of(moduleA, moduleB)); }
@Test public void generateTargetingForAssets_nonTargetedDirectories() throws Exception { Assets assetsConfig = new TargetingGenerator() .generateTargetingForAssets( ImmutableList.of( ZipPath.create("assets/static"), ZipPath.create("assets/world/static"), ZipPath.create("assets/world/static-alt"))); assertThat(assetsConfig) .ignoringRepeatedFieldOrder() .isEqualTo( Assets.newBuilder() .addDirectory( TargetedAssetsDirectory.newBuilder() .setPath("assets/static") .setTargeting(AssetsDirectoryTargeting.getDefaultInstance())) .addDirectory( TargetedAssetsDirectory.newBuilder() .setPath("assets/world/static") .setTargeting(AssetsDirectoryTargeting.getDefaultInstance())) .addDirectory( TargetedAssetsDirectory.newBuilder() .setPath("assets/world/static-alt") .setTargeting(AssetsDirectoryTargeting.getDefaultInstance())) .build()); }
@Test public void generateTargetingForAssets_assetsAtTopLevel() throws Exception { Assets assetsConfig = new TargetingGenerator() .generateTargetingForAssets(ImmutableList.of(ZipPath.create("assets"))); assertThat(assetsConfig) .ignoringRepeatedFieldOrder() .isEqualTo( Assets.newBuilder() .addDirectory( TargetedAssetsDirectory.newBuilder() .setPath("assets") .setTargeting(AssetsDirectoryTargeting.getDefaultInstance())) .build()); } }
@Test public void correctAssetsProtoFile_parsedAndReturned() throws Exception { Assets assetsConfig = Assets.newBuilder() .addDirectory(TargetedAssetsDirectory.newBuilder().setPath("assets/data-armv6")) .build(); BundleModule bundleModule = createMinimalModuleBuilder() .addEntry(InMemoryModuleEntry.ofFile("assets.pb", assetsConfig.toByteArray())) .build(); assertThat(bundleModule.getAssetsConfig()).hasValue(assetsConfig); }